template<> \
{ \
public: \
enum { \
eMajor = major, \
eMinor = minor, \
ePatchLevel = patch_level \
}; \
static const char* GetName() { return iface_name; } \
}
Macro to auto-setup the current interface name and version.
This macro must be "called" once per interface, usually in the very header that describes that interface.
Example: NCBI_INTERFACE_VERSION(IFooBar, "IFooBar", 1, 3, 8);
Definition at line 134 of file plugin_manager.hpp.
◆ NCBI_INTERFACE_VERSION #define NCBI_INTERFACE_VERSION ( iface ) ◆ EEntryPointRequest ◆ FNCBI_EntryPointEntry point to get drivers' info, and (if requested) their class factories.
This function is usually (but not necessarily) called by RegisterWithEntryPoint().
Usually, it's called twice – the first time to get the info about the drivers exported by the entry point, and then to instantiate selected factories.
Caller is responsible for the proper destruction (deallocation) of the instantiated factories.
Definition at line 437 of file plugin_manager.hpp.
◆ SDriverInfo ◆ TCFDriverInfo ◆ TClassFactory ◆ TDefaultDriverVersion [1/2] ◆ TDefaultDriverVersion [2/2] ◆ TDllResolvers ◆ TDriverInfo [1/2] ◆ TDriverInfo [2/2] ◆ TDriverInfoList [1/2] ◆ TDriverInfoList [2/2] ◆ TDriverList [1/3] ◆ TDriverList [2/3] ◆ TDriverList [3/3] ◆ TEntryPoints ◆ TFactories ◆ TImplementation ◆ TInterface [1/3] ◆ TInterface [2/3] ◆ TInterface [3/3] ◆ TParent ◆ TPluginManager ◆ TPluginManagerParamTree ◆ TResolvedEntries ◆ TSearchPaths [1/2] ◆ TSearchPaths [2/2] ◆ TStringSet ◆ TSubstituteMap ◆ TValue ◆ anonymous enumtemplate<class TInterface >
◆ EEntryPointRequestActions performed by the entry point.
Add info about all drivers exported through the entry point to the end of list.
"SFactoryInfo::factory" in the added info should be assigned NULL.
eInstantiateFactoryScan the driver info list passed to the entry point for the [name,version] pairs exported by the given entry point.
For each pair found, if its "SDriverInfo::factory" is NULL, instantiate its class factory and assign it to the "SDriverInfo::factory".
Definition at line 409 of file plugin_manager.hpp.
◆ EErrCode Enumerator eResolveFailureCannot resolve interface driver.
eParameterMissingMissing mandatory parameter.
eNullInstanceFactory returned NULL instance.
Definition at line 97 of file plugin_manager.hpp.
◆ EVersionLocation ◆ AddDllSearchPath() ◆ AddResolver() ◆ CInvalidDrvVer() ◆ CPluginManager() ◆ CPluginManager_DllResolver() [1/2]Construction.
Definition at line 52 of file plugin_manager.cpp.
◆ CPluginManager_DllResolver() [2/2] CPluginManager_DllResolver::CPluginManager_DllResolver ( void )Definition at line 44 of file plugin_manager.cpp.
◆ CreateDllResolver() CDllResolver * CPluginManager_DllResolver::CreateDllResolver ( ) const protected ◆ CreateInstance() [1/3] ◆ CreateInstance() [2/3]Create driver's instance.
Function creates driver by its name and version. The requirements is the drivers version should match the interface up to the patch level.
Implemented in CICacheCF< TDriver >, CICacheCF< CBDB_Cache >, CICacheCF< CNetICacheClient >, CSimpleClassFactoryImpl< IFace, TDriver >, CSimpleClassFactoryImpl< IBlobStorage, CBlobStorage_NetCache >, CSimpleClassFactoryImpl< I_DriverContext, CMySQLContext >, CSimpleClassFactoryImpl< objects::CReader, objects::CId2Reader >, CSimpleClassFactoryImpl< objects::CReader, objects::CId1Reader >, CSimpleClassFactoryImpl< ICache, CSQLITE3_Cache >, CSimpleClassFactoryImpl< ICache, CBDB_Cache >, CSimpleClassFactoryImpl< ICache, CNetICacheClient >, CSimpleClassFactoryImpl< ICache, TDriver >, CSimpleClassFactoryImpl< objects::CReader, objects::CPubseqReader >, CSimpleClassFactoryImpl< objects::CReader, objects::CGICacheReader >, CSimpleClassFactoryImpl< I_DriverContext, CODBCContext >, CSimpleClassFactoryImpl< I_DriverContext, CTLibContext >, CSimpleClassFactoryImpl< CWriter, CCacheWriter >, CSimpleClassFactoryImpl< objects::CReader, objects::CPubseq2Reader >, CSimpleClassFactoryImpl< objects::CID2Processor, objects::CID2SNPProcessor >, CSimpleClassFactoryImpl< CReader, CCacheReader >, CPubseq2ReaderCF, CPubseqReaderCF, CId2ReaderCF, CId1ReaderCF, CGICacheReaderCF, CID2SNPProcessorCF, CNetScheduleAPICF, CNetCacheAPICF, CSQLITE3_BlobCacheCF, CBlobStorageNetCacheCF, CDbapiOdbcCFBase, CDbapiCtlibCFBase, CCacheWriterCF, CCacheReaderCF, and CDataLoaderFactory.
Referenced by CPluginManager< SNetScheduleAPIImpl >::CreateInstance().
◆ CreateInstance() [3/3]template<class IFace , class TDriver >
Create instance of TDriver.
Implements IClassFactory< IFace >.
Reimplemented in CICacheCF< TDriver >, CICacheCF< CBDB_Cache >, CICacheCF< CNetICacheClient >, CPubseq2ReaderCF, CPubseqReaderCF, CId2ReaderCF, CId1ReaderCF, CGICacheReaderCF, CID2SNPProcessorCF, CSQLITE3_BlobCacheCF, CBlobStorageNetCacheCF, CDbapiOdbcCFBase, CDbapiCtlibCFBase, CCacheWriterCF, and CCacheReaderCF.
Definition at line 90 of file plugin_manager_impl.hpp.
◆ CreateInstanceFromKey() ◆ CreateInstanceFromList() ◆ CSimpleClassFactoryImpl()template<class IFace , class TDriver >
Construction.
Definition at line 77 of file plugin_manager_impl.hpp.
◆ DetachResolver()Remove resolver from the list of active resolvers.
Method is used when we need to freeze some of the resolution variants Resolver is not deleted, and can be reattached again by AddResolver
Definition at line 1088 of file plugin_manager.hpp.
References NON_CONST_ITERATE.
◆ DisableGlobally() static void CPluginManager_DllResolver::DisableGlobally ( ) inlinestatic ◆ EnableGlobally() void CPluginManager_DllResolver::EnableGlobally ( bool enable =true
) static ◆ FindClassFactory() ◆ FreezeResolution() [1/2]
Disable/enable DLL resolution (search for class factories in DLLs)
Definition at line 511 of file plugin_manager.hpp.
◆ FreezeResolution() [2/2] ◆ GetCreateDllResolver() CDllResolver * CPluginManager_DllResolver::GetCreateDllResolver ( ) protected ◆ GetDefaultDrvVers() [1/2] ◆ GetDefaultDrvVers() [2/2] ◆ GetDllName() ◆ GetDllNameMask() ◆ GetDllNamePrefix() string CPluginManager_DllResolver::GetDllNamePrefix ( ) const virtual ◆ GetDllStdSearchPath() ◆ GetDriverName() const string& CPluginManager_DllResolver::GetDriverName ( ) const inline ◆ GetDriverVersions() [1/2]Versions of the interface exported by the factory.
Implemented in CNetScheduleAPICF, CNetCacheAPICF, CSimpleClassFactoryImpl< IFace, TDriver >, CSimpleClassFactoryImpl< IBlobStorage, CBlobStorage_NetCache >, CSimpleClassFactoryImpl< I_DriverContext, CMySQLContext >, CSimpleClassFactoryImpl< objects::CReader, objects::CId2Reader >, CSimpleClassFactoryImpl< objects::CReader, objects::CId1Reader >, CSimpleClassFactoryImpl< ICache, CSQLITE3_Cache >, CSimpleClassFactoryImpl< ICache, CBDB_Cache >, CSimpleClassFactoryImpl< ICache, CNetICacheClient >, CSimpleClassFactoryImpl< ICache, TDriver >, CSimpleClassFactoryImpl< objects::CReader, objects::CPubseqReader >, CSimpleClassFactoryImpl< objects::CReader, objects::CGICacheReader >, CSimpleClassFactoryImpl< I_DriverContext, CODBCContext >, CSimpleClassFactoryImpl< I_DriverContext, CTLibContext >, CSimpleClassFactoryImpl< CWriter, CCacheWriter >, CSimpleClassFactoryImpl< objects::CReader, objects::CPubseq2Reader >, CSimpleClassFactoryImpl< objects::CID2Processor, objects::CID2SNPProcessor >, and CSimpleClassFactoryImpl< CReader, CCacheReader >.
Referenced by CPluginManager< TClass >::FindClassFactory(), and CPluginManager< TClass >::WillExtendCapabilities().
◆ GetDriverVersions() [2/2]template<class IFace , class TDriver >
◆ GetEntryPointName() ◆ GetEntryPointPrefix() string CPluginManager_DllResolver::GetEntryPointPrefix ( ) const virtual ◆ GetErrCodeString() const char * CPluginManagerException::GetErrCodeString ( void ) const overridevirtual ◆ GetFactory()Get class factory.
If more than one (of registered) class factory contain eligible driver candidates, then pick the class factory containing driver of the latest version.
Definition at line 784 of file plugin_manager.hpp.
References _TRACE, msg(), NCBI_THROW, and dtl::version.
Referenced by CPluginManager< SNetScheduleAPIImpl >::CreateInstance().
◆ GetParam() [1/4] ◆ GetParam() [2/4] ◆ GetParam() [3/4]template<class IFace , class TDriver >
This version always defaults to the empty string so that it can safely return a reference.
(default_value may be temporary in some cases.)
Definition at line 126 of file plugin_manager_impl.hpp.
◆ GetParam() [4/4]template<class IFace , class TDriver >
Utility function to get an element of parameter tree Throws an exception when mandatory parameter is missing (or returns the deafult value)
Definition at line 113 of file plugin_manager_impl.hpp.
◆ GetParamBool()template<class IFace , class TDriver >
Utility function to get an bool of parameter tree Throws an exception when mandatory parameter is missing (or returns the deafult value)
Definition at line 169 of file plugin_manager_impl.hpp.
◆ GetParamDataSize()template<class IFace , class TDriver >
Utility function to get an integer of parameter tree Throws an exception when mandatory parameter is missing (or returns the deafult value)
Definition at line 153 of file plugin_manager_impl.hpp.
◆ GetParamDouble()template<class IFace , class TDriver >
Utility function to get a double of parameter tree Throws an exception when mandatory parameter is missing (or returns the default value)
Definition at line 186 of file plugin_manager_impl.hpp.
◆ GetParamInt()template<class IFace , class TDriver >
Utility function to get an integer of parameter tree Throws an exception when mandatory parameter is missing (or returns the deafult value)
Definition at line 137 of file plugin_manager_impl.hpp.
◆ IsEnabledGlobally() bool CPluginManager_DllResolver::IsEnabledGlobally ( ) staticReturn whether to allow loading plugins from DLLs in general.
Definition at line 328 of file plugin_manager.cpp.
◆ IsEnabledGloballyByDefault() bool CPluginManager_DllResolver::IsEnabledGloballyByDefault ( ) static ◆ NCBI_EntryPointImpl()template<class TClassFactory >
Entry point implementation.
Definition at line 229 of file plugin_manager_impl.hpp.
References _ASSERT, CVersionInfo::eFullyCompatible, CPluginManager< TClass >::eGetFactoryInfo, CPluginManager< TClass >::eInstantiateFactory, and NULL.
Referenced by NCBI_BDB_ICacheEntryPoint(), NCBI_EntryPoint_CacheReader(), NCBI_EntryPoint_CacheWriter(), NCBI_EntryPoint_DataLoader_AsnCache(), NCBI_EntryPoint_DataLoader_Bam(), NCBI_EntryPoint_DataLoader_BlastDb(), NCBI_EntryPoint_DataLoader_Cdd(), NCBI_EntryPoint_DataLoader_CSRA(), NCBI_EntryPoint_DataLoader_GB(), NCBI_EntryPoint_DataLoader_LDS2(), NCBI_EntryPoint_DataLoader_Patcher(), NCBI_EntryPoint_DataLoader_RmtBlastDb(), NCBI_EntryPoint_DataLoader_Sra(), NCBI_EntryPoint_DataLoader_WGS(), NCBI_EntryPoint_GICacheReader(), NCBI_EntryPoint_Id1Reader(), NCBI_EntryPoint_id2proc_snp(), NCBI_EntryPoint_Id2Reader(), NCBI_EntryPoint_ReaderPubseqos(), NCBI_EntryPoint_ReaderPubseqos2(), NCBI_EntryPoint_SQLITE3_BlobCache(), NCBI_EntryPoint_xblobstorage_netcache(), NCBI_EntryPoint_xcache_netcache(), NCBI_EntryPoint_xdbapi_ctlib(), NCBI_EntryPoint_xdbapi_mysql(), NCBI_EntryPoint_xdbapi_odbc(), NCBI_EntryPoint_xloader_snp(), NCBI_EntryPoint_xloader_vdbgraph(), NCBI_EntryPoint_xnetcacheapi(), and NCBI_EntryPoint_xnetscheduleapi().
◆ NCBI_EXCEPTION_DEFAULT() ◆ operator()() [1/2] ◆ operator()() [2/2] ◆ operator<() ◆ operator==() ◆ RegisterFactory()Try to register factory in the manager.
The registered factory will be owned by the manager.
Definition at line 874 of file plugin_manager.hpp.
◆ RegisterWithEntryPoint() [1/2]template<class TClass >
template<typename TEntryPoint >
◆ RegisterWithEntryPoint() [2/2]template<class TClass >
template<typename TEntryPoint >
Register all compatible factories for the driver with the particular version exported by the plugin entry point.
Definition at line 1025 of file plugin_manager.hpp.
References _TRACE, and ITERATE.
◆ ResetDllSearchPath()Delete all user-installed paths for the DLL lookup (for all resolvers)
Definition at line 1108 of file plugin_manager.hpp.
◆ Resolve() ◆ ResolveFile() [1/2]Scan DLLs for specified driver using attached resolvers.
Definition at line 1150 of file plugin_manager.hpp.
References CDllResolver::SResolvedEntry::dll, CDllResolver::SNamedEntryPoint::entry_point, CDllResolver::SResolvedEntry::entry_points, ERR_POST_XX, CDll::TEntryPoint::func, CDll::GetName(), CDllResolver::GetResolvedEntries(), Info(), ITERATE, CVersionInfo::kAny, NON_CONST_ITERATE, and dtl::version.
◆ ResolveFile() [2/2]Search for plugin DLLs, resolve entry points.
Definition at line 73 of file plugin_manager.cpp.
References _ASSERT, CPluginManager_DllResolver::eAfterSuffix, CDllResolver::FindCandidates(), CPluginManager_DllResolver::GetCreateDllResolver(), CPluginManager_DllResolver::GetDllNameMask(), CVersionInfo::kAny, CVersionInfo::kLatest, CPluginManager_DllResolver::m_DriverName, CPluginManager_DllResolver::m_InterfaceName, CPluginManager_DllResolver::m_Version, mask, and dtl::version.
Referenced by CPluginManager_DllResolver::Resolve().
◆ SDriverInfo() [1/2] ◆ SDriverInfo() [2/2] ◆ SetDllNamePrefix() void CPluginManager_DllResolver::SetDllNamePrefix ( const string & prefix ) virtual ◆ SetDllStdSearchPath() ◆ UnregisterFactory() ◆ WillExtendCapabilities() ◆ ~CPluginManager() ◆ ~CPluginManager_DllResolver() CPluginManager_DllResolver::~CPluginManager_DllResolver ( void ) virtual ◆ ~IClassFactory() ◆ factory ◆ m_AutoUnloadDll ◆ m_BlockResolution ◆ m_DllNamePrefix string CPluginManager_DllResolver::m_DllNamePrefix protected ◆ m_DllResolver ◆ m_DllSearchPaths ◆ m_DriverName [1/3] string CPluginManager_DllResolver::m_DriverName protected ◆ m_DriverName [2/3] ◆ m_DriverName [3/3]template<class IFace , class TDriver >
Definition at line 202 of file plugin_manager_impl.hpp.
Referenced by CSimpleClassFactoryImpl< CReader, CCacheReader >::CreateInstance(), CSimpleClassFactoryImpl< CReader, CCacheReader >::CSimpleClassFactoryImpl(), CSimpleClassFactoryImpl< CReader, CCacheReader >::GetDriverVersions(), CSimpleClassFactoryImpl< CReader, CCacheReader >::GetParam(), CSimpleClassFactoryImpl< CReader, CCacheReader >::GetParamBool(), CSimpleClassFactoryImpl< CReader, CCacheReader >::GetParamDataSize(), CSimpleClassFactoryImpl< CReader, CCacheReader >::GetParamDouble(), and CSimpleClassFactoryImpl< CReader, CCacheReader >::GetParamInt().
◆ m_DriverVersionInfotemplate<class IFace , class TDriver >
◆ m_EntryPointPrefix string CPluginManager_DllResolver::m_EntryPointPrefix protected ◆ m_EntryPointsList of entry points registered in this plugin manager.
Definition at line 542 of file plugin_manager.hpp.
◆ m_FactoriesList of factories presently registered with (and owned by) the plugin manager.
Definition at line 540 of file plugin_manager.hpp.
◆ m_FreezeResolutionDrivers ◆ m_InterfaceName string CPluginManager_DllResolver::m_InterfaceName protected ◆ m_MutexProtective mutex to synchronize the access to the plugin manager from different threads.
Definition at line 528 of file plugin_manager.hpp.
◆ m_RegisteredEntriesDLL entries resolved and registered with dll resolver(s)
Definition at line 548 of file plugin_manager.hpp.
◆ m_Resolvers ◆ m_StdDllPathStandard locations that should be used for the DLL lookup.
Definition at line 554 of file plugin_manager.hpp.
◆ m_SubstituteMap ◆ m_Version ◆ m_VersionInfo ◆ name ◆ versionRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4