NCBI C++ ToolKit
PluginArg_.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id$
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * File Description:
27  * This code was generated by application DATATOOL
28  * using the following specifications:
29  * 'gui_objects.asn'.
30  *
31  * ATTENTION:
32  * Don't edit or commit this file into CVS as this file will
33  * be overridden (by DATATOOL) without warning!
34  * ===========================================================================
35  */
36 
37 // standard includes
38 #include <ncbi_pch.hpp>
39 #include <serial/serialimpl.hpp>
40 
41 // generated includes
46 
47 BEGIN_objects_SCOPE // namespace ncbi::objects::
48 
49 
50 // generated classes
51 
53 {
54  if ( m_choice != e_not_set )
56 }
57 
59 {
60  switch ( m_choice ) {
61  case e_Array:
62  m_Array.Destruct();
63  break;
64  case e_Single:
65  m_object->RemoveReference();
66  break;
67  default:
68  break;
69  }
70  m_choice = e_not_set;
71 }
72 
73 void CPluginArg_Base::C_Data::DoSelect(E_Choice index, NCBI_NS_NCBI::CObjectMemoryPool* pool)
74 {
75  switch ( index ) {
76  case e_Single:
77  (m_object = new(pool) ncbi::objects::CPluginValue())->AddReference();
78  break;
79  case e_Array:
80  m_Array.Construct();
81  break;
82  default:
83  break;
84  }
85  m_choice = index;
86 }
87 
88 const char* const CPluginArg_Base::C_Data::sm_SelectionNames[] = {
89  "not set",
90  "single",
91  "array"
92 };
93 
95 {
96  return NCBI_NS_NCBI::CInvalidChoiceSelection::GetName(index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
97 }
98 
100 {
101  throw NCBI_NS_NCBI::CInvalidChoiceSelection(DIAG_COMPILE_INFO, this, m_choice, index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
102 }
103 
105 {
106  CheckSelected(e_Single);
107  return *static_cast<const TSingle*>(m_object);
108 }
109 
111 {
112  Select(e_Single, NCBI_NS_NCBI::eDoNotResetVariant);
113  return *static_cast<TSingle*>(m_object);
114 }
115 
117 {
118  TSingle* ptr = &value;
119  if ( m_choice != e_Single || m_object != ptr ) {
120  ResetSelection();
121  (m_object = ptr)->AddReference();
122  m_choice = e_Single;
123  }
124 }
125 
126 // helper methods
127 
128 // type info
130 {
131  SET_INTERNAL_NAME("PluginArg", "data");
132  SET_CHOICE_MODULE("NCBI-Plugin");
133  ADD_NAMED_REF_CHOICE_VARIANT("single", m_object, CPluginValue);
134  ADD_NAMED_BUF_CHOICE_VARIANT("array", m_Array, STL_list_set, (STL_CRef, (CLASS, (CPluginValue))));
135  info->CodeVersion(22301);
136  info->DataSpec(ncbi::EDataSpec::eASN);
137 }
139 
140 // constructor
142  : m_choice(e_not_set)
143 {
144 }
145 
146 // destructor
148 {
149  Reset();
150 }
151 
152 
154 {
155  m_Name.erase();
156  m_set_State[0] &= ~0x3;
157 }
158 
160 {
161  m_Desc.erase();
162  m_set_State[0] &= ~0xc;
163 }
164 
166 {
167  m_Long_desc.erase();
168  m_set_State[0] &= ~0x30;
169 }
170 
172 {
173  if ( !m_Data ) {
174  m_Data.Reset(new TData());
175  return;
176  }
177  (*m_Data).Reset();
178 }
179 
181 {
182  m_Data.Reset(&value);
183 }
184 
186 {
187  m_Constraint.clear();
188  m_set_State[0] &= ~0xc000;
189 }
190 
192 {
193  ResetName();
194  ResetDesc();
195  ResetLong_desc();
196  ResetOptional();
197  ResetDefault();
198  ResetHidden();
199  ResetData();
200  ResetConstraint();
201 }
202 
204 {
205  SET_CLASS_MODULE("NCBI-Plugin");
206  ADD_NAMED_STD_MEMBER("name", m_Name)->SetSetFlag(MEMBER_PTR(m_set_State[0]));
207  ADD_NAMED_STD_MEMBER("desc", m_Desc)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional();
208  ADD_NAMED_STD_MEMBER("long-desc", m_Long_desc)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional();
209  ADD_NAMED_STD_MEMBER("optional", m_Optional)->SetDefault(new TOptional(false))->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional();
210  ADD_NAMED_STD_MEMBER("default", m_Default)->SetDefault(new TDefault(false))->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional();
211  ADD_NAMED_STD_MEMBER("hidden", m_Hidden)->SetDefault(new THidden(false))->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional();
212  ADD_NAMED_REF_MEMBER("data", m_Data, C_Data);
213  ADD_NAMED_MEMBER("constraint", m_Constraint, STL_list_set, (STL_CRef, (CLASS, (CPluginValueConstraint))))->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional();
214  info->RandomOrder();
215  info->CodeVersion(22301);
216  info->DataSpec(ncbi::EDataSpec::eASN);
217 }
219 
220 // constructor
223 {
224  memset(m_set_State,0,sizeof(m_set_State));
225  if ( !IsAllocatedInPool() ) {
226  ResetData();
227  }
228 }
229 
230 // destructor
232 {
233 }
234 
235 
236 
237 END_objects_SCOPE // namespace ncbi::objects::
238 
240 
BEGIN_NAMED_CHOICE_INFO("", CPluginArg_Base::C_Data)
Definition: PluginArg_.cpp:129
BEGIN_NAMED_BASE_CLASS_INFO("PluginArg", CPluginArg)
Definition: PluginArg_.cpp:203
#define false
Definition: bool.h:36
char value[7]
Definition: config.c:431
string
Definition: cgiapp.hpp:687
#define DIAG_COMPILE_INFO
Make compile time diagnostic information object to use in CNcbiDiag and CException.
Definition: ncbidiag.hpp:170
#define MEMBER_PTR(MemberName)
Definition: serialimpl.hpp:284
#define ADD_NAMED_MEMBER(MemberAlias, MemberName, TypeMacro, TypeMacroArgs)
Definition: serialimpl.hpp:342
#define ADD_NAMED_REF_MEMBER(MemberAlias, MemberName, ClassName)
Definition: serialimpl.hpp:357
#define END_CLASS_INFO
Definition: serialimpl.hpp:456
#define ADD_NAMED_REF_CHOICE_VARIANT(MemberAlias, MemberName, ClassName)
Definition: serialimpl.hpp:400
#define ADD_NAMED_STD_MEMBER(MemberAlias, MemberName)
Definition: serialimpl.hpp:345
#define SET_CLASS_MODULE(ModuleName)
Definition: serialimpl.hpp:444
#define END_CHOICE_INFO
Definition: serialimpl.hpp:506
#define SET_INTERNAL_NAME(OwnerName, MemberName)
Definition: serialimpl.hpp:447
#define SET_CHOICE_MODULE(ModuleName)
Definition: serialimpl.hpp:500
#define ADD_NAMED_BUF_CHOICE_VARIANT(MemberAlias, MemberName, TypeMacro, TypeMacroArgs)
Definition: serialimpl.hpp:385
@ eDoNotResetVariant
Definition: serialbase.hpp:78
void AddReference(void) const
Add reference to object.
Definition: ncbiobj.hpp:489
void Reset(void)
Reset reference object.
Definition: ncbiobj.hpp:773
bool IsAllocatedInPool(void) const THROWS_NONE
Check if object is allocated in memory pool (not system heap)
Definition: ncbiobj.hpp:461
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
CRef< TData > m_Data
Definition: PluginArg_.hpp:589
void ResetConstraint(void)
Reset Constraint data member.
Definition: PluginArg_.cpp:185
void ResetName(void)
Reset Name data member.
Definition: PluginArg_.cpp:153
static string SelectionName(E_Choice index)
Retrieve selection name (for diagnostic purposes).
Definition: PluginArg_.cpp:94
void ResetSelection(void)
Reset the selection (set it to e_not_set).
Definition: PluginArg_.cpp:58
static const char *const sm_SelectionNames[]
Definition: PluginArg_.hpp:236
void ResetOptional(void)
Reset Optional data member.
Definition: PluginArg_.hpp:811
void ResetHidden(void)
Reset Hidden data member.
Definition: PluginArg_.hpp:911
void ResetDesc(void)
Reset Desc data member.
Definition: PluginArg_.cpp:159
list< CRef< CPluginValueConstraint > > m_Constraint
Definition: PluginArg_.hpp:590
virtual void Reset(void)
Reset the whole object.
Definition: PluginArg_.cpp:191
Uint4 m_set_State[1]
Definition: PluginArg_.hpp:582
void ThrowInvalidSelection(E_Choice index) const
Throw 'InvalidSelection' exception.
Definition: PluginArg_.cpp:99
void DoSelect(E_Choice index, CObjectMemoryPool *pool=0)
Definition: PluginArg_.cpp:73
void ResetData(void)
Reset Data data member.
Definition: PluginArg_.cpp:171
void ResetDefault(void)
Reset Default data member.
Definition: PluginArg_.hpp:861
TData & SetData(void)
Assign a value to Data data member.
Definition: PluginArg_.hpp:970
virtual ~CPluginArg_Base(void)
Definition: PluginArg_.cpp:231
E_Choice
Choice variants.
Definition: PluginArg_.hpp:115
void Reset(void)
Reset the whole object.
Definition: PluginArg_.cpp:52
void ResetLong_desc(void)
Reset Long_desc data member.
Definition: PluginArg_.cpp:165
TSingle & SetSingle(void)
Select the variant.
Definition: PluginArg_.cpp:110
const TSingle & GetSingle(void) const
Get the variant data.
Definition: PluginArg_.cpp:104
@ e_not_set
No variant selected.
Definition: PluginArg_.hpp:116
@ e_not_set
static MDB_envinfo info
Definition: mdb_load.c:37
Modified on Fri Mar 29 09:53:33 2024 by modify_doxy.py rev. 669887