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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: serialobject.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:44:45  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.38
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #include <ncbi_pch.hpp>
  10. #include "serialobject.hpp"
  11. #include <serial/typeinfo.hpp>
  12. string Pntr(const void* p)
  13. {
  14.     CNcbiOstrstream b;
  15.     b << "0x" << hex << long(p);
  16.     return CNcbiOstrstreamToString(b);
  17. }
  18. void CTestSerialObject::Dump(CNcbiOstream& out) const
  19. {
  20.     out << '{' << endl;
  21.     out << "m_Name: "" << m_Name << "" (*" << Pntr(&m_Name) << ")" << endl;
  22.     out << "m_NamePtr: ";
  23.     if ( m_NamePtr )
  24.         out << '"' << *m_NamePtr << "" (*" << Pntr(m_NamePtr) << ")";
  25.     else
  26.         out << "null";
  27.     out << endl;
  28.     out << "m_Size: " << m_Size << endl;
  29.     out << "m_Attributes: {" << endl;
  30.     for ( list<string>::const_iterator i = m_Attributes.begin();
  31.           i != m_Attributes.end();
  32.           ++i ) {
  33.         out << "    "" << *i << '"' << endl;
  34.     }
  35.     out << "}" << endl;
  36.     out << "m_Offsets: {" << endl;
  37.     for ( vector<short>::const_iterator i1 = m_Offsets.begin();
  38.           i1 != m_Offsets.end();
  39.           ++i1 ) {
  40.         out << "    " << *i1 << endl;
  41.     }
  42.     out << "}" << endl;
  43.     
  44.     out << "m_Names: {" << endl;
  45.     for ( map<long, string>::const_iterator i2 = m_Names.begin();
  46.           i2 != m_Names.end();
  47.           ++i2 ) {
  48.         out << "    " << i2->first << ": "" << i2->second << '"' << endl;
  49.     }
  50.     out << "}" << endl;
  51.     out << "m_Next: ";
  52.     if ( m_Next )
  53.         out << Pntr(m_Next);
  54.     else
  55.         out << "null";
  56.     out << endl;
  57.     out << '}' << endl;
  58. }
  59. void CTestSerialObject2::UserOp_Assign(const CSerialUserOp& source)
  60. {
  61.     const CTestSerialObject2& src = dynamic_cast<const CTestSerialObject2&>(source);
  62.     m_Name2 = src.m_Name2;
  63. }
  64. bool CTestSerialObject2::UserOp_Equals(const CSerialUserOp& object) const
  65. {
  66.     const CTestSerialObject2& obj = dynamic_cast<const CTestSerialObject2&>(object);
  67.     return obj.m_Name2 == m_Name2;
  68. }