23 #include <boost/thread/mutex.hpp>
24 #include <boost/make_shared.hpp>
26 #include <drizzled/message/catalog.h>
39 drizzled::session_id_t _lock_id;
40 message::catalog::shared_ptr _message;
41 mutable boost::mutex _schema_lock;
42 mutable boost::mutex _system_variable_lock;
46 typedef boost::shared_ptr<Instance> shared_ptr;
47 typedef std::vector<shared_ptr> vector;
52 Instance(message::catalog::shared_ptr &message_arg)
54 _message= message_arg;
57 Instance(
const message::catalog::shared_ptr &message_arg)
59 _message= message_arg;
62 static shared_ptr make_shared(message::catalog::shared_ptr &message_arg)
64 assert(not message_arg->name().empty());
65 return boost::make_shared<Instance>(message_arg);
70 drizzled::message::catalog::shared_ptr new_message= drizzled::message::catalog::make_shared(identifier);
71 assert(not new_message->name().empty());
72 return boost::make_shared<Instance>(new_message);
75 const std::string &getName()
const
78 return _message->name();
81 const std::string &name()
const
84 return _message->name();
87 message::catalog::shared_ptr message()
const
97 bool lock(drizzled::session_id_t
id)
99 if (_locked and _lock_id ==
id)
115 bool unlock(drizzled::session_id_t
id)
117 if (_locked and _lock_id ==
id)
128 boost::mutex &schemaLock()
133 boost::mutex &systemVariableLock()
135 return _system_variable_lock;