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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: Time_.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:46:35  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.2
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /* $Id: Time_.cpp,v 1000.1 2004/06/01 19:46:35 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * File Description:
  35.  *   This code is generated by application DATATOOL
  36.  *   using specifications from the data definition file
  37.  *   'twebenv.asn'.
  38.  *
  39.  * ATTENTION:
  40.  *   Don't edit or check-in this file to the CVS as this file will
  41.  *   be overridden (by DATATOOL) without warning!
  42.  * ===========================================================================
  43.  */
  44. // standard includes
  45. #include <ncbi_pch.hpp>
  46. #include <serial/serialimpl.hpp>
  47. // generated includes
  48. #include "Time.hpp"
  49. #include "Full_Time.hpp"
  50. // generated classes
  51. void CTime_Base::Reset(void)
  52. {
  53.     switch ( m_choice ) {
  54.     case e_Full:
  55.         m_object->RemoveReference();
  56.         break;
  57.     default:
  58.         break;
  59.     }
  60.     m_choice = e_not_set;
  61. }
  62. void CTime_Base::DoSelect(E_Choice index)
  63. {
  64.     switch ( index ) {
  65.     case e_Unix:
  66.         m_Unix = 0;
  67.         break;
  68.     case e_Full:
  69.         (m_object = new CFull_Time())->AddReference();
  70.         break;
  71.     default:
  72.         break;
  73.     }
  74.     m_choice = index;
  75. }
  76. const char* const CTime_Base::sm_SelectionNames[] = {
  77.     "not set",
  78.     "unix",
  79.     "full"
  80. };
  81. NCBI_NS_STD::string CTime_Base::SelectionName(E_Choice index)
  82. {
  83.     return NCBI_NS_NCBI::CInvalidChoiceSelection::GetName(index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
  84. }
  85. void CTime_Base::ThrowInvalidSelection(E_Choice index) const
  86. {
  87.     throw NCBI_NS_NCBI::CInvalidChoiceSelection(__FILE__,__LINE__,m_choice, index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
  88. }
  89. const CFull_Time& CTime_Base::GetFull(void) const
  90. {
  91.     CheckSelected(e_Full);
  92.     return *static_cast<const TFull*>(m_object);
  93. }
  94. CFull_Time& CTime_Base::SetFull(void)
  95. {
  96.     Select(e_Full, NCBI_NS_NCBI::eDoNotResetVariant);
  97.     return *static_cast<TFull*>(m_object);
  98. }
  99. void CTime_Base::SetFull(CFull_Time& value)
  100. {
  101.     TFull* ptr = &value;
  102.     if ( m_choice != e_Full || m_object != ptr ) {
  103.         Reset();
  104.         (m_object = ptr)->AddReference();
  105.         m_choice = e_Full;
  106.     }
  107. }
  108. // helper methods
  109. // type info
  110. BEGIN_NAMED_BASE_CHOICE_INFO("Time", CTime)
  111. {
  112.     SET_CHOICE_MODULE("NCBI-Env");
  113.     ADD_NAMED_STD_CHOICE_VARIANT("unix", m_Unix);
  114.     ADD_NAMED_REF_CHOICE_VARIANT("full", m_object, CFull_Time);
  115. }
  116. END_CHOICE_INFO
  117. // constructor
  118. CTime_Base::CTime_Base(void)
  119.     : m_choice(e_not_set)
  120. {
  121. }
  122. // destructor
  123. CTime_Base::~CTime_Base(void)
  124. {
  125.     if ( m_choice != e_not_set )
  126.         Reset();
  127. }