1 #ifndef CORELIB___PLUGIN_MANAGER_STORE__HPP
2 #define CORELIB___PLUGIN_MANAGER_STORE__HPP
47 static SSystemFastMutex& GetMutex(
void);
52 static void ReportKeyConflict(
const TKey&
key,
54 const type_info& new_pm_type);
57 template<
class Interface>
80 _TRACE(
"CPluginManagerGetter<>::Get(): "
81 "created new instance: "<<
key);
114 template<
class TInterface>
138 template<
typename TInterface,
typename TEntryPo
int>
145 manager->RegisterWithEntryPoint(plugin_entry_point);
static void ReportKeyConflict(const TKey &key, const TObject *old_pm, const type_info &new_pm_type)
static TObject * GetBase(const TKey &key)
static void PutBase(const TKey &key, TObject *pm)
static SSystemFastMutex & GetMutex(void)
CPluginManagerBase TObject
static TPluginManager * Get(const string &key)
CPluginManager< TInterface > TPluginManager
CPluginManagerGetterImpl::TObject TPluginManagerBase
static TPluginManager * Get(void)
CPluginManagerGetterImpl::TKey TPluginManagerKey
deprecated interface to CPluginManager
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_XNCBI_EXPORT
CBioseq_Base_Info & GetBase(CTSE_Info &tse, const CBioObjectId &id)
const struct ncbi::grid::netcache::search::fields::KEY key
Multi-threading – mutexes; rw-locks; semaphore.
Plugin manager (using class factory paradigm).
void RegisterEntryPoint(TEntryPoint plugin_entry_point)
Utility class to get plugin manager from the store If it is not there, class will create and add new ...
static CPluginManager< TInterface > * Get(void)
CPluginManager< TInterface > TPluginManager
static CPluginManager< TInterface > * Get(const string &pm_name)