17
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
#ifndef DRIZZLED_SESSION_CACHE_H
21
#define DRIZZLED_SESSION_CACHE_H
22
#include <boost/thread/condition_variable.hpp>
23
#include <boost/thread/mutex.hpp>
24
#include <drizzled/visibility.h>
23
#include "drizzled/session.h"
30
class DRIZZLED_API Cache
32
typedef boost::shared_ptr<drizzled::Session> session_ptr;
34
typedef std::list<session_ptr> list;
36
static list &getCache()
37
typedef std::list<Session::shared_ptr> list;
39
static inline Cache &singleton()
41
static Cache open_cache;
41
static boost::mutex &mutex()
46
static boost::condition_variable &cond()
51
static void shutdownFirst();
52
static void shutdownSecond();
54
static void erase(const session_ptr&);
55
static size_t count();
56
static void insert(const session_ptr&);
58
static session_ptr find(const session_id_t&);
56
void erase(Session::Ptr);
57
void erase(Session::shared_ptr&);
59
void insert(Session::shared_ptr &arg);
61
Session::shared_ptr find(const session_id_t &id);
61
static bool volatile _ready_to_exit;
63
static boost::mutex _mutex;
64
static boost::condition_variable _end;
67
68
} /* namespace session */
68
69
} /* namespace drizzled */
71
#endif /* DRIZZLED_SESSION_CACHE_H */