⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objectiter.hpp

📁 ncbi源码
💻 HPP
📖 第 1 页 / 共 2 页
字号:
/* * =========================================================================== * PRODUCTION $Log: objectiter.hpp,v $ * PRODUCTION Revision 1000.2  2004/06/01 19:38:47  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.11 * PRODUCTION * =========================================================================== */#ifndef OBJECTITER__HPP#define OBJECTITER__HPP/*  $Id: objectiter.hpp,v 1000.2 2004/06/01 19:38:47 gouriano Exp $* ===========================================================================**                            PUBLIC DOMAIN NOTICE*               National Center for Biotechnology Information**  This software/database is a "United States Government Work" under the*  terms of the United States Copyright Act.  It was written as part of*  the author's official duties as a United States Government employee and*  thus cannot be copyrighted.  This software/database is freely available*  to the public for use. The National Library of Medicine and the U.S.*  Government have not placed any restriction on its use or reproduction.**  Although all reasonable efforts have been taken to ensure the accuracy*  and reliability of the software and data, the NLM and the U.S.*  Government do not and cannot warrant the performance or results that*  may be obtained by using this software or data. The NLM and the U.S.*  Government disclaim all warranties, express or implied, including*  warranties of performance, merchantability or fitness for any particular*  purpose.**  Please cite the author in any work or product based on this material.** ===========================================================================** Author: Eugene Vasilchenko** File Description:*   !!! PUT YOUR DESCRIPTION HERE !!!*/#include <corelib/ncbistd.hpp>#include <serial/objectinfo.hpp>/** @addtogroup UserCodeSupport * * @{ */BEGIN_NCBI_SCOPEclass NCBI_XSERIAL_EXPORT CConstObjectInfoEI{public:    CConstObjectInfoEI(void);    CConstObjectInfoEI(const CConstObjectInfo& object);    CConstObjectInfoEI& operator=(const CConstObjectInfo& object);    bool Valid(void) const;    operator bool(void) const;    bool operator!(void) const;    void Next(void);    CConstObjectInfoEI& operator++(void);    CConstObjectInfo GetElement(void) const;    CConstObjectInfo operator*(void) const;    bool CanGet(void) const    {        return true;    }private:    bool CheckValid(void) const;    void ReportNonValid(void) const;        CConstContainerElementIterator m_Iterator;#if _DEBUG    mutable enum { eNone, eValid, eNext, eErase } m_LastCall;#endif};class NCBI_XSERIAL_EXPORT CObjectInfoEI{public:    CObjectInfoEI(void);    CObjectInfoEI(const CObjectInfo& object);    CObjectInfoEI& operator=(const CObjectInfo& object);    bool Valid(void) const;    operator bool(void) const;    bool operator!(void) const;    void Next(void);    CObjectInfoEI& operator++(void);    CObjectInfo GetElement(void) const;    CObjectInfo operator*(void) const;    void Erase(void);    bool CanGet(void) const    {        return true;    }private:    bool CheckValid(void) const;    void ReportNonValid(void) const;    CContainerElementIterator m_Iterator;#if _DEBUG    mutable enum { eNone, eValid, eNext, eErase } m_LastCall;#endif};class NCBI_XSERIAL_EXPORT CObjectTypeInfoII // item iterator (either member or variant){public:    const string& GetAlias(void) const;        bool Valid(void) const;    operator bool(void) const;    bool operator!(void) const;        bool operator==(const CObjectTypeInfoII& iter) const;    bool operator!=(const CObjectTypeInfoII& iter) const;        void Next(void);protected:    CObjectTypeInfoII(void);    CObjectTypeInfoII(const CClassTypeInfoBase* typeInfo);    CObjectTypeInfoII(const CClassTypeInfoBase* typeInfo, TMemberIndex index);        const CObjectTypeInfo& GetOwnerType(void) const;    const CClassTypeInfoBase* GetClassTypeInfoBase(void) const;    TMemberIndex GetItemIndex(void) const;    const CItemInfo* GetItemInfo(void) const;    void Init(const CClassTypeInfoBase* typeInfo);    void Init(const CClassTypeInfoBase* typeInfo, TMemberIndex index);    bool CanGet(void) const    {        return true;    }private:    CObjectTypeInfo m_OwnerType;    TMemberIndex m_ItemIndex;    TMemberIndex m_LastItemIndex;        void ReportNonValid(void) const;    protected:#if _DEBUG    mutable enum { eNone, eValid, eNext, eErase } m_LastCall;#endif    bool CheckValid(void) const;};class NCBI_XSERIAL_EXPORT CObjectTypeInfoMI : public CObjectTypeInfoII{    typedef CObjectTypeInfoII CParent;public:    CObjectTypeInfoMI(void);    CObjectTypeInfoMI(const CObjectTypeInfo& info);    CObjectTypeInfoMI(const CObjectTypeInfo& info, TMemberIndex index);    TMemberIndex GetMemberIndex(void) const;    CObjectTypeInfoMI& operator++(void);    CObjectTypeInfoMI& operator=(const CObjectTypeInfo& info);    CObjectTypeInfo GetClassType(void) const;    operator CObjectTypeInfo(void) const;    CObjectTypeInfo GetMemberType(void) const;    CObjectTypeInfo operator*(void) const;    void SetLocalReadHook(CObjectIStream& stream,                          CReadClassMemberHook* hook) const;    void SetGlobalReadHook(CReadClassMemberHook* hook) const;    void ResetLocalReadHook(CObjectIStream& stream) const;    void ResetGlobalReadHook(void) const;    void SetPathReadHook(CObjectIStream* in, const string& path,                         CReadClassMemberHook* hook) const;    void SetLocalWriteHook(CObjectOStream& stream,                          CWriteClassMemberHook* hook) const;    void SetGlobalWriteHook(CWriteClassMemberHook* hook) const;    void ResetLocalWriteHook(CObjectOStream& stream) const;    void ResetGlobalWriteHook(void) const;    void SetPathWriteHook(CObjectOStream* stream, const string& path,                          CWriteClassMemberHook* hook) const;    void SetLocalSkipHook(CObjectIStream& stream,                          CSkipClassMemberHook* hook) const;    void SetGlobalSkipHook(CSkipClassMemberHook* hook) const;    void ResetLocalSkipHook(CObjectIStream& stream) const;    void ResetGlobalSkipHook(void) const;    void SetPathSkipHook(CObjectIStream* stream, const string& path,                         CSkipClassMemberHook* hook) const;    void SetLocalCopyHook(CObjectStreamCopier& stream,                          CCopyClassMemberHook* hook) const;    void SetGlobalCopyHook(CCopyClassMemberHook* hook) const;    void ResetLocalCopyHook(CObjectStreamCopier& stream) const;    void ResetGlobalCopyHook(void) const;    void SetPathCopyHook(CObjectStreamCopier* stream, const string& path,                         CCopyClassMemberHook* hook) const;public: // mostly for internal use    const CMemberInfo* GetMemberInfo(void) const;protected:    void Init(const CObjectTypeInfo& info);    void Init(const CObjectTypeInfo& info, TMemberIndex index);    const CClassTypeInfo* GetClassTypeInfo(void) const;    bool IsSet(const CConstObjectInfo& object) const;private:    CMemberInfo* GetNCMemberInfo(void) const;};class NCBI_XSERIAL_EXPORT CObjectTypeInfoVI : public CObjectTypeInfoII{    typedef CObjectTypeInfoII CParent;public:    CObjectTypeInfoVI(const CObjectTypeInfo& info);    CObjectTypeInfoVI(const CObjectTypeInfo& info, TMemberIndex index);    TMemberIndex GetVariantIndex(void) const;    CObjectTypeInfoVI& operator++(void);    CObjectTypeInfoVI& operator=(const CObjectTypeInfo& info);    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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -