00001 /*------------------------------------------------------------------------------ 00002 Name: DispatchManager.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 Comment: Manager to retrieve the correct delivery protocol 00006 ------------------------------------------------------------------------------*/ 00007 00017 #ifndef _UTIL_DISPATCH_DELIVERYMANAGER_H 00018 #define _UTIL_DISPATCH_DELIVERYMANAGER_H 00019 00020 #include <util/xmlBlasterDef.h> 00021 #include <util/XmlBlasterException.h> 00022 #include <client/protocol/I_XmlBlasterConnection.h> 00023 #include <util/dispatch/ConnectionsHandler.h> 00024 #include <string> 00025 // #include <map> 00026 00027 00028 00029 namespace org { namespace xmlBlaster { namespace util { namespace dispatch { 00030 00031 class Dll_Export DispatchManager 00032 { 00033 00034 private: 00035 const std::string ME; 00036 org::xmlBlaster::util::Global& global_; 00037 org::xmlBlaster::util::I_Log& log_; 00038 00039 public: 00040 DispatchManager(org::xmlBlaster::util::Global& global); 00041 00042 ~DispatchManager(); 00043 00044 org::xmlBlaster::client::protocol::I_XmlBlasterConnection& getPlugin(const std::string& instanceName, const std::string& type, const std::string& version); 00045 00046 org::xmlBlaster::util::dispatch::ConnectionsHandler* getConnectionsHandler(const std::string& instanceName); 00047 00048 void releasePlugin(const std::string& instanceName, const std::string& type, const std::string& version); 00049 00050 }; 00051 00052 }}}} // namespaces 00053 00054 #endif