1 /*------------------------------------------------------------------------------
 2 Name:      DispatchManager.h
 3 Project:   xmlBlaster.org
 4 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
 5 Comment:   Manager to retrieve the correct delivery protocol
 6 ------------------------------------------------------------------------------*/
 7 
 8 /**
 9  * It returns the appropriate implementation of the org::xmlBlaster::client::protocol::I_XmlBlasterConnection
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_XmlBlasterConnection
14  * @author <a href="mailto:laghi@swissinfo.org">Michele Laghi</a>.
15  */
16 
17 #ifndef _UTIL_DISPATCH_DELIVERYMANAGER_H
18 #define _UTIL_DISPATCH_DELIVERYMANAGER_H
19 
20 #include <util/xmlBlasterDef.h>
21 #include <util/XmlBlasterException.h>
22 #include <client/protocol/I_XmlBlasterConnection.h>
23 #include <util/dispatch/ConnectionsHandler.h>
24 #include <string>
25 // #include <map>
26 
27 
28 
29 namespace org { namespace xmlBlaster { namespace util { namespace dispatch {
30 
31 class Dll_Export DispatchManager
32 {
33 
34 private:
35    const std::string        ME;
36    org::xmlBlaster::util::Global&             global_;
37    org::xmlBlaster::util::I_Log&                log_;
38 
39 public:
40    DispatchManager(org::xmlBlaster::util::Global& global);
41 
42    ~DispatchManager();
43 
44    org::xmlBlaster::client::protocol::I_XmlBlasterConnection& getPlugin(const std::string& instanceName, const std::string& type, const std::string& version);
45 
46    org::xmlBlaster::util::dispatch::ConnectionsHandler* getConnectionsHandler(const std::string& instanceName);
47    
48    void releasePlugin(const std::string& instanceName, const std::string& type, const std::string& version);
49 
50 };
51 
52 }}}} // namespaces
53 
54 #endif


syntax highlighted by Code2HTML, v. 0.9.1