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

📄 objistrimpl.inl

📁 ncbi源码
💻 INL
字号:
/* * =========================================================================== * PRODUCTION $Log: objistrimpl.inl,v $ * PRODUCTION Revision 1000.1  2004/04/12 17:15:12  gouriano * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.5 * PRODUCTION * =========================================================================== */#if defined(OBJISTRIMPL__HPP)  &&  !defined(OBJISTRIMPL__INL)#define OBJISTRIMPL__INL/*  $Id: objistrimpl.inl,v 1000.1 2004/04/12 17:15:12 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 !!!*/#define ClassRandomContentsBegin(classType) \{ \    vector<bool> read(classType->GetMembers().LastIndex() + 1); \    BEGIN_OBJECT_FRAME(eFrameClassMember); \    {#define ClassRandomContentsMember(Func, Args) \    { \        const CMemberInfo* memberInfo = classType->GetMemberInfo(index); \        SetTopMemberId(memberInfo->GetId()); \        _ASSERT(index >= kFirstMemberIndex && index <= read.size()); \        if ( read[index] ) \            DuplicatedMember(memberInfo); \        else { \            read[index] = true; \            { \                memberInfo->NCBI_NAME2(Func,Member)Args; \            } \        } \    }#define ClassRandomContentsEnd(Func, Args) \    } \    END_OBJECT_FRAME(); \    for ( CClassTypeInfo::CIterator i(classType); i.Valid(); ++i ) { \        if ( !read[*i] ) { \            classType->GetMemberInfo(i)->NCBI_NAME2(Func,MissingMember)Args; \        } \    } \}#define ReadClassRandomContentsBegin(classType) \    ClassRandomContentsBegin(classType)#define ReadClassRandomContentsMember(classPtr) \    ClassRandomContentsMember(Read, (*this, classPtr))#define ReadClassRandomContentsEnd() \    ClassRandomContentsEnd(Read, (*this, classPtr))#define SkipClassRandomContentsBegin(classType) \    ClassRandomContentsBegin(classType)#define SkipClassRandomContentsMember() \    ClassRandomContentsMember(Skip, (*this))#define SkipClassRandomContentsEnd() \    ClassRandomContentsEnd(Skip, (*this))#define ClassSequentialContentsBegin(classType) \{ \    CClassTypeInfo::CIterator pos(classType); \    BEGIN_OBJECT_FRAME(eFrameClassMember); \    {#define ClassSequentialContentsMember(Func, Args) \    { \        const CMemberInfo* memberInfo = classType->GetMemberInfo(index); \        SetTopMemberId(memberInfo->GetId()); \        for ( TMemberIndex i = *pos; i < index; ++i ) { \            classType->GetMemberInfo(i)->NCBI_NAME2(Func,MissingMember)Args; \        } \        { \            memberInfo->NCBI_NAME2(Func,Member)Args; \        } \        pos.SetIndex(index + 1); \    }#define ClassSequentialContentsEnd(Func, Args) \    } \    END_OBJECT_FRAME(); \    for ( ; pos.Valid(); ++pos ) { \        classType->GetMemberInfo(pos)->NCBI_NAME2(Func,MissingMember)Args; \    } \}#define ReadClassSequentialContentsBegin(classType) \    ClassSequentialContentsBegin(classType)#define ReadClassSequentialContentsMember(classPtr) \    ClassSequentialContentsMember(Read, (*this, classPtr))#define ReadClassSequentialContentsEnd(classPtr) \    ClassSequentialContentsEnd(Read, (*this, classPtr))#define SkipClassSequentialContentsBegin(classType) \    ClassSequentialContentsBegin(classType)#define SkipClassSequentialContentsMember() \    ClassSequentialContentsMember(Skip, (*this))#define SkipClassSequentialContentsEnd() \    ClassSequentialContentsEnd(Skip, (*this))#endif /* def OBJISTRIMPL__HPP  &&  ndef OBJISTRIMPL__INL *//* ---------------------------------------------------------------------------* $Log: objistrimpl.inl,v $* Revision 1000.1  2004/04/12 17:15:12  gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.5** Revision 1.5  2004/01/05 14:24:08  gouriano* Added possibility to set serialization hooks by stack path** Revision 1.4  2003/08/25 15:58:32  gouriano* added possibility to use namespaces in XML i/o streams** 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  2000/10/03 17:22:34  vasilche* Reduced header dependency.* Reduced size of debug libraries on WorkShop by 3 times.* Fixed tag allocation for parent classes.* Fixed CObject allocation/deallocation in streams.* Moved instantiation of several templates in separate source file.** Revision 1.1  2000/09/18 20:00:06  vasilche* Separated CVariantInfo and CMemberInfo.* Implemented copy hooks.* All hooks now are stored in CTypeInfo/CMemberInfo/CVariantInfo.* Most type specific functions now are implemented via function pointers instead of virtual functions.** ===========================================================================*/

⌨️ 快捷键说明

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