1 /*------------------------------------------------------------------------------
2 Name: CbServerPluginManager.h
3 Project: xmlBlaster.org
4 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
5 Comment: Manager to retrieve the correct callback protocol implementation
6 ------------------------------------------------------------------------------*/
7
8 /**
9 * It returns the appropriate implementation of the org::xmlBlaster::client::protocol::I_CallbackServer
10 * interface (note that this is a class in c++) for the given protocol.
11 * with your own lowlevel SOCKET or CORBA coding as well.
12 *
13 * @see org.xmlBlaster.client.protocol.I_CallbackServer
14 * @author <a href="mailto:laghi@swissinfo.org">Michele Laghi</a>.
15 */
16
17 #ifndef _CLIENT_PROTOCOL_CBSERVERPLUGINMANAGER_H
18 #define _CLIENT_PROTOCOL_CBSERVERPLUGINMANAGER_H
19
20 #include <util/xmlBlasterDef.h>
21 #include <util/I_Log.h>
22 #include <util/XmlBlasterException.h>
23 #include <client/protocol/I_CallbackServer.h>
24 #include <string>
25
26 namespace org { namespace xmlBlaster { namespace client { namespace protocol {
27
28 class Dll_Export CbServerPluginManager
29 {
30
31 private:
32 const std::string ME;
33 org::xmlBlaster::util::Global& global_;
34 org::xmlBlaster::util::I_Log& log_;
35
36 public:
37 CbServerPluginManager(org::xmlBlaster::util::Global& global);
38
39 ~CbServerPluginManager();
40
41 org::xmlBlaster::client::protocol::I_CallbackServer& getPlugin(const std::string& instanceName, const std::string& type, const std::string& version);
42
43 void releasePlugin(const std::string& instanceName, const std::string& type, const std::string& version);
44
45 };
46
47 }}}} // namespaces
48
49 #endif
syntax highlighted by Code2HTML, v. 0.9.1