Functional session_shared module. Require yazpp 1.0.1.
[metaproxy-moved-to-github.git] / src / filter_session_shared.hpp
1 /* $Id: filter_session_shared.hpp,v 1.7 2006-06-19 23:54:02 adam Exp $
2    Copyright (c) 2005-2006, Index Data.
3
4    See the LICENSE file for details
5  */
6
7 #ifndef FILTER_SESSION_SHARED_HPP
8 #define FILTER_SESSION_SHARED_HPP
9
10 #include <boost/scoped_ptr.hpp>
11 #include <list>
12 #include <map>
13
14 #include "filter.hpp"
15
16 namespace metaproxy_1 {
17     namespace filter {
18         class SessionShared : public Base {
19             class Rep;
20             class InitKey;
21             class BackendSet;
22             class FrontendSet;
23             class Worker;
24
25             struct Frontend;
26             class BackendClass;
27             class BackendInstance;
28             typedef boost::shared_ptr<Frontend> FrontendPtr;
29             typedef boost::shared_ptr<BackendClass> BackendClassPtr;
30             typedef boost::shared_ptr<BackendInstance> BackendInstancePtr;
31             typedef boost::shared_ptr<BackendSet> BackendSetPtr;
32             typedef boost::shared_ptr<FrontendSet> FrontendSetPtr;
33             typedef std::list<std::string> Databases;
34
35             typedef std::list<BackendInstancePtr> BackendInstanceList;
36             typedef std::map<InitKey, BackendClassPtr> BackendClassMap;
37             typedef std::list<BackendSetPtr> BackendSetList;
38             typedef std::map<std::string, FrontendSetPtr> FrontendSets;
39         public:
40             ~SessionShared();
41             SessionShared();
42             void process(metaproxy_1::Package & package) const;
43         private:
44             boost::scoped_ptr<Rep> m_p;
45         };
46     }
47 }
48
49 extern "C" {
50     extern struct metaproxy_1_filter_struct metaproxy_1_filter_session_shared;
51 }
52
53 #endif
54 /*
55  * Local variables:
56  * c-basic-offset: 4
57  * indent-tabs-mode: nil
58  * c-file-style: "stroustrup"
59  * End:
60  * vim: shiftwidth=4 tabstop=8 expandtab
61  */