📄 typeinfo.cpp
字号:
x_CreateInfoItemIfNeeded(); m_InfoItem->SetNamespaceName(ns_name);}bool CTypeInfo::HasNamespacePrefix(void) const{ return m_InfoItem ? m_InfoItem->HasNamespacePrefix() : false;}const string& CTypeInfo::GetNamespacePrefix(void) const{ return m_InfoItem ? m_InfoItem->GetNamespacePrefix() : kEmptyStr;}void CTypeInfo::SetNamespacePrefix(const string& ns_prefix) const{ x_CreateInfoItemIfNeeded(); m_InfoItem->SetNamespacePrefix(ns_prefix);}void CTypeInfo::x_CreateInfoItemIfNeeded(void) const{ if (!m_InfoItem) { m_InfoItem = new CNamespaceInfoItem; }}const string& CTypeInfo::GetModuleName(void) const{ return m_ModuleName;}void CTypeInfo::SetModuleName(const string& name){ if ( !m_ModuleName.empty() ) NCBI_THROW(CSerialException,eFail, "cannot change module name"); m_ModuleName = name;}void CTypeInfo::SetModuleName(const char* name){ SetModuleName(string(name));}void CTypeInfo::Delete(TObjectPtr /*object*/) const{ NCBI_THROW(CSerialException,eIllegalCall, "This type cannot be allocated on heap");}void CTypeInfo::DeleteExternalObjects(TObjectPtr /*object*/) const{}TTypeInfo CTypeInfo::GetRealTypeInfo(TConstObjectPtr ) const{ return this;}bool CTypeInfo::IsType(TTypeInfo typeInfo) const{ return this == typeInfo;}bool CTypeInfo::MayContainType(TTypeInfo /*typeInfo*/) const{ return false;}const CObject* CTypeInfo::GetCObjectPtr(TConstObjectPtr /*objectPtr*/) const{ return 0;}bool CTypeInfo::IsParentClassOf(const CClassTypeInfo* /*classInfo*/) const{ return false;}void CTypeInfo::SetCreateFunction(TTypeCreate func){ m_CreateFunction = func;}void CTypeInfo::SetLocalReadHook(CObjectIStream& stream, CReadObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_ReadHookData.SetLocalHook(stream.m_ObjectHookKey, hook);}void CTypeInfo::SetGlobalReadHook(CReadObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_ReadHookData.SetGlobalHook(hook);}void CTypeInfo::ResetLocalReadHook(CObjectIStream& stream){ CMutexGuard guard(GetTypeInfoMutex()); m_ReadHookData.ResetLocalHook(stream.m_ObjectHookKey);}void CTypeInfo::ResetGlobalReadHook(void){ CMutexGuard guard(GetTypeInfoMutex()); m_ReadHookData.ResetGlobalHook();}void CTypeInfo::SetPathReadHook(CObjectIStream* in, const string& path, CReadObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_ReadHookData.SetPathHook(in,path,hook);}void CTypeInfo::SetGlobalWriteHook(CWriteObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_WriteHookData.SetGlobalHook(hook);}void CTypeInfo::SetLocalWriteHook(CObjectOStream& stream, CWriteObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_WriteHookData.SetLocalHook(stream.m_ObjectHookKey, hook);}void CTypeInfo::ResetGlobalWriteHook(void){ CMutexGuard guard(GetTypeInfoMutex()); m_WriteHookData.ResetGlobalHook();}void CTypeInfo::ResetLocalWriteHook(CObjectOStream& stream){ CMutexGuard guard(GetTypeInfoMutex()); m_WriteHookData.ResetLocalHook(stream.m_ObjectHookKey);}void CTypeInfo::SetPathWriteHook(CObjectOStream* out, const string& path, CWriteObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_WriteHookData.SetPathHook(out,path,hook);}void CTypeInfo::SetGlobalSkipHook(CSkipObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_SkipHookData.SetGlobalHook(hook);}void CTypeInfo::SetLocalSkipHook(CObjectIStream& stream, CSkipObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_SkipHookData.SetLocalHook(stream.m_ObjectSkipHookKey, hook);}void CTypeInfo::ResetGlobalSkipHook(void){ CMutexGuard guard(GetTypeInfoMutex()); m_SkipHookData.ResetGlobalHook();}void CTypeInfo::ResetLocalSkipHook(CObjectIStream& stream){ CMutexGuard guard(GetTypeInfoMutex()); m_SkipHookData.ResetLocalHook(stream.m_ObjectSkipHookKey);}void CTypeInfo::SetPathSkipHook(CObjectIStream* in, const string& path, CSkipObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_SkipHookData.SetPathHook(in,path,hook);}void CTypeInfo::SetGlobalCopyHook(CCopyObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_CopyHookData.SetGlobalHook(hook);}void CTypeInfo::SetLocalCopyHook(CObjectStreamCopier& stream, CCopyObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_CopyHookData.SetLocalHook(stream.m_ObjectHookKey, hook);}void CTypeInfo::ResetGlobalCopyHook(void){ CMutexGuard guard(GetTypeInfoMutex()); m_CopyHookData.ResetGlobalHook();}void CTypeInfo::ResetLocalCopyHook(CObjectStreamCopier& stream){ CMutexGuard guard(GetTypeInfoMutex()); m_CopyHookData.ResetLocalHook(stream.m_ObjectHookKey);}void CTypeInfo::SetPathCopyHook(CObjectStreamCopier* copier, const string& path, CCopyObjectHook* hook){ CMutexGuard guard(GetTypeInfoMutex()); m_CopyHookData.SetPathHook(copier ? &(copier->In()) : 0,path,hook);}void CTypeInfo::SetReadFunction(TTypeReadFunction func){ m_ReadHookData.SetDefaultFunction(func);}void CTypeInfo::SetWriteFunction(TTypeWriteFunction func){ m_WriteHookData.SetDefaultFunction(func);}void CTypeInfo::SetCopyFunction(TTypeCopyFunction func){ m_CopyHookData.SetDefaultFunction(func);}void CTypeInfo::SetSkipFunction(TTypeSkipFunction func){ m_SkipHookData.SetDefaultFunction(func);}void CTypeInfoFunctions::ReadWithHook(CObjectIStream& stream, TTypeInfo objectType, TObjectPtr objectPtr){ CReadObjectHook* hook = objectType->m_ReadHookData.GetHook(stream.m_ObjectHookKey); if (!hook) { hook = objectType->m_ReadHookData.GetPathHook(stream); } if ( hook ) hook->ReadObject(stream, CObjectInfo(objectPtr, objectType)); else objectType->DefaultReadData(stream, objectPtr);}void CTypeInfoFunctions::WriteWithHook(CObjectOStream& stream, TTypeInfo objectType, TConstObjectPtr objectPtr){ CWriteObjectHook* hook = objectType->m_WriteHookData.GetHook(stream.m_ObjectHookKey); if (!hook) { hook = objectType->m_WriteHookData.GetPathHook(stream); } if ( hook ) hook->WriteObject(stream, CConstObjectInfo(objectPtr, objectType)); else objectType->DefaultWriteData(stream, objectPtr);}void CTypeInfoFunctions::SkipWithHook(CObjectIStream& stream, TTypeInfo objectType){ CSkipObjectHook* hook = objectType->m_SkipHookData.GetHook(stream.m_ObjectSkipHookKey); if (!hook) { hook = objectType->m_SkipHookData.GetPathHook(stream); } if ( hook ) hook->SkipObject(stream, objectType); else objectType->DefaultSkipData(stream);}void CTypeInfoFunctions::CopyWithHook(CObjectStreamCopier& stream, TTypeInfo objectType){ CCopyObjectHook* hook = objectType->m_CopyHookData.GetHook(stream.m_ObjectHookKey); if (!hook) { hook = objectType->m_CopyHookData.GetPathHook(stream.In()); } if ( hook ) hook->CopyObject(stream, objectType); else objectType->DefaultCopyData(stream);}CNamespaceInfoItem::CNamespaceInfoItem(void){ m_NsPrefixSet = false;}CNamespaceInfoItem::CNamespaceInfoItem(const CNamespaceInfoItem& other){ m_NsName = other.m_NsName; m_NsPrefix = other.m_NsPrefix; m_NsPrefixSet = other.m_NsPrefixSet;}CNamespaceInfoItem::~CNamespaceInfoItem(void){}bool CNamespaceInfoItem::HasNamespaceName(void) const{ return !m_NsName.empty();}const string& CNamespaceInfoItem::GetNamespaceName(void) const{ return m_NsName;}void CNamespaceInfoItem::SetNamespaceName(const string& ns_name){ m_NsName = ns_name;}bool CNamespaceInfoItem::HasNamespacePrefix(void) const{ return m_NsPrefixSet;}const string& CNamespaceInfoItem::GetNamespacePrefix(void) const{ return m_NsPrefix;}void CNamespaceInfoItem::SetNamespacePrefix(const string& ns_prefix){ m_NsPrefix = ns_prefix; m_NsPrefixSet = !m_NsPrefix.empty();}END_NCBI_SCOPE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -