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