CppCMS
session_api.h
1 //
3 // Copyright (C) 2008-2012 Artyom Beilis (Tonkikh) <artyomtnk@yahoo.com>
4 //
5 // See accompanying file COPYING.TXT file for licensing details.
6 //
8 #ifndef CPPCMS_SESSION_API_H
9 #define CPPCMS_SESSION_API_H
10 
11 #include <cppcms/defs.h>
12 #include <booster/noncopyable.h>
13 #include <booster/shared_ptr.h>
14 #include <string>
15 #include <time.h>
16 
17 namespace cppcms {
18 
19 class session_interface;
20 
21 
34 {
35 public:
45  virtual void save(session_interface &iface,std::string const &data,time_t timeout, bool new_data, bool on_server) = 0;
46 
54  virtual bool load(session_interface &iface,std::string &data,time_t &timeout) = 0;
60  virtual void clear(session_interface &iface) = 0;
61 
65  virtual bool is_blocking() = 0;
66 
70  virtual ~session_api() {}
71 };
72 
73 
78 public:
83  virtual bool requires_gc() = 0;
87  virtual void gc() = 0;
88 
92  virtual booster::shared_ptr<session_api> get() = 0;
93 
97  virtual ~session_api_factory() {}
98 };
99 
100 
101 } // cppcms
102 
103 #endif
virtual void save(session_interface &iface, std::string const &data, time_t timeout, bool new_data, bool on_server)=0
virtual bool load(session_interface &iface, std::string &data, time_t &timeout)=0
virtual void clear(session_interface &iface)=0
This class provides an access to an application for session management.
Definition: session_interface.h:107
virtual ~session_api()
Definition: session_api.h:70
This is the namespace where all CppCMS functionality is placed.
Definition: application.h:19
virtual ~session_api_factory()
Definition: session_api.h:97
the factory object that generates custom implemented session_api objects
Definition: session_api.h:77
This class represents the most generic implementation of session storage device.
Definition: session_api.h:33
virtual bool is_blocking()=0
This class makes impossible to copy any class derived from this one.
Definition: noncopyable.h:15