📄 objectiter.hpp
字号:
void ResetLocalWriteHook(CObjectOStream& stream) const; void ResetGlobalWriteHook(void) const; void SetPathWriteHook(CObjectOStream* stream, const string& path, CWriteChoiceVariantHook* hook) const; void SetLocalSkipHook(CObjectIStream& stream, CSkipChoiceVariantHook* hook) const; void SetGlobalSkipHook(CSkipChoiceVariantHook* hook) const; void ResetLocalSkipHook(CObjectIStream& stream) const; void ResetGlobalSkipHook(void) const; void SetPathSkipHook(CObjectIStream* stream, const string& path, CSkipChoiceVariantHook* hook) const; void SetLocalCopyHook(CObjectStreamCopier& stream, CCopyChoiceVariantHook* hook) const; void SetGlobalCopyHook(CCopyChoiceVariantHook* hook) const; void ResetLocalCopyHook(CObjectStreamCopier& stream) const; void ResetGlobalCopyHook(void) const; void SetPathCopyHook(CObjectStreamCopier* stream, const string& path, CCopyChoiceVariantHook* hook) const;public: // mostly for internal use const CVariantInfo* GetVariantInfo(void) const;protected: void Init(const CObjectTypeInfo& info); void Init(const CObjectTypeInfo& info, TMemberIndex index); const CChoiceTypeInfo* GetChoiceTypeInfo(void) const;private: CVariantInfo* GetNCVariantInfo(void) const;};class NCBI_XSERIAL_EXPORT CConstObjectInfoMI : public CObjectTypeInfoMI{ typedef CObjectTypeInfoMI CParent;public: CConstObjectInfoMI(void); CConstObjectInfoMI(const CConstObjectInfo& object); CConstObjectInfoMI(const CConstObjectInfo& object, TMemberIndex index); const CConstObjectInfo& GetClassObject(void) const; CConstObjectInfoMI& operator=(const CConstObjectInfo& object); bool IsSet(void) const; CConstObjectInfo GetMember(void) const; CConstObjectInfo operator*(void) const; bool CanGet(void) const;private: pair<TConstObjectPtr, TTypeInfo> GetMemberPair(void) const; CConstObjectInfo m_Object;};class NCBI_XSERIAL_EXPORT CObjectInfoMI : public CObjectTypeInfoMI{ typedef CObjectTypeInfoMI CParent;public: CObjectInfoMI(void); CObjectInfoMI(const CObjectInfo& object); CObjectInfoMI(const CObjectInfo& object, TMemberIndex index); const CObjectInfo& GetClassObject(void) const; CObjectInfoMI& operator=(const CObjectInfo& object); bool IsSet(void) const; CObjectInfo GetMember(void) const; CObjectInfo operator*(void) const; // reset value of member to default state enum EEraseFlag { eErase_Optional, // default - erase optional member only eErase_Mandatory // allow erasing mandatory members, may be dangerous! }; void Erase(EEraseFlag flag = eErase_Optional); void Reset(void); bool CanGet(void) const;private: pair<TObjectPtr, TTypeInfo> GetMemberPair(void) const; CObjectInfo m_Object;};class NCBI_XSERIAL_EXPORT CObjectTypeInfoCV{public: CObjectTypeInfoCV(void); CObjectTypeInfoCV(const CObjectTypeInfo& info); CObjectTypeInfoCV(const CObjectTypeInfo& info, TMemberIndex index); CObjectTypeInfoCV(const CConstObjectInfo& object); TMemberIndex GetVariantIndex(void) const; const string& GetAlias(void) const; bool Valid(void) const; operator bool(void) const; bool operator!(void) const; bool operator==(const CObjectTypeInfoCV& iter) const; bool operator!=(const CObjectTypeInfoCV& iter) const; CObjectTypeInfoCV& operator=(const CObjectTypeInfo& info); CObjectTypeInfoCV& operator=(const CConstObjectInfo& object); CObjectTypeInfo GetChoiceType(void) const; CObjectTypeInfo GetVariantType(void) const; CObjectTypeInfo operator*(void) const; void SetLocalReadHook(CObjectIStream& stream, CReadChoiceVariantHook* hook) const; void SetGlobalReadHook(CReadChoiceVariantHook* hook) const; void ResetLocalReadHook(CObjectIStream& stream) const; void ResetGlobalReadHook(void) const; void SetPathReadHook(CObjectIStream* stream, const string& path, CReadChoiceVariantHook* hook) const; void SetLocalWriteHook(CObjectOStream& stream, CWriteChoiceVariantHook* hook) const; void SetGlobalWriteHook(CWriteChoiceVariantHook* hook) const; void ResetLocalWriteHook(CObjectOStream& stream) const; void ResetGlobalWriteHook(void) const; void SetPathWriteHook(CObjectOStream* stream, const string& path, CWriteChoiceVariantHook* hook) const; void SetLocalCopyHook(CObjectStreamCopier& stream, CCopyChoiceVariantHook* hook) const; void SetGlobalCopyHook(CCopyChoiceVariantHook* hook) const; void ResetLocalCopyHook(CObjectStreamCopier& stream) const; void ResetGlobalCopyHook(void) const; void SetPathCopyHook(CObjectStreamCopier* stream, const string& path, CCopyChoiceVariantHook* hook) const;public: // mostly for internal use const CVariantInfo* GetVariantInfo(void) const;protected: const CChoiceTypeInfo* GetChoiceTypeInfo(void) const; void Init(const CObjectTypeInfo& info); void Init(const CObjectTypeInfo& info, TMemberIndex index); void Init(const CConstObjectInfo& object);private: const CChoiceTypeInfo* m_ChoiceTypeInfo; TMemberIndex m_VariantIndex;private: CVariantInfo* GetNCVariantInfo(void) const;};class NCBI_XSERIAL_EXPORT CConstObjectInfoCV : public CObjectTypeInfoCV{ typedef CObjectTypeInfoCV CParent;public: CConstObjectInfoCV(void); CConstObjectInfoCV(const CConstObjectInfo& object); CConstObjectInfoCV(const CConstObjectInfo& object, TMemberIndex index); const CConstObjectInfo& GetChoiceObject(void) const; CConstObjectInfoCV& operator=(const CConstObjectInfo& object); CConstObjectInfo GetVariant(void) const; CConstObjectInfo operator*(void) const;private: pair<TConstObjectPtr, TTypeInfo> GetVariantPair(void) const; CConstObjectInfo m_Object; TMemberIndex m_VariantIndex;};class NCBI_XSERIAL_EXPORT CObjectInfoCV : public CObjectTypeInfoCV{ typedef CObjectTypeInfoCV CParent;public: CObjectInfoCV(void); CObjectInfoCV(const CObjectInfo& object); CObjectInfoCV(const CObjectInfo& object, TMemberIndex index); const CObjectInfo& GetChoiceObject(void) const; CObjectInfoCV& operator=(const CObjectInfo& object); CObjectInfo GetVariant(void) const; CObjectInfo operator*(void) const;private: pair<TObjectPtr, TTypeInfo> GetVariantPair(void) const; CObjectInfo m_Object;};/* @} */#include <serial/objectiter.inl>END_NCBI_SCOPE#endif /* OBJECTITER__HPP *//* ---------------------------------------------------------------------------* $Log: objectiter.hpp,v $* Revision 1000.2 2004/06/01 19:38:47 gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.11** Revision 1.11 2004/04/30 13:28:39 gouriano* Remove obsolete function declarations** Revision 1.10 2004/01/05 14:24:08 gouriano* Added possibility to set serialization hooks by stack path** Revision 1.9 2003/09/30 17:12:30 gouriano* Modified TypeIterators to skip unset optional members** Revision 1.8 2003/08/14 20:03:57 vasilche* Avoid memory reallocation when reading over preallocated object.* Simplified CContainerTypeInfo iterators interface.** Revision 1.7 2003/08/11 15:25:50 grichenk* Added possibility to reset an object member from* a read hook (including non-optional members).** Revision 1.6 2003/07/29 18:47:46 vasilche* Fixed thread safeness of object stream hooks.** Revision 1.5 2003/07/17 22:49:31 vasilche* Added export specifiers.* Added missing methods.** Revision 1.4 2003/04/15 16:18:15 siyan* Added doxygen support** Revision 1.3 2002/12/23 18:38:51 dicuccio* Added WIn32 export specifier: NCBI_XSERIAL_EXPORT.* Moved all CVS logs to the end.** Revision 1.2 2001/05/17 14:58:35 lavr* Typos corrected** Revision 1.1 2000/10/20 15:51:25 vasilche* Fixed data error processing.* Added interface for constructing container objects directly into output stream.* object.hpp, object.inl and object.cpp were split to* objectinfo.*, objecttype.*, objectiter.* and objectio.*.** ===========================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -