9c76f699ee03760bcb3fbecad256640d5d5cff7e
[metaproxy-moved-to-github.git] / src / filter_session_shared.hpp
1 /* $Id: filter_session_shared.hpp,v 1.8 2006-06-21 09:16:54 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             void configure(const xmlNode * ptr);
44         private:
45             boost::scoped_ptr<Rep> m_p;
46         };
47     }
48 }
49
50 extern "C" {
51     extern struct metaproxy_1_filter_struct metaproxy_1_filter_session_shared;
52 }
53
54 #endif
55 /*
56  * Local variables:
57  * c-basic-offset: 4
58  * indent-tabs-mode: nil
59  * c-file-style: "stroustrup"
60  * End:
61  * vim: shiftwidth=4 tabstop=8 expandtab
62  */