00001
00002
00003
00004
00005
00006
00008 #ifndef CPPCMS_SESSION_API_H
00009 #define CPPCMS_SESSION_API_H
00010
00011 #include <cppcms/defs.h>
00012 #include <booster/noncopyable.h>
00013 #include <booster/shared_ptr.h>
00014 #include <string>
00015
00016 namespace cppcms {
00017
00018 class session_interface;
00019
00020
00032 class session_api : public booster::noncopyable
00033 {
00034 public:
00044 virtual void save(session_interface &iface,std::string const &data,time_t timeout, bool new_data, bool on_server) = 0;
00045
00053 virtual bool load(session_interface &iface,std::string &data,time_t &timeout) = 0;
00059 virtual void clear(session_interface &iface) = 0;
00060
00064 virtual bool is_blocking() = 0;
00065
00069 virtual ~session_api() {}
00070 };
00071
00072
00076 class session_api_factory {
00077 public:
00082 virtual bool requires_gc() = 0;
00086 virtual void gc() = 0;
00087
00091 virtual booster::shared_ptr<session_api> get() = 0;
00092
00096 virtual ~session_api_factory() {}
00097 };
00098
00099
00100 }
00101
00102 #endif