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>
25
#include <drizzled/visibility.h>
35
30
class DRIZZLED_API Cache
37
typedef boost::shared_ptr<drizzled::Session> session_shared_ptr;
32
typedef boost::shared_ptr<drizzled::Session> session_ptr;
39
typedef std::list<session_shared_ptr> list;
46
static inline Cache &singleton()
48
static Cache open_cache;
34
typedef std::list<session_ptr> list;
36
static list &getCache()
41
static boost::mutex &mutex()
63
boost::condition_variable &cond()
46
static boost::condition_variable &cond()
69
void shutdownSecond();
71
void erase(session_shared_ptr&);
73
void insert(session_shared_ptr &arg);
75
session_shared_ptr find(const session_id_t &id);
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&);
78
bool volatile _ready_to_exit;
81
boost::condition_variable _end;
61
static bool volatile _ready_to_exit;
63
static boost::mutex _mutex;
64
static boost::condition_variable _end;
84
67
} /* namespace session */
85
68
} /* namespace drizzled */
87
#endif /* DRIZZLED_SESSION_CACHE_H */