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