NCBI C++ ToolKit
Mn_.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  * 'pubmed_mathml3.xsd'.
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
44 
45 BEGIN_objects_SCOPE // namespace ncbi::objects::
46 
47 
48 // generated classes
49 
50 BEGIN_NAMED_ENUM_IN_INFO("", CMn_Base::C_Attlist::, EAttlist_mathvariant, false)
51 {
52  SET_ENUM_INTERNAL_NAME("mn.Attlist", "mathvariant");
53  SET_ENUM_MODULE("pubmed_mathml3");
54  ADD_ENUM_VALUE("normal", eAttlist_mathvariant_normal);
55  ADD_ENUM_VALUE("bold", eAttlist_mathvariant_bold);
56  ADD_ENUM_VALUE("italic", eAttlist_mathvariant_italic);
57  ADD_ENUM_VALUE("bold-italic", eAttlist_mathvariant_bold_italic);
58  ADD_ENUM_VALUE("double-struck", eAttlist_mathvariant_double_struck);
59  ADD_ENUM_VALUE("bold-fraktur", eAttlist_mathvariant_bold_fraktur);
60  ADD_ENUM_VALUE("script", eAttlist_mathvariant_script);
61  ADD_ENUM_VALUE("bold-script", eAttlist_mathvariant_bold_script);
62  ADD_ENUM_VALUE("fraktur", eAttlist_mathvariant_fraktur);
63  ADD_ENUM_VALUE("sans-serif", eAttlist_mathvariant_sans_serif);
64  ADD_ENUM_VALUE("bold-sans-serif", eAttlist_mathvariant_bold_sans_serif);
65  ADD_ENUM_VALUE("sans-serif-italic", eAttlist_mathvariant_sans_serif_italic);
66  ADD_ENUM_VALUE("sans-serif-bold-italic", eAttlist_mathvariant_sans_serif_bold_italic);
67  ADD_ENUM_VALUE("monospace", eAttlist_mathvariant_monospace);
68  ADD_ENUM_VALUE("initial", eAttlist_mathvariant_initial);
69  ADD_ENUM_VALUE("tailed", eAttlist_mathvariant_tailed);
70  ADD_ENUM_VALUE("looped", eAttlist_mathvariant_looped);
71  ADD_ENUM_VALUE("stretched", eAttlist_mathvariant_stretched);
72 }
74 
75 BEGIN_NAMED_ENUM_IN_INFO("", CMn_Base::C_Attlist::, EAttlist_dir, false)
76 {
77  SET_ENUM_INTERNAL_NAME("mn.Attlist", "dir");
78  SET_ENUM_MODULE("pubmed_mathml3");
79  ADD_ENUM_VALUE("ltr", eAttlist_dir_ltr);
80  ADD_ENUM_VALUE("rtl", eAttlist_dir_rtl);
81 }
83 
84 BEGIN_NAMED_ENUM_IN_INFO("", CMn_Base::C_Attlist::, EAttlist_fontweight, false)
85 {
86  SET_ENUM_INTERNAL_NAME("mn.Attlist", "fontweight");
87  SET_ENUM_MODULE("pubmed_mathml3");
88  ADD_ENUM_VALUE("normal", eAttlist_fontweight_normal);
89  ADD_ENUM_VALUE("bold", eAttlist_fontweight_bold);
90 }
92 
93 BEGIN_NAMED_ENUM_IN_INFO("", CMn_Base::C_Attlist::, EAttlist_fontstyle, false)
94 {
95  SET_ENUM_INTERNAL_NAME("mn.Attlist", "fontstyle");
96  SET_ENUM_MODULE("pubmed_mathml3");
97  ADD_ENUM_VALUE("normal", eAttlist_fontstyle_normal);
98  ADD_ENUM_VALUE("italic", eAttlist_fontstyle_italic);
99 }
101 
103 {
104  m_Id.erase();
105  m_set_State[0] &= ~0x3;
106 }
107 
109 {
110  m_Xref.erase();
111  m_set_State[0] &= ~0xc;
112 }
113 
115 {
116  m_Class.erase();
117  m_set_State[0] &= ~0x30;
118 }
119 
121 {
122  m_Style.erase();
123  m_set_State[0] &= ~0xc0;
124 }
125 
127 {
128  m_Href.erase();
129  m_set_State[0] &= ~0x300;
130 }
131 
133 {
134  m_Mathcolor.erase();
135  m_set_State[0] &= ~0xc00;
136 }
137 
139 {
140  m_Mathbackground.erase();
141  m_set_State[0] &= ~0x3000;
142 }
143 
145 {
146  m_Mathsize.erase();
147  m_set_State[0] &= ~0x30000;
148 }
149 
151 {
152  m_Fontfamily.erase();
153  m_set_State[0] &= ~0x300000;
154 }
155 
157 {
158  m_Fontsize.erase();
159  m_set_State[0] &= ~0xc000000;
160 }
161 
163 {
164  m_Color.erase();
165  m_set_State[0] &= ~0x30000000;
166 }
167 
169 {
170  m_Background.erase();
171  m_set_State[0] &= ~0xc0000000;
172 }
173 
175 {
176  ResetId();
177  ResetXref();
178  ResetClass();
179  ResetStyle();
180  ResetHref();
181  ResetMathcolor();
182  ResetMathbackground();
183  ResetMathvariant();
184  ResetMathsize();
185  ResetDir();
186  ResetFontfamily();
187  ResetFontweight();
188  ResetFontstyle();
189  ResetFontsize();
190  ResetColor();
191  ResetBackground();
192 }
193 
195 {
196  SET_INTERNAL_NAME("mn", "Attlist");
197  SET_CLASS_MODULE("pubmed_mathml3");
198  ADD_NAMED_STD_MEMBER("id", m_Id)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
199  ADD_NAMED_STD_MEMBER("xref", m_Xref)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
200  ADD_NAMED_STD_MEMBER("class", m_Class)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
201  ADD_NAMED_STD_MEMBER("style", m_Style)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
202  ADD_NAMED_STD_MEMBER("href", m_Href)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
203  ADD_NAMED_STD_MEMBER("mathcolor", m_Mathcolor)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
204  ADD_NAMED_STD_MEMBER("mathbackground", m_Mathbackground)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
205  ADD_NAMED_ENUM_MEMBER("mathvariant", m_Mathvariant, EAttlist_mathvariant)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
206  ADD_NAMED_STD_MEMBER("mathsize", m_Mathsize)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
207  ADD_NAMED_ENUM_MEMBER("dir", m_Dir, EAttlist_dir)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
208  ADD_NAMED_STD_MEMBER("fontfamily", m_Fontfamily)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
209  ADD_NAMED_ENUM_MEMBER("fontweight", m_Fontweight, EAttlist_fontweight)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
210  ADD_NAMED_ENUM_MEMBER("fontstyle", m_Fontstyle, EAttlist_fontstyle)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
211  ADD_NAMED_STD_MEMBER("fontsize", m_Fontsize)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
212  ADD_NAMED_STD_MEMBER("color", m_Color)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
213  ADD_NAMED_STD_MEMBER("background", m_Background)->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNsQualified(false);
214  info->SetRandomOrder(true);
215  info->CodeVersion(22301);
216  info->DataSpec(ncbi::EDataSpec::eXSD);
217 }
219 
220 // constructor
222  : m_Mathvariant((EAttlist_mathvariant)(0)), m_Dir((EAttlist_dir)(0)), m_Fontweight((EAttlist_fontweight)(0)), m_Fontstyle((EAttlist_fontstyle)(0))
223 {
224  memset(m_set_State,0,sizeof(m_set_State));
225 }
226 
227 // destructor
229 {
230 }
231 
232 
234 {
235  if ( m_choice != e_not_set )
236  ResetSelection();
237 }
238 
240 {
241  switch ( m_choice ) {
242  case e__CharData:
243  m_string.Destruct();
244  break;
245  case e_Token_content:
246  m_object->RemoveReference();
247  break;
248  default:
249  break;
250  }
251  m_choice = e_not_set;
252 }
253 
254 void CMn_Base::C_E_Mn::DoSelect(E_Choice index, NCBI_NS_NCBI::CObjectMemoryPool* pool)
255 {
256  switch ( index ) {
257  case e_Token_content:
258  (m_object = new(pool) ncbi::objects::CToken_content())->AddReference();
259  break;
260  case e__CharData:
261  m_string.Construct();
262  break;
263  default:
264  break;
265  }
266  m_choice = index;
267 }
268 
269 const char* const CMn_Base::C_E_Mn::sm_SelectionNames[] = {
270  "not set",
271  "-CharData",
272  "token.content"
273 };
274 
276 {
277  return NCBI_NS_NCBI::CInvalidChoiceSelection::GetName(index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
278 }
279 
281 {
282  throw NCBI_NS_NCBI::CInvalidChoiceSelection(DIAG_COMPILE_INFO, this, m_choice, index, sm_SelectionNames, sizeof(sm_SelectionNames)/sizeof(sm_SelectionNames[0]));
283 }
284 
286 {
287  Select(e__CharData, NCBI_NS_NCBI::eDoNotResetVariant);
288  *m_string = value;
289 }
290 
292 {
293  CheckSelected(e_Token_content);
294  return *static_cast<const TToken_content*>(m_object);
295 }
296 
298 {
299  Select(e_Token_content, NCBI_NS_NCBI::eDoNotResetVariant);
300  return *static_cast<TToken_content*>(m_object);
301 }
302 
304 {
305  TToken_content* ptr = &value;
306  if ( m_choice != e_Token_content || m_object != ptr ) {
307  ResetSelection();
308  (m_object = ptr)->AddReference();
309  m_choice = e_Token_content;
310  }
311 }
312 
313 // helper methods
314 
315 // type info
317 {
318  SET_INTERNAL_NAME("mn.mn", "E");
319  SET_CHOICE_MODULE("pubmed_mathml3");
320  SET_NAMESPACE("http://www.w3.org/1998/Math/MathML")->SetNsQualified(true);
321  ADD_NAMED_BUF_CHOICE_VARIANT("-CharData", m_string, STD, (string))->SetNotag();
322  ADD_NAMED_REF_CHOICE_VARIANT("token.content", m_object, C_Token_content)->SetNotag();
323  info->CodeVersion(22301);
324  info->DataSpec(ncbi::EDataSpec::eXSD);
325 }
327 
328 // constructor
330  : m_choice(e_not_set)
331 {
332 }
333 
334 // destructor
336 {
337  Reset();
338 }
339 
340 
342 {
343  if ( !m_Attlist ) {
344  m_Attlist.Reset(new TAttlist());
345  return;
346  }
347  (*m_Attlist).Reset();
348 }
349 
351 {
352  m_Attlist.Reset(&value);
353 }
354 
356 {
357  m_Mn.clear();
358  m_set_State[0] &= ~0xc;
359 }
360 
361 void CMn_Base::Reset(void)
362 {
363  ResetAttlist();
364  ResetMn();
365 }
366 
368 {
369  SET_CLASS_MODULE("pubmed_mathml3");
370  SET_NAMESPACE("http://www.w3.org/1998/Math/MathML")->SetNsQualified(true);
371  ADD_NAMED_REF_MEMBER("Attlist", m_Attlist, C_Attlist)->SetAttlist();
372  ADD_NAMED_MEMBER("mn", m_Mn, STL_list, (STL_CRef, (CLASS, (C_E_Mn))))->SetSetFlag(MEMBER_PTR(m_set_State[0]))->SetOptional()->SetNotag();
373  info->RandomOrder();
374  info->CodeVersion(22301);
375  info->DataSpec(ncbi::EDataSpec::eXSD);
376 }
378 
379 // constructor
381 {
382  memset(m_set_State,0,sizeof(m_set_State));
383  if ( !IsAllocatedInPool() ) {
384  ResetAttlist();
385  }
386 }
387 
388 // destructor
390 {
391 }
392 
393 
394 
395 END_objects_SCOPE // namespace ncbi::objects::
396 
398 
User-defined methods of the data storage class.
BEGIN_NAMED_BASE_CLASS_INFO("mn", CMn)
Definition: Mn_.cpp:367
BEGIN_NAMED_CLASS_INFO("", CMn_Base::C_Attlist)
Definition: Mn_.cpp:194
BEGIN_NAMED_ENUM_IN_INFO("", CMn_Base::C_Attlist::, EAttlist_mathvariant, false)
Definition: Mn_.cpp:50
BEGIN_NAMED_CHOICE_INFO("", CMn_Base::C_E_Mn)
Definition: Mn_.cpp:316
END_ENUM_INFO
Definition: aln_errors.cpp:58
C_Attlist –.
Definition: Mn_.hpp:92
C_E_Mn –.
Definition: Mn_.hpp:832
CMn –.
Definition: Mn.hpp:66
CToken_content –.
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 SET_ENUM_INTERNAL_NAME(OwnerName, MemberName)
Definition: serialimpl.hpp:559
#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 SET_ENUM_MODULE(ModuleName)
Definition: serialimpl.hpp:553
#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 SET_NAMESPACE(name)
Definition: serialimpl.hpp:450
#define ADD_NAMED_ENUM_MEMBER(MemberAlias, MemberName, EnumName)
Definition: serialimpl.hpp:351
#define ADD_ENUM_VALUE(EnumValueName, EnumValueValue)
Definition: serialimpl.hpp:562
#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
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
TAttlist & SetAttlist(void)
Assign a value to Attlist data member.
Definition: Mn_.hpp:1917
void ResetMathsize(void)
Reset Mathsize data member.
Definition: Mn_.cpp:144
void ResetHref(void)
Reset Href data member.
Definition: Mn_.cpp:126
void ResetXref(void)
Reset Xref data member.
Definition: Mn_.cpp:108
void ResetSelection(void)
Reset the selection (set it to e_not_set).
Definition: Mn_.cpp:239
Uint4 m_set_State[1]
Definition: Mn_.hpp:1074
void ResetBackground(void)
Reset Background data member.
Definition: Mn_.cpp:168
void ResetColor(void)
Reset Color data member.
Definition: Mn_.cpp:162
void ResetStyle(void)
Reset Style data member.
Definition: Mn_.cpp:120
T_CharData & Set_CharData(void)
Select the variant.
Definition: Mn_.hpp:1883
const TToken_content & GetToken_content(void) const
Get the variant data.
Definition: Mn_.cpp:291
void ResetMn(void)
Reset Mn data member.
Definition: Mn_.cpp:355
CRef< TAttlist > m_Attlist
Definition: Mn_.hpp:1075
void ResetMathbackground(void)
Reset Mathbackground data member.
Definition: Mn_.cpp:138
void ThrowInvalidSelection(E_Choice index) const
Throw 'InvalidSelection' exception.
Definition: Mn_.cpp:280
static string SelectionName(E_Choice index)
Retrieve selection name (for diagnostic purposes).
Definition: Mn_.cpp:275
CMn_Base(void)
Definition: Mn_.cpp:380
string T_CharData
Definition: Mn_.hpp:904
E_Choice
Choice variants.
Definition: Mn_.hpp:846
virtual ~CMn_Base(void)
Definition: Mn_.cpp:389
virtual void Reset(void)
Reset the whole object.
Definition: Mn_.cpp:361
void ResetAttlist(void)
Reset Attlist data member.
Definition: Mn_.cpp:341
void DoSelect(E_Choice index, CObjectMemoryPool *pool=0)
Definition: Mn_.cpp:254
list< CRef< C_E_Mn > > m_Mn
Definition: Mn_.hpp:1076
~C_E_Mn(void)
Definition: Mn_.cpp:335
void ResetFontfamily(void)
Reset Fontfamily data member.
Definition: Mn_.cpp:150
void Reset(void)
Reset the whole object.
Definition: Mn_.cpp:233
void ResetMathcolor(void)
Reset Mathcolor data member.
Definition: Mn_.cpp:132
void Reset(void)
Reset the whole object.
Definition: Mn_.cpp:174
~C_Attlist(void)
Definition: Mn_.cpp:228
static const char *const sm_SelectionNames[]
Definition: Mn_.hpp:973
Uint4 m_set_State[1]
Definition: Mn_.hpp:808
C_E_Mn(void)
Definition: Mn_.cpp:329
void ResetFontsize(void)
Reset Fontsize data member.
Definition: Mn_.cpp:156
TToken_content & SetToken_content(void)
Select the variant.
Definition: Mn_.cpp:297
void ResetId(void)
Reset Id data member.
Definition: Mn_.cpp:102
C_Attlist TAttlist
Definition: Mn_.hpp:981
void ResetClass(void)
Reset Class data member.
Definition: Mn_.cpp:114
@ e_not_set
static MDB_envinfo info
Definition: mdb_load.c:37
Modified on Thu Nov 30 04:52:17 2023 by modify_doxy.py rev. 669887