~drizzle-trunk/drizzle/development

2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
1
/* - mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2011 Brian Aker
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; either version 2 of the License, or
9
 *  (at your option) any later version.
10
 *
11
 *  This program is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with this program; if not, write to the Free Software
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 */
20
2173.2.1 by Monty Taylor
Fixes incorrect usage of include
21
#include <config.h>
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
22
2173.2.1 by Monty Taylor
Fixes incorrect usage of include
23
#include <drizzled/util/string.h>
24
#include <drizzled/session/table_messages.h>
25
#include <drizzled/identifier.h>
26
#include <drizzled/message/table.h>
2192.5.1 by Olaf van der Spek
Use find_ptr
27
#include <drizzled/util/find_ptr.h>
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
28
#include <string>
29
2192.5.1 by Olaf van der Spek
Use find_ptr
30
namespace drizzled {
31
namespace session {
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
32
2224.4.2 by Brian Aker
Merge in work around making all passing of table as const.
33
bool TableMessages::storeTableMessage(const identifier::Table &identifier, const message::Table &table_message)
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
34
{
35
  table_message_cache.insert(make_pair(identifier.getPath(), table_message));
36
  return true;
37
}
38
39
bool TableMessages::removeTableMessage(const identifier::Table &identifier)
40
{
2192.5.1 by Olaf van der Spek
Use find_ptr
41
  Cache::iterator iter= table_message_cache.find(identifier.getPath());
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
42
  if (iter == table_message_cache.end())
43
    return false;
44
  table_message_cache.erase(iter);
45
  return true;
46
}
47
48
bool TableMessages::getTableMessage(const identifier::Table &identifier, message::Table &table_message)
49
{
2192.5.8 by Olaf van der Spek
Use ptr instead of i
50
  Cache::mapped_type* ptr= find_ptr(table_message_cache, identifier.getPath());
51
  if (!ptr)
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
52
    return false;
2192.5.8 by Olaf van der Spek
Use ptr instead of i
53
  table_message.CopyFrom(*ptr);
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
54
  return true;
55
}
56
57
bool TableMessages::doesTableMessageExist(const identifier::Table &identifier)
58
{
2192.5.1 by Olaf van der Spek
Use find_ptr
59
  return find_ptr(table_message_cache, identifier.getPath());
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
60
}
61
62
bool TableMessages::renameTableMessage(const identifier::Table &from, const identifier::Table &to)
63
{
64
  table_message_cache[to.getPath()]= table_message_cache[from.getPath()];
2192.5.8 by Olaf van der Spek
Use ptr instead of i
65
  Cache::mapped_type* ptr= find_ptr(table_message_cache, to.getPath());
66
  if (!ptr)
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
67
    return false;
2192.5.8 by Olaf van der Spek
Use ptr instead of i
68
  ptr->set_schema(to.getSchemaName());
69
  ptr->set_name(to.getTableName());
2148.7.1 by Brian Aker
Move table container out so that we aren't directly dealing with it in
70
  return true;
71
}
72
73
} /* namespace session */
74
} /* namespace drizzled */