object.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:6k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: object.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 17:24:38  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.19
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef OBJECT__HPP
  10. #define OBJECT__HPP
  11. /*  $Id: object.hpp,v 1000.0 2003/10/29 17:24:38 gouriano Exp $
  12. * ===========================================================================
  13. *
  14. *                            PUBLIC DOMAIN NOTICE
  15. *               National Center for Biotechnology Information
  16. *
  17. *  This software/database is a "United States Government Work" under the
  18. *  terms of the United States Copyright Act.  It was written as part of
  19. *  the author's official duties as a United States Government employee and
  20. *  thus cannot be copyrighted.  This software/database is freely available
  21. *  to the public for use. The National Library of Medicine and the U.S.
  22. *  Government have not placed any restriction on its use or reproduction.
  23. *
  24. *  Although all reasonable efforts have been taken to ensure the accuracy
  25. *  and reliability of the software and data, the NLM and the U.S.
  26. *  Government do not and cannot warrant the performance or results that
  27. *  may be obtained by using this software or data. The NLM and the U.S.
  28. *  Government disclaim all warranties, express or implied, including
  29. *  warranties of performance, merchantability or fitness for any particular
  30. *  purpose.
  31. *
  32. *  Please cite the author in any work or product based on this material.
  33. *
  34. * ===========================================================================
  35. *
  36. * Author: Eugene Vasilchenko
  37. *
  38. * File Description:
  39. *   !!! PUT YOUR DESCRIPTION HERE !!!
  40. */
  41. #include <corelib/ncbistd.hpp>
  42. #include <serial/objectinfo.hpp>
  43. #include <serial/objectiter.hpp>
  44. #include <serial/objecttype.hpp>
  45. #include <serial/objectio.hpp>
  46. BEGIN_NCBI_SCOPE
  47. //#include <serial/object.inl>
  48. END_NCBI_SCOPE
  49. #endif  /* OBJECT__HPP */
  50. /* ---------------------------------------------------------------------------
  51. * $Log: object.hpp,v $
  52. * Revision 1000.0  2003/10/29 17:24:38  gouriano
  53. * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.19
  54. *
  55. * Revision 1.19  2002/12/23 18:38:51  dicuccio
  56. * Added WIn32 export specifier: NCBI_XSERIAL_EXPORT.
  57. * Moved all CVS logs to the end.
  58. *
  59. * Revision 1.18  2001/05/17 14:57:05  lavr
  60. * Typos corrected
  61. *
  62. * Revision 1.17  2000/10/20 15:51:24  vasilche
  63. * Fixed data error processing.
  64. * Added interface for constructing container objects directly into output stream.
  65. * object.hpp, object.inl and object.cpp were split to
  66. * objectinfo.*, objecttype.*, objectiter.* and objectio.*.
  67. *
  68. * Revision 1.16  2000/10/03 17:22:33  vasilche
  69. * Reduced header dependency.
  70. * Reduced size of debug libraries on WorkShop by 3 times.
  71. * Fixed tag allocation for parent classes.
  72. * Fixed CObject allocation/deallocation in streams.
  73. * Moved instantiation of several templates in separate source file.
  74. *
  75. * Revision 1.15  2000/09/26 19:24:53  vasilche
  76. * Added user interface for setting read/write/copy hooks.
  77. *
  78. * Revision 1.14  2000/09/26 17:38:07  vasilche
  79. * Fixed incomplete choiceptr implementation.
  80. * Removed temporary comments.
  81. *
  82. * Revision 1.13  2000/09/18 20:00:04  vasilche
  83. * Separated CVariantInfo and CMemberInfo.
  84. * Implemented copy hooks.
  85. * All hooks now are stored in CTypeInfo/CMemberInfo/CVariantInfo.
  86. * Most type specific functions now are implemented via function pointers instead of virtual functions.
  87. *
  88. * Revision 1.12  2000/09/01 13:16:00  vasilche
  89. * Implemented class/container/choice iterators.
  90. * Implemented CObjectStreamCopier for copying data without loading into memory.
  91. *
  92. * Revision 1.11  2000/08/15 19:44:39  vasilche
  93. * Added Read/Write hooks:
  94. * CReadObjectHook/CWriteObjectHook for objects of specified type.
  95. * CReadClassMemberHook/CWriteClassMemberHook for specified members.
  96. * CReadChoiceVariantHook/CWriteChoiceVariant for specified choice variants.
  97. * CReadContainerElementHook/CWriteContainerElementsHook for containers.
  98. *
  99. * Revision 1.10  2000/07/18 17:22:58  vasilche
  100. * GetTypeInfo & constructor of CObjectTypeInfo made public.
  101. *
  102. * Revision 1.9  2000/07/06 16:21:15  vasilche
  103. * Added interface to primitive types in CObjectInfo & CConstObjectInfo.
  104. *
  105. * Revision 1.8  2000/07/03 18:42:35  vasilche
  106. * Added interface to typeinfo via CObjectInfo and CConstObjectInfo.
  107. * Reduced header dependency.
  108. *
  109. * Revision 1.7  2000/06/16 16:31:05  vasilche
  110. * Changed implementation of choices and classes info to allow use of the same classes in generated and user written classes.
  111. *
  112. * Revision 1.6  2000/05/09 16:38:33  vasilche
  113. * CObject::GetTypeInfo now moved to CObjectGetTypeInfo::GetTypeInfo to reduce possible errors.
  114. * Added write context to CObjectOStream.
  115. * Inlined most of methods of helping class Member, Block, ByteBlock etc.
  116. *
  117. * Revision 1.5  2000/05/04 16:23:10  vasilche
  118. * Updated CTypesIterator and CTypesConstInterator interface.
  119. *
  120. * Revision 1.4  2000/03/29 15:55:20  vasilche
  121. * Added two versions of object info - CObjectInfo and CConstObjectInfo.
  122. * Added generic iterators by class -
  123. *  CTypeIterator<class>, CTypeConstIterator<class>,
  124. *  CStdTypeIterator<type>, CStdTypeConstIterator<type>,
  125. *  CObjectsIterator and CObjectsConstIterator.
  126. *
  127. * Revision 1.3  2000/03/07 14:05:30  vasilche
  128. * Added stream buffering to ASN.1 binary input.
  129. * Optimized class loading/storing.
  130. * Fixed bugs in processing OPTIONAL fields.
  131. *
  132. * Revision 1.2  1999/08/13 20:22:57  vasilche
  133. * Fixed lot of bugs in datatool
  134. *
  135. * Revision 1.1  1999/08/13 15:53:43  vasilche
  136. * C++ analog of asntool: datatool
  137. *
  138. * ===========================================================================
  139. */