00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 #include <drizzled/util/string.h>
00024 #include <drizzled/message/table.h>
00025
00026 #include <boost/unordered_map.hpp>
00027
00028 namespace drizzled
00029 {
00030
00031 namespace identifier { class Table; }
00032 namespace message { class Table; }
00033 namespace util { struct insensitive_hash; }
00034 namespace util { struct insensitive_equal_to; }
00035
00036 namespace session
00037 {
00038
00039 class DRIZZLED_API TableMessages
00040 {
00041 typedef boost::unordered_map<std::string, message::Table, util::insensitive_hash, util::insensitive_equal_to> Cache;
00042
00043 Cache table_message_cache;
00044
00045 public:
00046 bool storeTableMessage(const identifier::Table &identifier, const message::Table &table_message);
00047 bool removeTableMessage(const identifier::Table &identifier);
00048 bool getTableMessage(const identifier::Table &identifier, message::Table &table_message);
00049 bool doesTableMessageExist(const identifier::Table &identifier);
00050 bool renameTableMessage(const identifier::Table &from, const identifier::Table &to);
00051 };
00052
00053 }
00054 }
00055