|
NCBI C++ ToolKit
|
00001 /* $Id$ 00002 * =========================================================================== 00003 * 00004 * PUBLIC DOMAIN NOTICE 00005 * National Center for Biotechnology Information 00006 * 00007 * This software/database is a "United States Government Work" under the 00008 * terms of the United States Copyright Act. It was written as part of 00009 * the author's official duties as a United States Government employee and 00010 * thus cannot be copyrighted. This software/database is freely available 00011 * to the public for use. The National Library of Medicine and the U.S. 00012 * Government have not placed any restriction on its use or reproduction. 00013 * 00014 * Although all reasonable efforts have been taken to ensure the accuracy 00015 * and reliability of the software and data, the NLM and the U.S. 00016 * Government do not and cannot warrant the performance or results that 00017 * may be obtained by using this software or data. The NLM and the U.S. 00018 * Government disclaim all warranties, express or implied, including 00019 * warranties of performance, merchantability or fitness for any particular 00020 * purpose. 00021 * 00022 * Please cite the author in any work or product based on this material. 00023 * 00024 * =========================================================================== 00025 * 00026 * File Description: 00027 * This code was generated by application DATATOOL 00028 * using the following specifications: 00029 * 'linkout.dtd'. 00030 * 00031 * ATTENTION: 00032 * Don't edit or commit this file into CVS as this file will 00033 * be overridden (by DATATOOL) without warning! 00034 * =========================================================================== 00035 */ 00036 00037 // standard includes 00038 #include <ncbi_pch.hpp> 00039 #include <serial/serialimpl.hpp> 00040 00041 // generated includes 00042 #include <objtools/eutils/linkout/Apad.hpp> 00043 #include <objtools/eutils/linkout/Normalize.hpp> 00044 #include <objtools/eutils/linkout/Pad.hpp> 00045 #include <objtools/eutils/linkout/Strip.hpp> 00046 #include <objtools/eutils/linkout/Subs.hpp> 00047 #include <objtools/eutils/linkout/Tolower.hpp> 00048 #include <objtools/eutils/linkout/Toupper.hpp> 00049 BEGIN_linkout_SCOPE // namespace linkout:: 00050 00051 00052 // generated classes 00053 00054 BEGIN_NAMED_ENUM_IN_INFO("", CApad_Base::C_Attlist::, EAttlist_align, false) 00055 { 00056 SET_ENUM_INTERNAL_NAME("apad.Attlist", "align"); 00057 SET_ENUM_MODULE("linkout"); 00058 ADD_ENUM_VALUE("left", eAttlist_align_left); 00059 ADD_ENUM_VALUE("right", eAttlist_align_right); 00060 } 00061 END_ENUM_INFO 00062 00063 void CApad_Base::C_Attlist::ResetWith(void) 00064 { 00065 m_With.erase(); 00066 m_set_State[0] &= ~0x3; 00067 } 00068 00069 void CApad_Base::C_Attlist::ResetWidth(void) 00070 { 00071 m_Width.erase(); 00072 m_set_State[0] &= ~0xc; 00073 } 00074 00075 void CApad_Base::C_Attlist::Reset(void) 00076 { 00077 ResetWith(); 00078 ResetWidth(); 00079 ResetAlign(); 00080 } 00081 00082 BEGIN_NAMED_CLASS_INFO("", CApad_Base::C_Attlist) 00083 { 00084 SET_INTERNAL_NAME("apad", "Attlist"); 00085 SET_CLASS_MODULE("linkout"); 00086 ADD_NAMED_STD_MEMBER("with", m_With)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix(); 00087 ADD_NAMED_STD_MEMBER("width", m_Width)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix(); 00088 ADD_NAMED_ENUM_MEMBER("align", m_Align, EAttlist_align)->SetDefault(new TAlign(eAttlist_align_right))->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix(); 00089 info->SetRandomOrder(true); 00090 } 00091 END_CLASS_INFO 00092 00093 // constructor 00094 CApad_Base::C_Attlist::C_Attlist(void) 00095 : m_Align(eAttlist_align_right) 00096 { 00097 memset(m_set_State,0,sizeof(m_set_State)); 00098 } 00099 00100 // destructor 00101 CApad_Base::C_Attlist::~C_Attlist(void) 00102 { 00103 } 00104 00105 00106 void CApad_Base::C_E_Apad::Reset(void) 00107 { 00108 if ( m_choice != e_not_set ) 00109 ResetSelection(); 00110 } 00111 00112 void CApad_Base::C_E_Apad::ResetSelection(void) 00113 { 00114 switch ( m_choice ) { 00115 case e__CharData: 00116 m_string.Destruct(); 00117 break; 00118 case e_Pad: 00119 case e_Apad: 00120 case e_Subs: 00121 case e_Toupper: 00122 case e_Tolower: 00123 case e_Strip: 00124 case e_Normalize: 00125 m_object->RemoveReference(); 00126 break; 00127 default: 00128 break; 00129 } 00130 m_choice = e_not_set; 00131 } 00132 00133 void CApad_Base::C_E_Apad::DoSelect(E_Choice index, NCBI_NS_NCBI::CObjectMemoryPool* pool) 00134 { 00135 switch ( index ) { 00136 case e_Pad: 00137 (m_object = new(pool) linkout::CPad())->AddReference(); 00138 break; 00139 case e_Apad: 00140 (m_object = new(pool) linkout::CApad())->AddReference(); 00141 break; 00142 case e_Subs: 00143 (m_object = new(pool) linkout::CSubs())->AddReference(); 00144 break; 00145 case e_Toupper: 00146 (m_object = new(pool) linkout::CToupper())->AddReference(); 00147 break; 00148 case e_Tolower: 00149 (m_object = new(pool) linkout::CTolower())->AddReference(); 00150 break; 00151 case e_Strip: 00152 (m_object = new(pool) linkout::CStrip())->AddReference(); 00153 break; 00154 case e_Normalize: 00155 (m_object = new(pool) linkout::CNormalize())->AddReference(); 00156 break; 00157 case e__CharData: 00158 m_string.Construct(); 00159 break; 00160 default: 00161 break; 00162 } 00163 m_choice = index; 00164 } 00165 00166 const char* const CApad_Base::C_E_Apad::sm_SelectionNames[] = { 00167 "not set", 00168 "_CharData", 00169 "pad", 00170 "apad", 00171 "subs", 00172 "toupper", 00173 "tolower", 00174 "strip", 00175 "normalize" 00176 }; 00177 00178 NCBI_NS_STD::string CApad_Base::C_E_Apad::SelectionName(E_Choice index) 00179 { 00180 return NCBI_NS_NCBI::CInvalidChoiceSelection::GetName(index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0])); 00181 } 00182 00183 void CApad_Base::C_E_Apad::ThrowInvalidSelection(E_Choice index) const 00184 { 00185 throw NCBI_NS_NCBI::CInvalidChoiceSelection(DIAG_COMPILE_INFO, this, m_choice, index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0])); 00186 } 00187 00188 void CApad_Base::C_E_Apad::Set_CharData(const CApad_Base::C_E_Apad::T_CharData& value) 00189 { 00190 Select(e__CharData, NCBI_NS_NCBI::eDoNotResetVariant); 00191 *m_string = value; 00192 } 00193 00194 const CApad_Base::C_E_Apad::TPad& CApad_Base::C_E_Apad::GetPad(void) const 00195 { 00196 CheckSelected(e_Pad); 00197 return *static_cast<const TPad*>(m_object); 00198 } 00199 00200 CApad_Base::C_E_Apad::TPad& CApad_Base::C_E_Apad::SetPad(void) 00201 { 00202 Select(e_Pad, NCBI_NS_NCBI::eDoNotResetVariant); 00203 return *static_cast<TPad*>(m_object); 00204 } 00205 00206 void CApad_Base::C_E_Apad::SetPad(CApad_Base::C_E_Apad::TPad& value) 00207 { 00208 TPad* ptr = &value; 00209 if ( m_choice != e_Pad || m_object != ptr ) { 00210 ResetSelection(); 00211 (m_object = ptr)->AddReference(); 00212 m_choice = e_Pad; 00213 } 00214 } 00215 00216 const CApad_Base::C_E_Apad::TApad& CApad_Base::C_E_Apad::GetApad(void) const 00217 { 00218 CheckSelected(e_Apad); 00219 return *static_cast<const TApad*>(m_object); 00220 } 00221 00222 CApad_Base::C_E_Apad::TApad& CApad_Base::C_E_Apad::SetApad(void) 00223 { 00224 Select(e_Apad, NCBI_NS_NCBI::eDoNotResetVariant); 00225 return *static_cast<TApad*>(m_object); 00226 } 00227 00228 void CApad_Base::C_E_Apad::SetApad(CApad_Base::C_E_Apad::TApad& value) 00229 { 00230 TApad* ptr = &value; 00231 if ( m_choice != e_Apad || m_object != ptr ) { 00232 ResetSelection(); 00233 (m_object = ptr)->AddReference(); 00234 m_choice = e_Apad; 00235 } 00236 } 00237 00238 const CApad_Base::C_E_Apad::TSubs& CApad_Base::C_E_Apad::GetSubs(void) const 00239 { 00240 CheckSelected(e_Subs); 00241 return *static_cast<const TSubs*>(m_object); 00242 } 00243 00244 CApad_Base::C_E_Apad::TSubs& CApad_Base::C_E_Apad::SetSubs(void) 00245 { 00246 Select(e_Subs, NCBI_NS_NCBI::eDoNotResetVariant); 00247 return *static_cast<TSubs*>(m_object); 00248 } 00249 00250 void CApad_Base::C_E_Apad::SetSubs(CApad_Base::C_E_Apad::TSubs& value) 00251 { 00252 TSubs* ptr = &value; 00253 if ( m_choice != e_Subs || m_object != ptr ) { 00254 ResetSelection(); 00255 (m_object = ptr)->AddReference(); 00256 m_choice = e_Subs; 00257 } 00258 } 00259 00260 const CApad_Base::C_E_Apad::TToupper& CApad_Base::C_E_Apad::GetToupper(void) const 00261 { 00262 CheckSelected(e_Toupper); 00263 return *static_cast<const TToupper*>(m_object); 00264 } 00265 00266 CApad_Base::C_E_Apad::TToupper& CApad_Base::C_E_Apad::SetToupper(void) 00267 { 00268 Select(e_Toupper, NCBI_NS_NCBI::eDoNotResetVariant); 00269 return *static_cast<TToupper*>(m_object); 00270 } 00271 00272 void CApad_Base::C_E_Apad::SetToupper(CApad_Base::C_E_Apad::TToupper& value) 00273 { 00274 TToupper* ptr = &value; 00275 if ( m_choice != e_Toupper || m_object != ptr ) { 00276 ResetSelection(); 00277 (m_object = ptr)->AddReference(); 00278 m_choice = e_Toupper; 00279 } 00280 } 00281 00282 const CApad_Base::C_E_Apad::TTolower& CApad_Base::C_E_Apad::GetTolower(void) const 00283 { 00284 CheckSelected(e_Tolower); 00285 return *static_cast<const TTolower*>(m_object); 00286 } 00287 00288 CApad_Base::C_E_Apad::TTolower& CApad_Base::C_E_Apad::SetTolower(void) 00289 { 00290 Select(e_Tolower, NCBI_NS_NCBI::eDoNotResetVariant); 00291 return *static_cast<TTolower*>(m_object); 00292 } 00293 00294 void CApad_Base::C_E_Apad::SetTolower(CApad_Base::C_E_Apad::TTolower& value) 00295 { 00296 TTolower* ptr = &value; 00297 if ( m_choice != e_Tolower || m_object != ptr ) { 00298 ResetSelection(); 00299 (m_object = ptr)->AddReference(); 00300 m_choice = e_Tolower; 00301 } 00302 } 00303 00304 const CApad_Base::C_E_Apad::TStrip& CApad_Base::C_E_Apad::GetStrip(void) const 00305 { 00306 CheckSelected(e_Strip); 00307 return *static_cast<const TStrip*>(m_object); 00308 } 00309 00310 CApad_Base::C_E_Apad::TStrip& CApad_Base::C_E_Apad::SetStrip(void) 00311 { 00312 Select(e_Strip, NCBI_NS_NCBI::eDoNotResetVariant); 00313 return *static_cast<TStrip*>(m_object); 00314 } 00315 00316 void CApad_Base::C_E_Apad::SetStrip(CApad_Base::C_E_Apad::TStrip& value) 00317 { 00318 TStrip* ptr = &value; 00319 if ( m_choice != e_Strip || m_object != ptr ) { 00320 ResetSelection(); 00321 (m_object = ptr)->AddReference(); 00322 m_choice = e_Strip; 00323 } 00324 } 00325 00326 const CApad_Base::C_E_Apad::TNormalize& CApad_Base::C_E_Apad::GetNormalize(void) const 00327 { 00328 CheckSelected(e_Normalize); 00329 return *static_cast<const TNormalize*>(m_object); 00330 } 00331 00332 CApad_Base::C_E_Apad::TNormalize& CApad_Base::C_E_Apad::SetNormalize(void) 00333 { 00334 Select(e_Normalize, NCBI_NS_NCBI::eDoNotResetVariant); 00335 return *static_cast<TNormalize*>(m_object); 00336 } 00337 00338 void CApad_Base::C_E_Apad::SetNormalize(CApad_Base::C_E_Apad::TNormalize& value) 00339 { 00340 TNormalize* ptr = &value; 00341 if ( m_choice != e_Normalize || m_object != ptr ) { 00342 ResetSelection(); 00343 (m_object = ptr)->AddReference(); 00344 m_choice = e_Normalize; 00345 } 00346 } 00347 00348 // helper methods 00349 00350 // type info 00351 BEGIN_NAMED_CHOICE_INFO("", CApad_Base::C_E_Apad) 00352 { 00353 SET_INTERNAL_NAME("apad.apad", "E"); 00354 SET_CHOICE_MODULE("linkout"); 00355 ADD_NAMED_BUF_CHOICE_VARIANT("_CharData", m_string, STD, (NCBI_NS_STD::string))->SetNoPrefix()->SetNotag(); 00356 ADD_NAMED_REF_CHOICE_VARIANT("pad", m_object, CPad)->SetNoPrefix(); 00357 ADD_NAMED_REF_CHOICE_VARIANT("apad", m_object, CApad)->SetNoPrefix(); 00358 ADD_NAMED_REF_CHOICE_VARIANT("subs", m_object, CSubs)->SetNoPrefix(); 00359 ADD_NAMED_REF_CHOICE_VARIANT("toupper", m_object, CToupper)->SetNoPrefix(); 00360 ADD_NAMED_REF_CHOICE_VARIANT("tolower", m_object, CTolower)->SetNoPrefix(); 00361 ADD_NAMED_REF_CHOICE_VARIANT("strip", m_object, CStrip)->SetNoPrefix(); 00362 ADD_NAMED_REF_CHOICE_VARIANT("normalize", m_object, CNormalize)->SetNoPrefix(); 00363 } 00364 END_CHOICE_INFO 00365 00366 // constructor 00367 CApad_Base::C_E_Apad::C_E_Apad(void) 00368 : m_choice(e_not_set) 00369 { 00370 } 00371 00372 // destructor 00373 CApad_Base::C_E_Apad::~C_E_Apad(void) 00374 { 00375 Reset(); 00376 } 00377 00378 00379 void CApad_Base::ResetAttlist(void) 00380 { 00381 if ( !m_Attlist ) { 00382 m_Attlist.Reset(new TAttlist()); 00383 return; 00384 } 00385 (*m_Attlist).Reset(); 00386 } 00387 00388 void CApad_Base::SetAttlist(CApad_Base::TAttlist& value) 00389 { 00390 m_Attlist.Reset(&value); 00391 } 00392 00393 void CApad_Base::ResetApad(void) 00394 { 00395 m_Apad.clear(); 00396 m_set_State[0] &= ~0xc; 00397 } 00398 00399 void CApad_Base::Reset(void) 00400 { 00401 ResetAttlist(); 00402 ResetApad(); 00403 } 00404 00405 BEGIN_NAMED_BASE_CLASS_INFO("apad", CApad) 00406 { 00407 SET_CLASS_MODULE("linkout"); 00408 ADD_NAMED_REF_MEMBER("Attlist", m_Attlist, C_Attlist)->SetNoPrefix()->SetAttlist(); 00409 ADD_NAMED_MEMBER("apad", m_Apad, STL_list, (STL_CRef, (CLASS, (C_E_Apad))))->SetOptional()->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetNoPrefix()->SetNotag(); 00410 info->RandomOrder(); 00411 } 00412 END_CLASS_INFO 00413 00414 // constructor 00415 CApad_Base::CApad_Base(void) 00416 { 00417 memset(m_set_State,0,sizeof(m_set_State)); 00418 if ( !IsAllocatedInPool() ) { 00419 ResetAttlist(); 00420 } 00421 } 00422 00423 // destructor 00424 CApad_Base::~CApad_Base(void) 00425 { 00426 } 00427 00428 00429 00430 END_linkout_SCOPE // namespace linkout:: 00431
1.7.5.1
Modified on Wed May 23 12:52:32 2012 by modify_doxy.py rev. 337098