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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: objstrasnb.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 17:28:37  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.9
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef OBJSTRASNB__HPP
  10. #define OBJSTRASNB__HPP
  11. /*  $Id: objstrasnb.hpp,v 1000.0 2003/10/29 17:28:37 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. /** @addtogroup ObjStreamSupport
  43.  *
  44.  * @{
  45.  */
  46. BEGIN_NCBI_SCOPE
  47. #ifdef _DEBUG
  48. #define CHECK_STREAM_INTEGRITY 1
  49. #else
  50. #undef CHECK_STREAM_INTEGRITY
  51. #endif
  52. namespace CObjectStreamAsnBinaryDefs
  53. {
  54.     typedef Int4 TTag;
  55.     enum EClass {
  56.         eUniversal,
  57.         eApplication,
  58.         eContextSpecific,
  59.         ePrivate
  60.     };
  61.     enum ETag {
  62.         eNone = 0,
  63.         eBoolean = 1,
  64.         eInteger = 2,
  65.         eBitString = 3,
  66.         eOctetString = 4,
  67.         eNull = 5,
  68.         eObjectIdentifier = 6,
  69.         eObjectDescriptor = 7,
  70.         eExternal = 8,
  71.         eReal = 9,
  72.         eEnumerated = 10,
  73.         eSequence = 16,
  74.         eSequenceOf = eSequence,
  75.         eSet = 17,
  76.         eSetOf = eSet,
  77.         eNumericString = 18,
  78.         ePrintableString = 19,
  79.         eTeletextString = 20,
  80.         eT61String = 20,
  81.         eVideotextString = 21,
  82.         eIA5String = 22,
  83.         eUTCTime = 23,
  84.         eGeneralizedTime = 24,
  85.         eGraphicString = 25,
  86.         eVisibleString = 26,
  87.         eISO646String = 26,
  88.         eGeneralString = 27,
  89.         eMemberReference = 29, // non standard use with eApplication class
  90.         eObjectReference = 30, // non standard use with eApplication class
  91.         eLongTag = 31,
  92.         // eApplication class
  93.         eStringStore = 1,
  94.         // combined bytes
  95.         eEndOfContentsByte = 0
  96.     };
  97.     enum ERealRadix {
  98.         eDecimal = 0
  99.     };
  100.     inline Uint1 MakeTagByte(EClass c, bool constructed, ETag tag);
  101.     inline Uint1 MakeTagByte(EClass c, bool constructed);
  102.     inline ETag ExtractTag(Uint1 byte);
  103.     inline bool ExtractConstructed(Uint1 byte);
  104.     inline Uint1 ExtractClassAndConstructed(Uint1 byte);
  105. /* @} */
  106. #include <serial/objstrasnb.inl>
  107. }
  108. END_NCBI_SCOPE
  109. #endif  /* OBJSTRASNB__HPP */
  110. /* ---------------------------------------------------------------------------
  111. * $Log: objstrasnb.hpp,v $
  112. * Revision 1000.0  2003/10/29 17:28:37  gouriano
  113. * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.9
  114. *
  115. * Revision 1.9  2003/04/15 16:18:35  siyan
  116. * Added doxygen support
  117. *
  118. * Revision 1.8  2002/12/23 18:38:51  dicuccio
  119. * Added WIn32 export specifier: NCBI_XSERIAL_EXPORT.
  120. * Moved all CVS logs to the end.
  121. *
  122. * Revision 1.7  2000/12/15 21:28:49  vasilche
  123. * Moved some typedefs/enums from corelib/ncbistd.hpp.
  124. * Added flags to CObjectIStream/CObjectOStream: eFlagAllowNonAsciiChars.
  125. * TByte typedef replaced by Uint1.
  126. *
  127. * Revision 1.6  2000/09/18 20:00:08  vasilche
  128. * Separated CVariantInfo and CMemberInfo.
  129. * Implemented copy hooks.
  130. * All hooks now are stored in CTypeInfo/CMemberInfo/CVariantInfo.
  131. * Most type specific functions now are implemented via function pointers instead of virtual functions.
  132. *
  133. * Revision 1.5  2000/02/17 20:02:29  vasilche
  134. * Added some standard serialization exceptions.
  135. * Optimized text/binary ASN.1 reading.
  136. * Fixed wrong encoding of StringStore in ASN.1 binary format.
  137. * Optimized logic of object collection.
  138. *
  139. * Revision 1.4  2000/01/10 19:46:33  vasilche
  140. * Fixed encoding/decoding of REAL type.
  141. * Fixed encoding/decoding of StringStore.
  142. * Fixed encoding/decoding of NULL type.
  143. * Fixed error reporting.
  144. * Reduced object map (only classes).
  145. *
  146. * Revision 1.3  1999/07/22 17:33:47  vasilche
  147. * Unified reading/writing of objects in all three formats.
  148. *
  149. * Revision 1.2  1999/07/21 14:20:01  vasilche
  150. * Added serialization of bool.
  151. *
  152. * Revision 1.1  1999/07/02 21:31:49  vasilche
  153. * Implemented reading from ASN.1 binary format.
  154. *
  155. * ===========================================================================
  156. */