Time_.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
- /*
- * ===========================================================================
- * PRODUCTION $Log: Time_.cpp,v $
- * PRODUCTION Revision 1000.1 2004/06/01 19:46:35 gouriano
- * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.2
- * PRODUCTION
- * ===========================================================================
- */
- /* $Id: Time_.cpp,v 1000.1 2004/06/01 19:46:35 gouriano Exp $
- * ===========================================================================
- *
- * PUBLIC DOMAIN NOTICE
- * National Center for Biotechnology Information
- *
- * This software/database is a "United States Government Work" under the
- * terms of the United States Copyright Act. It was written as part of
- * the author's official duties as a United States Government employee and
- * thus cannot be copyrighted. This software/database is freely available
- * to the public for use. The National Library of Medicine and the U.S.
- * Government have not placed any restriction on its use or reproduction.
- *
- * Although all reasonable efforts have been taken to ensure the accuracy
- * and reliability of the software and data, the NLM and the U.S.
- * Government do not and cannot warrant the performance or results that
- * may be obtained by using this software or data. The NLM and the U.S.
- * Government disclaim all warranties, express or implied, including
- * warranties of performance, merchantability or fitness for any particular
- * purpose.
- *
- * Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- * File Description:
- * This code is generated by application DATATOOL
- * using specifications from the data definition file
- * 'twebenv.asn'.
- *
- * ATTENTION:
- * Don't edit or check-in this file to the CVS as this file will
- * be overridden (by DATATOOL) without warning!
- * ===========================================================================
- */
- // standard includes
- #include <ncbi_pch.hpp>
- #include <serial/serialimpl.hpp>
- // generated includes
- #include "Time.hpp"
- #include "Full_Time.hpp"
- // generated classes
- void CTime_Base::Reset(void)
- {
- switch ( m_choice ) {
- case e_Full:
- m_object->RemoveReference();
- break;
- default:
- break;
- }
- m_choice = e_not_set;
- }
- void CTime_Base::DoSelect(E_Choice index)
- {
- switch ( index ) {
- case e_Unix:
- m_Unix = 0;
- break;
- case e_Full:
- (m_object = new CFull_Time())->AddReference();
- break;
- default:
- break;
- }
- m_choice = index;
- }
- const char* const CTime_Base::sm_SelectionNames[] = {
- "not set",
- "unix",
- "full"
- };
- NCBI_NS_STD::string CTime_Base::SelectionName(E_Choice index)
- {
- return NCBI_NS_NCBI::CInvalidChoiceSelection::GetName(index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
- }
- void CTime_Base::ThrowInvalidSelection(E_Choice index) const
- {
- throw NCBI_NS_NCBI::CInvalidChoiceSelection(__FILE__,__LINE__,m_choice, index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
- }
- const CFull_Time& CTime_Base::GetFull(void) const
- {
- CheckSelected(e_Full);
- return *static_cast<const TFull*>(m_object);
- }
- CFull_Time& CTime_Base::SetFull(void)
- {
- Select(e_Full, NCBI_NS_NCBI::eDoNotResetVariant);
- return *static_cast<TFull*>(m_object);
- }
- void CTime_Base::SetFull(CFull_Time& value)
- {
- TFull* ptr = &value;
- if ( m_choice != e_Full || m_object != ptr ) {
- Reset();
- (m_object = ptr)->AddReference();
- m_choice = e_Full;
- }
- }
- // helper methods
- // type info
- BEGIN_NAMED_BASE_CHOICE_INFO("Time", CTime)
- {
- SET_CHOICE_MODULE("NCBI-Env");
- ADD_NAMED_STD_CHOICE_VARIANT("unix", m_Unix);
- ADD_NAMED_REF_CHOICE_VARIANT("full", m_object, CFull_Time);
- }
- END_CHOICE_INFO
- // constructor
- CTime_Base::CTime_Base(void)
- : m_choice(e_not_set)
- {
- }
- // destructor
- CTime_Base::~CTime_Base(void)
- {
- if ( m_choice != e_not_set )
- Reset();
- }