client/protocol/CbServerPluginManager.h

Go to the documentation of this file.
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