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