67 const string& interface_name,
82 if (it2 != it->second.end())
83 return it2->second->CreateInterface(params);
89 const string& interface_name,
107 if (it2 != it->second.end())
108 return it2->second->CreateInterface(
object, params);
113 if (it2 != it->second.end())
114 return it2->second->CreateInterface(
object, params);
119 catch (
const exception&)
140 if (it2 != it->second.end())
146 if (it2 != it->second.end())
static CObject * CreateInterface(const string &interface_name, TTypeInfo info, ICreateParams *params)
TTypeIfFactoryMap m_Interfaces
static bool ObjectHasInterface(const string &interface_name, SConstScopedObject &object)
static void RegisterFactory(const string &interface_name, IInterfaceFactory *factory)
static CInterfaceRegistry & x_GetInstance()
TTypeIfObjectFactoryMap m_ObjectInterfaces
Base class for all serializable objects.
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
container_type::const_iterator const_iterator
const_iterator end() const
const_iterator find(const key_type &key) const
virtual const CTypeInfo * GetThisTypeInfo(void) const =0
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
DEFINE_STATIC_MUTEX(s_ObjFactoryMutex)
Multi-threading – mutexes; rw-locks; semaphore.