NCBI C++ ToolKit
Molinfo_technique_pair_.hpp
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  */
27 
28 /// @file Molinfo_technique_pair_.hpp
29 /// Data storage class.
30 ///
31 /// This file was generated by application DATATOOL
32 /// using the following specifications:
33 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/macro/macro.asn">macro.asn</a>
34 /// and additional tune-up parameters:
35 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/macro/macro.def">macro.def</a>
36 ///
37 /// ATTENTION:
38 /// Don't edit or commit this file into CVS as this file will
39 /// be overridden (by DATATOOL) without warning!
40 
41 #ifndef OBJECTS_MACRO_MOLINFO_TECHNIQUE_PAIR_BASE_HPP
42 #define OBJECTS_MACRO_MOLINFO_TECHNIQUE_PAIR_BASE_HPP
43 
44 // standard includes
45 #include <serial/serialbase.hpp>
46 
47 // generated includes
49 
51 
52 #ifndef BEGIN_objects_SCOPE
53 # define BEGIN_objects_SCOPE BEGIN_SCOPE(objects)
54 # define END_objects_SCOPE END_SCOPE(objects)
55 #endif
56 BEGIN_objects_SCOPE // namespace ncbi::objects::
57 
58 
59 // generated classes
60 
61 
62 /** @addtogroup dataspec_NCBI_Macro
63  *
64  * @{
65  */
66 
67 /////////////////////////////////////////////////////////////////////////////
68 ///
69 /// CMolinfo_technique_pair_Base --
70 ///
71 
73 {
75 public:
76  // constructor
78  // destructor
79  virtual ~CMolinfo_technique_pair_Base(void);
80 
81  // type info
83 
84  // types
87 
88  // member index
89  enum class E_memberIndex {
90  e__allMandatory = 0,
91  e_from,
92  e_to
93  };
95 
96  // getters
97  // setters
98 
99  /// Check if a value has been assigned to From data member.
100  ///
101  /// Data member From is mandatory;
102  /// its type is defined as 'typedef ETechnique_type TFrom'
103  /// @return
104  /// - true, if a value has been assigned.
105  /// - false, otherwise.
106  bool IsSetFrom(void) const;
107 
108  /// Check if it is safe to call GetFrom method.
109  ///
110  /// @return
111  /// - true, if the data member is getatable.
112  /// - false, otherwise.
113  bool CanGetFrom(void) const;
114 
115  /// Reset From data member.
116  void ResetFrom(void);
117 
118  /// Get the From member data.
119  ///
120  /// @return
121  /// Copy of the member data.
122  TFrom GetFrom(void) const;
123 
124  /// Assign a value to From data member.
125  ///
126  /// @param value
127  /// Value to assign
128  void SetFrom(TFrom value);
129 
130  /// Assign a value to From data member.
131  ///
132  /// @return
133  /// Reference to the data value.
134  TFrom& SetFrom(void);
135 
136  /// Check if a value has been assigned to To data member.
137  ///
138  /// Data member To is mandatory;
139  /// its type is defined as 'typedef ETechnique_type TTo'
140  /// @return
141  /// - true, if a value has been assigned.
142  /// - false, otherwise.
143  bool IsSetTo(void) const;
144 
145  /// Check if it is safe to call GetTo method.
146  ///
147  /// @return
148  /// - true, if the data member is getatable.
149  /// - false, otherwise.
150  bool CanGetTo(void) const;
151 
152  /// Reset To data member.
153  void ResetTo(void);
154 
155  /// Get the To member data.
156  ///
157  /// @return
158  /// Copy of the member data.
159  TTo GetTo(void) const;
160 
161  /// Assign a value to To data member.
162  ///
163  /// @param value
164  /// Value to assign
165  void SetTo(TTo value);
166 
167  /// Assign a value to To data member.
168  ///
169  /// @return
170  /// Reference to the data value.
171  TTo& SetTo(void);
172 
173  /// Reset the whole object
174  virtual void Reset(void);
175 
176 
177 private:
178  // Prohibit copy constructor and assignment operator
181 
182  // data
186 };
187 
188 /* @} */
189 
190 
191 
192 
193 
194 ///////////////////////////////////////////////////////////
195 ///////////////////// inline methods //////////////////////
196 ///////////////////////////////////////////////////////////
197 inline
199 {
200  return ((m_set_State[0] & 0x3) != 0);
201 }
202 
203 inline
205 {
206  return IsSetFrom();
207 }
208 
209 inline
211 {
213  m_set_State[0] &= ~0x3;
214 }
215 
216 inline
218 {
219  if (!CanGetFrom()) {
220  ThrowUnassigned(0);
221  }
222  return m_From;
223 }
224 
225 inline
227 {
228  m_From = value;
229  m_set_State[0] |= 0x3;
230 }
231 
232 inline
234 {
235 #ifdef _DEBUG
236  if (!IsSetFrom()) {
237  memset(&m_From,UnassignedByte(),sizeof(m_From));
238  }
239 #endif
240  m_set_State[0] |= 0x1;
241  return m_From;
242 }
243 
244 inline
246 {
247  return ((m_set_State[0] & 0xc) != 0);
248 }
249 
250 inline
252 {
253  return IsSetTo();
254 }
255 
256 inline
258 {
260  m_set_State[0] &= ~0xc;
261 }
262 
263 inline
265 {
266  if (!CanGetTo()) {
267  ThrowUnassigned(1);
268  }
269  return m_To;
270 }
271 
272 inline
274 {
275  m_To = value;
276  m_set_State[0] |= 0xc;
277 }
278 
279 inline
281 {
282 #ifdef _DEBUG
283  if (!IsSetTo()) {
284  memset(&m_To,UnassignedByte(),sizeof(m_To));
285  }
286 #endif
287  m_set_State[0] |= 0x4;
288  return m_To;
289 }
290 
291 ///////////////////////////////////////////////////////////
292 ////////////////// end of inline methods //////////////////
293 ///////////////////////////////////////////////////////////
294 
295 
296 
297 
298 
299 END_objects_SCOPE // namespace ncbi::objects::
300 
302 
303 
304 #endif // OBJECTS_MACRO_MOLINFO_TECHNIQUE_PAIR_BASE_HPP
User-defined methods of the data storage class.
CMolinfo_technique_pair_Base –.
Base class for all serializable objects.
Definition: serialbase.hpp:150
static char UnassignedByte(void)
Definition: serialbase.hpp:181
void ThrowUnassigned(TMemberIndex index) const
uint32_t Uint4
4-byte (32-bit) unsigned integer
Definition: ncbitype.h:103
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
virtual void Reset(void)
Reset the whole object.
void ResetFrom(void)
Reset From data member.
void ResetTo(void)
Reset To data member.
bool CanGetTo(void) const
Check if it is safe to call GetTo method.
CMolinfo_technique_pair_Base(const CMolinfo_technique_pair_Base &)
TTo GetTo(void) const
Get the To member data.
Tparent::CMemberIndex< E_memberIndex, 3 > TmemberIndex
ETechnique_type
Access to ETechnique_type's attributes (values, names) as defined in spec.
TFrom & SetFrom(void)
Assign a value to From data member.
CMolinfo_technique_pair_Base & operator=(const CMolinfo_technique_pair_Base &)
bool CanGetFrom(void) const
Check if it is safe to call GetFrom method.
TTo & SetTo(void)
Assign a value to To data member.
bool IsSetTo(void) const
Check if a value has been assigned to To data member.
TFrom GetFrom(void) const
Get the From member data.
bool IsSetFrom(void) const
Check if a value has been assigned to From data member.
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
Modified on Fri Sep 20 14:58:26 2024 by modify_doxy.py rev. 669887