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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: object.inl,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 17:24:46  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.13
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #if defined(OBJECT__HPP)  &&  !defined(OBJECT__INL)
  10. #define OBJECT__INL
  11. /*  $Id: object.inl,v 1000.0 2003/10/29 17:24:46 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. #endif /* def OBJECT__HPP  &&  ndef OBJECT__INL */
  42. /* ---------------------------------------------------------------------------
  43. * $Log: object.inl,v $
  44. * Revision 1000.0  2003/10/29 17:24:46  gouriano
  45. * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.13
  46. *
  47. * Revision 1.13  2002/12/23 18:38:51  dicuccio
  48. * Added WIn32 export specifier: NCBI_XSERIAL_EXPORT.
  49. * Moved all CVS logs to the end.
  50. *
  51. * Revision 1.12  2001/05/17 14:57:10  lavr
  52. * Typos corrected
  53. *
  54. * Revision 1.11  2000/10/20 15:51:24  vasilche
  55. * Fixed data error processing.
  56. * Added interface for constructing container objects directly into output stream.
  57. * object.hpp, object.inl and object.cpp were split to
  58. * objectinfo.*, objecttype.*, objectiter.* and objectio.*.
  59. *
  60. * Revision 1.10  2000/10/03 17:22:33  vasilche
  61. * Reduced header dependency.
  62. * Reduced size of debug libraries on WorkShop by 3 times.
  63. * Fixed tag allocation for parent classes.
  64. * Fixed CObject allocation/deallocation in streams.
  65. * Moved instantiation of several templates in separate source file.
  66. *
  67. * Revision 1.9  2000/09/26 19:24:54  vasilche
  68. * Added user interface for setting read/write/copy hooks.
  69. *
  70. * Revision 1.8  2000/09/26 17:38:07  vasilche
  71. * Fixed incomplete choiceptr implementation.
  72. * Removed temporary comments.
  73. *
  74. * Revision 1.7  2000/09/18 20:00:04  vasilche
  75. * Separated CVariantInfo and CMemberInfo.
  76. * Implemented copy hooks.
  77. * All hooks now are stored in CTypeInfo/CMemberInfo/CVariantInfo.
  78. * Most type specific functions now are implemented via function pointers instead of virtual functions.
  79. *
  80. * Revision 1.6  2000/09/01 13:16:00  vasilche
  81. * Implemented class/container/choice iterators.
  82. * Implemented CObjectStreamCopier for copying data without loading into memory.
  83. *
  84. * Revision 1.5  2000/08/15 19:44:39  vasilche
  85. * Added Read/Write hooks:
  86. * CReadObjectHook/CWriteObjectHook for objects of specified type.
  87. * CReadClassMemberHook/CWriteClassMemberHook for specified members.
  88. * CReadChoiceVariantHook/CWriteChoiceVariant for specified choice variants.
  89. * CReadContainerElementHook/CWriteContainerElementsHook for containers.
  90. *
  91. * Revision 1.4  2000/07/06 16:21:16  vasilche
  92. * Added interface to primitive types in CObjectInfo & CConstObjectInfo.
  93. *
  94. * Revision 1.3  2000/07/03 18:42:35  vasilche
  95. * Added interface to typeinfo via CObjectInfo and CConstObjectInfo.
  96. * Reduced header dependency.
  97. *
  98. * Revision 1.2  2000/06/16 16:31:06  vasilche
  99. * Changed implementation of choices and classes info to allow use of the same classes in generated and user written classes.
  100. *
  101. * Revision 1.1  2000/03/29 15:55:20  vasilche
  102. * Added two versions of object info - CObjectInfo and CConstObjectInfo.
  103. * Added generic iterators by class -
  104. *  CTypeIterator<class>, CTypeConstIterator<class>,
  105. *  CStdTypeIterator<type>, CStdTypeConstIterator<type>,
  106. *  CObjectsIterator and CObjectsConstIterator.
  107. *
  108. * ===========================================================================
  109. */