NCBI C++ ToolKit
ImpliedMrow_.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 ImpliedMrow_.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/objtools/eutils/efetch/pubmed_mathml3.xsd">pubmed_mathml3.xsd</a>
34 /// and additional tune-up parameters:
35 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objtools/eutils/efetch/pubmed_mathml3.def">pubmed_mathml3.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 OBJTOOLS_EUTILS_EFETCH_IMPLIEDMROW_BASE_HPP
42 #define OBJTOOLS_EUTILS_EFETCH_IMPLIEDMROW_BASE_HPP
43 
44 // standard includes
45 #include <serial/serialbase.hpp>
46 
47 // generated includes
48 #include <list>
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 // forward declarations
60 class CAbs;
61 class CAnd;
62 class CApply;
63 class CApprox;
64 class CArccos;
65 class CArccosh;
66 class CArccot;
67 class CArccoth;
68 class CArccsc;
69 class CArccsch;
70 class CArcsec;
71 class CArcsech;
72 class CArcsin;
73 class CArcsinh;
74 class CArctan;
75 class CArctanh;
76 class CArg;
77 class CBind;
78 class CCard;
79 class CCartesianproduct;
80 class CCbytes;
81 class CCeiling;
82 class CCerror;
83 class CCi;
84 class CCn;
85 class CCodomain;
86 class CComplexes;
87 class CCompose;
88 class CConjugate;
89 class CCos;
90 class CCosh;
91 class CCot;
92 class CCoth;
93 class CCs;
94 class CCsc;
95 class CCsch;
96 class CCsymbol;
97 class CCurl;
98 class CDeclare;
99 class CDeterminant;
100 class CDiff;
101 class CDivergence;
102 class CDivide;
103 class CDomain;
104 class CEmptyset;
105 class CEq;
106 class CEquivalent;
107 class CEulergamma;
108 class CExists;
109 class CExp;
110 class CExponentiale;
111 class CFactorial;
112 class CFactorof;
113 class CFalse;
114 class CFloor;
115 class CFn;
116 class CForall;
117 class CGcd;
118 class CGeq;
119 class CGrad;
120 class CGt;
121 class CIdent;
122 class CImage;
123 class CImaginary;
124 class CImaginaryi;
125 class CImplies;
126 class CIn;
127 class CInfinity;
128 class CInt;
129 class CIntegers;
130 class CIntersect;
131 class CInterval;
132 class CInverse;
133 class CLambda;
134 class CLaplacian;
135 class CLcm;
136 class CLeq;
137 class CLimit;
138 class CList;
139 class CLn;
140 class CLog;
141 class CLt;
142 class CMaction;
143 class CMaligngroup;
144 class CMalignmark;
145 class CMatrix;
146 class CMatrixrow;
147 class CMax;
148 class CMean;
149 class CMedian;
150 class CMenclose;
151 class CMerror;
152 class CMfenced;
153 class CMfrac;
154 class CMi;
155 class CMin;
156 class CMinus;
157 class CMlongdiv;
158 class CMmultiscripts;
159 class CMn;
160 class CMo;
161 class CMode;
162 class CMoment;
163 class CMover;
164 class CMpadded;
165 class CMphantom;
166 class CMroot;
167 class CMrow;
168 class CMs;
169 class CMspace;
170 class CMsqrt;
171 class CMstack;
172 class CMstyle;
173 class CMsub;
174 class CMsubsup;
175 class CMsup;
176 class CMtable;
177 class CMtext;
178 class CMunder;
179 class CMunderover;
180 class CNaturalnumbers;
181 class CNeq;
182 class CNot;
183 class CNotanumber;
184 class CNotin;
185 class CNotprsubset;
186 class CNotsubset;
187 class COr;
188 class COuterproduct;
189 class CPartialdiff;
190 class CPi;
191 class CPiecewise;
192 class CPlus;
193 class CPower;
194 class CPrimes;
195 class CProduct;
196 class CPrsubset;
197 class CQuotient;
198 class CRationals;
199 class CReal;
200 class CReals;
201 class CReln;
202 class CRem;
203 class CRoot;
204 class CScalarproduct;
205 class CSdev;
206 class CSec;
207 class CSech;
208 class CSelector;
209 class CSemantics;
210 class CSet;
211 class CSetdiff;
212 class CShare;
213 class CSin;
214 class CSinh;
215 class CSubset;
216 class CSum;
217 class CTan;
218 class CTanh;
219 class CTendsto;
220 class CTimes;
221 class CTranspose;
222 class CTrue;
223 class CUnion;
224 class CVariance;
225 class CVector;
226 class CVectorproduct;
227 class CXor;
228 
229 
230 // generated classes
231 
232 
233 /** @addtogroup dataspec_pubmed_mathml3
234  *
235  * @{
236  */
237 
238 /////////////////////////////////////////////////////////////////////////////
239 ///
240 /// CImpliedMrow_Base --
241 ///
242 
244 {
246 public:
247  // constructor
248  CImpliedMrow_Base(void);
249  // destructor
250  virtual ~CImpliedMrow_Base(void);
251 
252  // type info
254 
255  /////////////////////////////////////////////////////////////////////////////
256  ///
257  /// C_E --
258  ///
259 
260  class C_E : public CSerialObject
261  {
263  public:
264  // constructor
265  C_E(void);
266  // destructor
267  ~C_E(void);
268 
269  // type info
271 
272  /////////////////////////////////////////////////////////////////////////////
273  ///
274  /// C_ContExp --
275  ///
276 
277  class C_ContExp : public CSerialObject
278  {
280  public:
281  // constructor
282  C_ContExp(void);
283  // destructor
284  ~C_ContExp(void);
285 
286  // type info
288 
289  /////////////////////////////////////////////////////////////////////////////
290  ///
291  /// C_DeprecatedContExp --
292  ///
293 
295  {
297  public:
298  // constructor
299  C_DeprecatedContExp(void);
300  // destructor
301  ~C_DeprecatedContExp(void);
302 
303  // type info
305 
306 
307  /// Choice variants.
308  enum E_Choice {
309  e_not_set = 0, ///< No variant selected
312  e_Declare
313  };
314  /// Maximum+1 value of the choice variant enumerator.
316  e_MaxChoice = 4 ///< == e_Declare+1
317  };
318 
319  /// Reset the whole object
320  void Reset(void);
321 
322  /// Reset the selection (set it to e_not_set).
323  void ResetSelection(void);
324 
325  /// Which variant is currently selected.
326  ///
327  /// @return
328  /// Choice state enumerator.
329  E_Choice Which(void) const;
330 
331  /// Verify selection, throw exception if it differs from the expected.
332  ///
333  /// @param index
334  /// Expected selection.
335  void CheckSelected(E_Choice index) const;
336 
337  /// Throw 'InvalidSelection' exception.
338  ///
339  /// @param index
340  /// Expected selection.
341  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
342 
343  /// Retrieve selection name (for diagnostic purposes).
344  ///
345  /// @param index
346  /// One of possible selection states.
347  /// @return
348  /// Name string.
349  static string SelectionName(E_Choice index);
350 
351  /// Select the requested variant if needed.
352  ///
353  /// @param index
354  /// New selection state.
355  /// @param reset
356  /// Flag that defines the resetting of the variant data. The data will
357  /// be reset if either the current selection differs from the new one,
358  /// or the flag is set to eDoResetVariant.
360  /// Select the requested variant if needed,
361  /// allocating CObject variants from memory pool.
362  void Select(E_Choice index,
363  EResetVariant reset,
364  CObjectMemoryPool* pool);
365 
366  // types
367  typedef CReln TReln;
368  typedef CFn TFn;
370 
371  // getters
372  // setters
373 
374 
375  /// Check if variant Reln is selected.
376  ///
377  /// Reln type is defined as 'typedef CReln TReln'.
378  /// @return
379  /// - true, if the variant is selected.
380  /// - false, otherwise.
381  bool IsReln(void) const;
382 
383  /// Get the variant data.
384  ///
385  /// @return
386  /// Reference to the data.
387  const TReln& GetReln(void) const;
388 
389  /// Select the variant.
390  ///
391  /// @return
392  /// Reference to the variant data.
393  TReln& SetReln(void);
394  /// Select the variant and set its data.
395  ///
396  /// @param value
397  /// Reference to the data.
398  void SetReln(TReln& value);
399 
400 
401  /// Check if variant Fn is selected.
402  ///
403  /// Fn type is defined as 'typedef CFn TFn'.
404  /// @return
405  /// - true, if the variant is selected.
406  /// - false, otherwise.
407  bool IsFn(void) const;
408 
409  /// Get the variant data.
410  ///
411  /// @return
412  /// Reference to the data.
413  const TFn& GetFn(void) const;
414 
415  /// Select the variant.
416  ///
417  /// @return
418  /// Reference to the variant data.
419  TFn& SetFn(void);
420  /// Select the variant and set its data.
421  ///
422  /// @param value
423  /// Reference to the data.
424  void SetFn(TFn& value);
425 
426 
427  /// Check if variant Declare is selected.
428  ///
429  /// Declare type is defined as 'typedef CDeclare TDeclare'.
430  /// @return
431  /// - true, if the variant is selected.
432  /// - false, otherwise.
433  bool IsDeclare(void) const;
434 
435  /// Get the variant data.
436  ///
437  /// @return
438  /// Reference to the data.
439  const TDeclare& GetDeclare(void) const;
440 
441  /// Select the variant.
442  ///
443  /// @return
444  /// Reference to the variant data.
445  TDeclare& SetDeclare(void);
446  /// Select the variant and set its data.
447  ///
448  /// @param value
449  /// Reference to the data.
450  void SetDeclare(TDeclare& value);
451 
452 
453  private:
454  // copy constructor and assignment operator
457  // choice state
459  // helper methods
460  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
461 
462  static const char* const sm_SelectionNames[];
463  // data
464  NCBI_NS_NCBI::CSerialObject *m_object;
465  };
466  /////////////////////////////////////////////////////////////////////////////
467  ///
468  /// C_Interval_mmlclass --
469  ///
470 
472  {
474  public:
475  // constructor
476  C_Interval_mmlclass(void);
477  // destructor
478  ~C_Interval_mmlclass(void);
479 
480  // type info
482 
483  // types
485 
486  // member index
487  enum class E_memberIndex {
488  e__allMandatory = 0,
489  e_interval
490  };
492 
493  // getters
494  // setters
495 
496  /// Check if a value has been assigned to Interval data member.
497  ///
498  /// Data member Interval is mandatory;
499  /// its type is defined as 'typedef CInterval TInterval'
500  /// @return
501  /// - true, if a value has been assigned.
502  /// - false, otherwise.
503  bool IsSetInterval(void) const;
504 
505  /// Check if it is safe to call GetInterval method.
506  ///
507  /// @return
508  /// - true, if the data member is getatable.
509  /// - false, otherwise.
510  bool CanGetInterval(void) const;
511 
512  /// Reset Interval data member.
513  void ResetInterval(void);
514 
515  /// Get the Interval member data.
516  ///
517  /// @return
518  /// Reference to the member data.
519  const TInterval& GetInterval(void) const;
520 
521  /// Assign a value to Interval data member.
522  ///
523  /// @param value
524  /// Reference to value.
525  void SetInterval(TInterval& value);
526 
527  /// Assign a value to Interval data member.
528  ///
529  /// @return
530  /// Reference to the data value.
531  TInterval& SetInterval(void);
532 
533  /// Reset the whole object
534  void Reset(void);
535 
536 
537  private:
538  // Prohibit copy constructor and assignment operator
541 
542  // data
545  };
546  /////////////////////////////////////////////////////////////////////////////
547  ///
548  /// C_Unary_functional_mmlclass --
549  ///
550 
552  {
554  public:
555  // constructor
557  // destructor
559 
560  // type info
562 
563 
564  /// Choice variants.
565  enum E_Choice {
566  e_not_set = 0, ///< No variant selected
574  e_Moment
575  };
576  /// Maximum+1 value of the choice variant enumerator.
578  e_MaxChoice = 9 ///< == e_Moment+1
579  };
580 
581  /// Reset the whole object
582  void Reset(void);
583 
584  /// Reset the selection (set it to e_not_set).
585  void ResetSelection(void);
586 
587  /// Which variant is currently selected.
588  ///
589  /// @return
590  /// Choice state enumerator.
591  E_Choice Which(void) const;
592 
593  /// Verify selection, throw exception if it differs from the expected.
594  ///
595  /// @param index
596  /// Expected selection.
597  void CheckSelected(E_Choice index) const;
598 
599  /// Throw 'InvalidSelection' exception.
600  ///
601  /// @param index
602  /// Expected selection.
603  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
604 
605  /// Retrieve selection name (for diagnostic purposes).
606  ///
607  /// @param index
608  /// One of possible selection states.
609  /// @return
610  /// Name string.
611  static string SelectionName(E_Choice index);
612 
613  /// Select the requested variant if needed.
614  ///
615  /// @param index
616  /// New selection state.
617  /// @param reset
618  /// Flag that defines the resetting of the variant data. The data will
619  /// be reset if either the current selection differs from the new one,
620  /// or the flag is set to eDoResetVariant.
622  /// Select the requested variant if needed,
623  /// allocating CObject variants from memory pool.
624  void Select(E_Choice index,
625  EResetVariant reset,
626  CObjectMemoryPool* pool);
627 
628  // types
630  typedef CIdent TIdent;
631  typedef CDomain TDomain;
633  typedef CImage TImage;
634  typedef CLn TLn;
635  typedef CLog TLog;
636  typedef CMoment TMoment;
637 
638  // getters
639  // setters
640 
641 
642  /// Check if variant Inverse is selected.
643  ///
644  /// Inverse type is defined as 'typedef CInverse TInverse'.
645  /// @return
646  /// - true, if the variant is selected.
647  /// - false, otherwise.
648  bool IsInverse(void) const;
649 
650  /// Get the variant data.
651  ///
652  /// @return
653  /// Reference to the data.
654  const TInverse& GetInverse(void) const;
655 
656  /// Select the variant.
657  ///
658  /// @return
659  /// Reference to the variant data.
660  TInverse& SetInverse(void);
661 
662 
663  /// Check if variant Ident is selected.
664  ///
665  /// Ident type is defined as 'typedef CIdent TIdent'.
666  /// @return
667  /// - true, if the variant is selected.
668  /// - false, otherwise.
669  bool IsIdent(void) const;
670 
671  /// Get the variant data.
672  ///
673  /// @return
674  /// Reference to the data.
675  const TIdent& GetIdent(void) const;
676 
677  /// Select the variant.
678  ///
679  /// @return
680  /// Reference to the variant data.
681  TIdent& SetIdent(void);
682 
683 
684  /// Check if variant Domain is selected.
685  ///
686  /// Domain type is defined as 'typedef CDomain TDomain'.
687  /// @return
688  /// - true, if the variant is selected.
689  /// - false, otherwise.
690  bool IsDomain(void) const;
691 
692  /// Get the variant data.
693  ///
694  /// @return
695  /// Reference to the data.
696  const TDomain& GetDomain(void) const;
697 
698  /// Select the variant.
699  ///
700  /// @return
701  /// Reference to the variant data.
702  TDomain& SetDomain(void);
703 
704 
705  /// Check if variant Codomain is selected.
706  ///
707  /// Codomain type is defined as 'typedef CCodomain TCodomain'.
708  /// @return
709  /// - true, if the variant is selected.
710  /// - false, otherwise.
711  bool IsCodomain(void) const;
712 
713  /// Get the variant data.
714  ///
715  /// @return
716  /// Reference to the data.
717  const TCodomain& GetCodomain(void) const;
718 
719  /// Select the variant.
720  ///
721  /// @return
722  /// Reference to the variant data.
723  TCodomain& SetCodomain(void);
724 
725 
726  /// Check if variant Image is selected.
727  ///
728  /// Image type is defined as 'typedef CImage TImage'.
729  /// @return
730  /// - true, if the variant is selected.
731  /// - false, otherwise.
732  bool IsImage(void) const;
733 
734  /// Get the variant data.
735  ///
736  /// @return
737  /// Reference to the data.
738  const TImage& GetImage(void) const;
739 
740  /// Select the variant.
741  ///
742  /// @return
743  /// Reference to the variant data.
744  TImage& SetImage(void);
745 
746 
747  /// Check if variant Ln is selected.
748  ///
749  /// Ln type is defined as 'typedef CLn TLn'.
750  /// @return
751  /// - true, if the variant is selected.
752  /// - false, otherwise.
753  bool IsLn(void) const;
754 
755  /// Get the variant data.
756  ///
757  /// @return
758  /// Reference to the data.
759  const TLn& GetLn(void) const;
760 
761  /// Select the variant.
762  ///
763  /// @return
764  /// Reference to the variant data.
765  TLn& SetLn(void);
766 
767 
768  /// Check if variant Log is selected.
769  ///
770  /// Log type is defined as 'typedef CLog TLog'.
771  /// @return
772  /// - true, if the variant is selected.
773  /// - false, otherwise.
774  bool IsLog(void) const;
775 
776  /// Get the variant data.
777  ///
778  /// @return
779  /// Reference to the data.
780  const TLog& GetLog(void) const;
781 
782  /// Select the variant.
783  ///
784  /// @return
785  /// Reference to the variant data.
786  TLog& SetLog(void);
787 
788 
789  /// Check if variant Moment is selected.
790  ///
791  /// Moment type is defined as 'typedef CMoment TMoment'.
792  /// @return
793  /// - true, if the variant is selected.
794  /// - false, otherwise.
795  bool IsMoment(void) const;
796 
797  /// Get the variant data.
798  ///
799  /// @return
800  /// Reference to the data.
801  const TMoment& GetMoment(void) const;
802 
803  /// Select the variant.
804  ///
805  /// @return
806  /// Reference to the variant data.
807  TMoment& SetMoment(void);
808 
809 
810  private:
811  // copy constructor and assignment operator
814  // choice state
816  // helper methods
817  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
818 
819  static const char* const sm_SelectionNames[];
820  // data
821  NCBI_NS_NCBI::CSerialObject *m_object;
822  };
823  /////////////////////////////////////////////////////////////////////////////
824  ///
825  /// C_Lambda_mmlclass --
826  ///
827 
829  {
831  public:
832  // constructor
833  C_Lambda_mmlclass(void);
834  // destructor
835  ~C_Lambda_mmlclass(void);
836 
837  // type info
839 
840  // types
841  typedef CLambda TLambda;
842 
843  // member index
844  enum class E_memberIndex {
845  e__allMandatory = 0,
846  e_lambda
847  };
849 
850  // getters
851  // setters
852 
853  /// Check if a value has been assigned to Lambda data member.
854  ///
855  /// Data member Lambda is mandatory;
856  /// its type is defined as 'typedef CLambda TLambda'
857  /// @return
858  /// - true, if a value has been assigned.
859  /// - false, otherwise.
860  bool IsSetLambda(void) const;
861 
862  /// Check if it is safe to call GetLambda method.
863  ///
864  /// @return
865  /// - true, if the data member is getatable.
866  /// - false, otherwise.
867  bool CanGetLambda(void) const;
868 
869  /// Reset Lambda data member.
870  void ResetLambda(void);
871 
872  /// Get the Lambda member data.
873  ///
874  /// @return
875  /// Reference to the member data.
876  const TLambda& GetLambda(void) const;
877 
878  /// Assign a value to Lambda data member.
879  ///
880  /// @param value
881  /// Reference to value.
882  void SetLambda(TLambda& value);
883 
884  /// Assign a value to Lambda data member.
885  ///
886  /// @return
887  /// Reference to the data value.
888  TLambda& SetLambda(void);
889 
890  /// Reset the whole object
891  void Reset(void);
892 
893 
894  private:
895  // Prohibit copy constructor and assignment operator
898 
899  // data
902  };
903  /////////////////////////////////////////////////////////////////////////////
904  ///
905  /// C_Nary_functional_mmlclass --
906  ///
907 
909  {
911  public:
912  // constructor
914  // destructor
916 
917  // type info
919 
920  // types
922 
923  // member index
924  enum class E_memberIndex {
925  e__allMandatory = 0,
926  e_compose
927  };
929 
930  // getters
931  // setters
932 
933  /// Check if a value has been assigned to Compose data member.
934  ///
935  /// Data member Compose is mandatory;
936  /// its type is defined as 'typedef CCompose TCompose'
937  /// @return
938  /// - true, if a value has been assigned.
939  /// - false, otherwise.
940  bool IsSetCompose(void) const;
941 
942  /// Check if value of Compose member is getatable.
943  ///
944  /// @return
945  /// - false; the data member of type 'NULL' has no value.
946  bool CanGetCompose(void) const;
947 
948  /// Reset Compose data member.
949  void ResetCompose(void);
950 
951  /// Get the Compose member data.
952  ///
953  /// @return
954  /// Reference to the member data.
955  const TCompose& GetCompose(void) const;
956 
957  /// Assign a value to Compose data member.
958  ///
959  /// @param value
960  /// Reference to value.
961  void SetCompose(TCompose& value);
962 
963  /// Assign a value to Compose data member.
964  ///
965  /// @return
966  /// Reference to the data value.
967  TCompose& SetCompose(void);
968 
969  /// Reset the whole object
970  void Reset(void);
971 
972 
973  private:
974  // Prohibit copy constructor and assignment operator
977 
978  // data
981  };
982  /////////////////////////////////////////////////////////////////////////////
983  ///
984  /// C_Binary_arith_mmlclass --
985  ///
986 
988  {
990  public:
991  // constructor
993  // destructor
995 
996  // type info
998 
999 
1000  /// Choice variants.
1001  enum E_Choice {
1002  e_not_set = 0, ///< No variant selected
1008  e_Root
1009  };
1010  /// Maximum+1 value of the choice variant enumerator.
1012  e_MaxChoice = 7 ///< == e_Root+1
1013  };
1014 
1015  /// Reset the whole object
1016  void Reset(void);
1017 
1018  /// Reset the selection (set it to e_not_set).
1019  void ResetSelection(void);
1020 
1021  /// Which variant is currently selected.
1022  ///
1023  /// @return
1024  /// Choice state enumerator.
1025  E_Choice Which(void) const;
1026 
1027  /// Verify selection, throw exception if it differs from the expected.
1028  ///
1029  /// @param index
1030  /// Expected selection.
1031  void CheckSelected(E_Choice index) const;
1032 
1033  /// Throw 'InvalidSelection' exception.
1034  ///
1035  /// @param index
1036  /// Expected selection.
1037  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
1038 
1039  /// Retrieve selection name (for diagnostic purposes).
1040  ///
1041  /// @param index
1042  /// One of possible selection states.
1043  /// @return
1044  /// Name string.
1045  static string SelectionName(E_Choice index);
1046 
1047  /// Select the requested variant if needed.
1048  ///
1049  /// @param index
1050  /// New selection state.
1051  /// @param reset
1052  /// Flag that defines the resetting of the variant data. The data will
1053  /// be reset if either the current selection differs from the new one,
1054  /// or the flag is set to eDoResetVariant.
1056  /// Select the requested variant if needed,
1057  /// allocating CObject variants from memory pool.
1058  void Select(E_Choice index,
1059  EResetVariant reset,
1060  CObjectMemoryPool* pool);
1061 
1062  // types
1064  typedef CDivide TDivide;
1065  typedef CMinus TMinus;
1066  typedef CPower TPower;
1067  typedef CRem TRem;
1068  typedef CRoot TRoot;
1069 
1070  // getters
1071  // setters
1072 
1073 
1074  /// Check if variant Quotient is selected.
1075  ///
1076  /// Quotient type is defined as 'typedef CQuotient TQuotient'.
1077  /// @return
1078  /// - true, if the variant is selected.
1079  /// - false, otherwise.
1080  bool IsQuotient(void) const;
1081 
1082  /// Get the variant data.
1083  ///
1084  /// @return
1085  /// Reference to the data.
1086  const TQuotient& GetQuotient(void) const;
1087 
1088  /// Select the variant.
1089  ///
1090  /// @return
1091  /// Reference to the variant data.
1092  TQuotient& SetQuotient(void);
1093 
1094 
1095  /// Check if variant Divide is selected.
1096  ///
1097  /// Divide type is defined as 'typedef CDivide TDivide'.
1098  /// @return
1099  /// - true, if the variant is selected.
1100  /// - false, otherwise.
1101  bool IsDivide(void) const;
1102 
1103  /// Get the variant data.
1104  ///
1105  /// @return
1106  /// Reference to the data.
1107  const TDivide& GetDivide(void) const;
1108 
1109  /// Select the variant.
1110  ///
1111  /// @return
1112  /// Reference to the variant data.
1113  TDivide& SetDivide(void);
1114 
1115 
1116  /// Check if variant Minus is selected.
1117  ///
1118  /// Minus type is defined as 'typedef CMinus TMinus'.
1119  /// @return
1120  /// - true, if the variant is selected.
1121  /// - false, otherwise.
1122  bool IsMinus(void) const;
1123 
1124  /// Get the variant data.
1125  ///
1126  /// @return
1127  /// Reference to the data.
1128  const TMinus& GetMinus(void) const;
1129 
1130  /// Select the variant.
1131  ///
1132  /// @return
1133  /// Reference to the variant data.
1134  TMinus& SetMinus(void);
1135 
1136 
1137  /// Check if variant Power is selected.
1138  ///
1139  /// Power type is defined as 'typedef CPower TPower'.
1140  /// @return
1141  /// - true, if the variant is selected.
1142  /// - false, otherwise.
1143  bool IsPower(void) const;
1144 
1145  /// Get the variant data.
1146  ///
1147  /// @return
1148  /// Reference to the data.
1149  const TPower& GetPower(void) const;
1150 
1151  /// Select the variant.
1152  ///
1153  /// @return
1154  /// Reference to the variant data.
1155  TPower& SetPower(void);
1156 
1157 
1158  /// Check if variant Rem is selected.
1159  ///
1160  /// Rem type is defined as 'typedef CRem TRem'.
1161  /// @return
1162  /// - true, if the variant is selected.
1163  /// - false, otherwise.
1164  bool IsRem(void) const;
1165 
1166  /// Get the variant data.
1167  ///
1168  /// @return
1169  /// Reference to the data.
1170  const TRem& GetRem(void) const;
1171 
1172  /// Select the variant.
1173  ///
1174  /// @return
1175  /// Reference to the variant data.
1176  TRem& SetRem(void);
1177 
1178 
1179  /// Check if variant Root is selected.
1180  ///
1181  /// Root type is defined as 'typedef CRoot TRoot'.
1182  /// @return
1183  /// - true, if the variant is selected.
1184  /// - false, otherwise.
1185  bool IsRoot(void) const;
1186 
1187  /// Get the variant data.
1188  ///
1189  /// @return
1190  /// Reference to the data.
1191  const TRoot& GetRoot(void) const;
1192 
1193  /// Select the variant.
1194  ///
1195  /// @return
1196  /// Reference to the variant data.
1197  TRoot& SetRoot(void);
1198 
1199 
1200  private:
1201  // copy constructor and assignment operator
1204  // choice state
1206  // helper methods
1207  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
1208 
1209  static const char* const sm_SelectionNames[];
1210  // data
1211  NCBI_NS_NCBI::CSerialObject *m_object;
1212  };
1213  /////////////////////////////////////////////////////////////////////////////
1214  ///
1215  /// C_Unary_arith_mmlclass --
1216  ///
1217 
1219  {
1221  public:
1222  // constructor
1223  C_Unary_arith_mmlclass(void);
1224  // destructor
1226 
1227  // type info
1229 
1230 
1231  /// Choice variants.
1232  enum E_Choice {
1233  e_not_set = 0, ///< No variant selected
1242  e_Exp
1243  };
1244  /// Maximum+1 value of the choice variant enumerator.
1246  e_MaxChoice = 10 ///< == e_Exp+1
1247  };
1248 
1249  /// Reset the whole object
1250  void Reset(void);
1251 
1252  /// Reset the selection (set it to e_not_set).
1253  void ResetSelection(void);
1254 
1255  /// Which variant is currently selected.
1256  ///
1257  /// @return
1258  /// Choice state enumerator.
1259  E_Choice Which(void) const;
1260 
1261  /// Verify selection, throw exception if it differs from the expected.
1262  ///
1263  /// @param index
1264  /// Expected selection.
1265  void CheckSelected(E_Choice index) const;
1266 
1267  /// Throw 'InvalidSelection' exception.
1268  ///
1269  /// @param index
1270  /// Expected selection.
1271  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
1272 
1273  /// Retrieve selection name (for diagnostic purposes).
1274  ///
1275  /// @param index
1276  /// One of possible selection states.
1277  /// @return
1278  /// Name string.
1279  static string SelectionName(E_Choice index);
1280 
1281  /// Select the requested variant if needed.
1282  ///
1283  /// @param index
1284  /// New selection state.
1285  /// @param reset
1286  /// Flag that defines the resetting of the variant data. The data will
1287  /// be reset if either the current selection differs from the new one,
1288  /// or the flag is set to eDoResetVariant.
1290  /// Select the requested variant if needed,
1291  /// allocating CObject variants from memory pool.
1292  void Select(E_Choice index,
1293  EResetVariant reset,
1294  CObjectMemoryPool* pool);
1295 
1296  // types
1298  typedef CAbs TAbs;
1300  typedef CArg TArg;
1301  typedef CReal TReal;
1303  typedef CFloor TFloor;
1305  typedef CExp TExp;
1306 
1307  // getters
1308  // setters
1309 
1310 
1311  /// Check if variant Factorial is selected.
1312  ///
1313  /// Factorial type is defined as 'typedef CFactorial TFactorial'.
1314  /// @return
1315  /// - true, if the variant is selected.
1316  /// - false, otherwise.
1317  bool IsFactorial(void) const;
1318 
1319  /// Get the variant data.
1320  ///
1321  /// @return
1322  /// Reference to the data.
1323  const TFactorial& GetFactorial(void) const;
1324 
1325  /// Select the variant.
1326  ///
1327  /// @return
1328  /// Reference to the variant data.
1329  TFactorial& SetFactorial(void);
1330 
1331 
1332  /// Check if variant Abs is selected.
1333  ///
1334  /// Abs type is defined as 'typedef CAbs TAbs'.
1335  /// @return
1336  /// - true, if the variant is selected.
1337  /// - false, otherwise.
1338  bool IsAbs(void) const;
1339 
1340  /// Get the variant data.
1341  ///
1342  /// @return
1343  /// Reference to the data.
1344  const TAbs& GetAbs(void) const;
1345 
1346  /// Select the variant.
1347  ///
1348  /// @return
1349  /// Reference to the variant data.
1350  TAbs& SetAbs(void);
1351 
1352 
1353  /// Check if variant Conjugate is selected.
1354  ///
1355  /// Conjugate type is defined as 'typedef CConjugate TConjugate'.
1356  /// @return
1357  /// - true, if the variant is selected.
1358  /// - false, otherwise.
1359  bool IsConjugate(void) const;
1360 
1361  /// Get the variant data.
1362  ///
1363  /// @return
1364  /// Reference to the data.
1365  const TConjugate& GetConjugate(void) const;
1366 
1367  /// Select the variant.
1368  ///
1369  /// @return
1370  /// Reference to the variant data.
1371  TConjugate& SetConjugate(void);
1372 
1373 
1374  /// Check if variant Arg is selected.
1375  ///
1376  /// Arg type is defined as 'typedef CArg TArg'.
1377  /// @return
1378  /// - true, if the variant is selected.
1379  /// - false, otherwise.
1380  bool IsArg(void) const;
1381 
1382  /// Get the variant data.
1383  ///
1384  /// @return
1385  /// Reference to the data.
1386  const TArg& GetArg(void) const;
1387 
1388  /// Select the variant.
1389  ///
1390  /// @return
1391  /// Reference to the variant data.
1392  TArg& SetArg(void);
1393 
1394 
1395  /// Check if variant Real is selected.
1396  ///
1397  /// Real type is defined as 'typedef CReal TReal'.
1398  /// @return
1399  /// - true, if the variant is selected.
1400  /// - false, otherwise.
1401  bool IsReal(void) const;
1402 
1403  /// Get the variant data.
1404  ///
1405  /// @return
1406  /// Reference to the data.
1407  const TReal& GetReal(void) const;
1408 
1409  /// Select the variant.
1410  ///
1411  /// @return
1412  /// Reference to the variant data.
1413  TReal& SetReal(void);
1414 
1415 
1416  /// Check if variant Imaginary is selected.
1417  ///
1418  /// Imaginary type is defined as 'typedef CImaginary TImaginary'.
1419  /// @return
1420  /// - true, if the variant is selected.
1421  /// - false, otherwise.
1422  bool IsImaginary(void) const;
1423 
1424  /// Get the variant data.
1425  ///
1426  /// @return
1427  /// Reference to the data.
1428  const TImaginary& GetImaginary(void) const;
1429 
1430  /// Select the variant.
1431  ///
1432  /// @return
1433  /// Reference to the variant data.
1434  TImaginary& SetImaginary(void);
1435 
1436 
1437  /// Check if variant Floor is selected.
1438  ///
1439  /// Floor type is defined as 'typedef CFloor TFloor'.
1440  /// @return
1441  /// - true, if the variant is selected.
1442  /// - false, otherwise.
1443  bool IsFloor(void) const;
1444 
1445  /// Get the variant data.
1446  ///
1447  /// @return
1448  /// Reference to the data.
1449  const TFloor& GetFloor(void) const;
1450 
1451  /// Select the variant.
1452  ///
1453  /// @return
1454  /// Reference to the variant data.
1455  TFloor& SetFloor(void);
1456 
1457 
1458  /// Check if variant Ceiling is selected.
1459  ///
1460  /// Ceiling type is defined as 'typedef CCeiling TCeiling'.
1461  /// @return
1462  /// - true, if the variant is selected.
1463  /// - false, otherwise.
1464  bool IsCeiling(void) const;
1465 
1466  /// Get the variant data.
1467  ///
1468  /// @return
1469  /// Reference to the data.
1470  const TCeiling& GetCeiling(void) const;
1471 
1472  /// Select the variant.
1473  ///
1474  /// @return
1475  /// Reference to the variant data.
1476  TCeiling& SetCeiling(void);
1477 
1478 
1479  /// Check if variant Exp is selected.
1480  ///
1481  /// Exp type is defined as 'typedef CExp TExp'.
1482  /// @return
1483  /// - true, if the variant is selected.
1484  /// - false, otherwise.
1485  bool IsExp(void) const;
1486 
1487  /// Get the variant data.
1488  ///
1489  /// @return
1490  /// Reference to the data.
1491  const TExp& GetExp(void) const;
1492 
1493  /// Select the variant.
1494  ///
1495  /// @return
1496  /// Reference to the variant data.
1497  TExp& SetExp(void);
1498 
1499 
1500  private:
1501  // copy constructor and assignment operator
1504  // choice state
1506  // helper methods
1507  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
1508 
1509  static const char* const sm_SelectionNames[];
1510  // data
1511  NCBI_NS_NCBI::CSerialObject *m_object;
1512  };
1513  /////////////////////////////////////////////////////////////////////////////
1514  ///
1515  /// C_Nary_minmax_mmlclass --
1516  ///
1517 
1519  {
1521  public:
1522  // constructor
1523  C_Nary_minmax_mmlclass(void);
1524  // destructor
1526 
1527  // type info
1529 
1530 
1531  /// Choice variants.
1532  enum E_Choice {
1533  e_not_set = 0, ///< No variant selected
1535  e_Min
1536  };
1537  /// Maximum+1 value of the choice variant enumerator.
1539  e_MaxChoice = 3 ///< == e_Min+1
1540  };
1541 
1542  /// Reset the whole object
1543  void Reset(void);
1544 
1545  /// Reset the selection (set it to e_not_set).
1546  void ResetSelection(void);
1547 
1548  /// Which variant is currently selected.
1549  ///
1550  /// @return
1551  /// Choice state enumerator.
1552  E_Choice Which(void) const;
1553 
1554  /// Verify selection, throw exception if it differs from the expected.
1555  ///
1556  /// @param index
1557  /// Expected selection.
1558  void CheckSelected(E_Choice index) const;
1559 
1560  /// Throw 'InvalidSelection' exception.
1561  ///
1562  /// @param index
1563  /// Expected selection.
1564  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
1565 
1566  /// Retrieve selection name (for diagnostic purposes).
1567  ///
1568  /// @param index
1569  /// One of possible selection states.
1570  /// @return
1571  /// Name string.
1572  static string SelectionName(E_Choice index);
1573 
1574  /// Select the requested variant if needed.
1575  ///
1576  /// @param index
1577  /// New selection state.
1578  /// @param reset
1579  /// Flag that defines the resetting of the variant data. The data will
1580  /// be reset if either the current selection differs from the new one,
1581  /// or the flag is set to eDoResetVariant.
1583  /// Select the requested variant if needed,
1584  /// allocating CObject variants from memory pool.
1585  void Select(E_Choice index,
1586  EResetVariant reset,
1587  CObjectMemoryPool* pool);
1588 
1589  // types
1590  typedef CMax TMax;
1591  typedef CMin TMin;
1592 
1593  // getters
1594  // setters
1595 
1596 
1597  /// Check if variant Max is selected.
1598  ///
1599  /// Max type is defined as 'typedef CMax TMax'.
1600  /// @return
1601  /// - true, if the variant is selected.
1602  /// - false, otherwise.
1603  bool IsMax(void) const;
1604 
1605  /// Get the variant data.
1606  ///
1607  /// @return
1608  /// Reference to the data.
1609  const TMax& GetMax(void) const;
1610 
1611  /// Select the variant.
1612  ///
1613  /// @return
1614  /// Reference to the variant data.
1615  TMax& SetMax(void);
1616 
1617 
1618  /// Check if variant Min is selected.
1619  ///
1620  /// Min type is defined as 'typedef CMin TMin'.
1621  /// @return
1622  /// - true, if the variant is selected.
1623  /// - false, otherwise.
1624  bool IsMin(void) const;
1625 
1626  /// Get the variant data.
1627  ///
1628  /// @return
1629  /// Reference to the data.
1630  const TMin& GetMin(void) const;
1631 
1632  /// Select the variant.
1633  ///
1634  /// @return
1635  /// Reference to the variant data.
1636  TMin& SetMin(void);
1637 
1638 
1639  private:
1640  // copy constructor and assignment operator
1643  // choice state
1645  // helper methods
1646  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
1647 
1648  static const char* const sm_SelectionNames[];
1649  // data
1650  NCBI_NS_NCBI::CSerialObject *m_object;
1651  };
1652  /////////////////////////////////////////////////////////////////////////////
1653  ///
1654  /// C_Nary_arith_mmlclass --
1655  ///
1656 
1658  {
1660  public:
1661  // constructor
1662  C_Nary_arith_mmlclass(void);
1663  // destructor
1664  ~C_Nary_arith_mmlclass(void);
1665 
1666  // type info
1668 
1669 
1670  /// Choice variants.
1671  enum E_Choice {
1672  e_not_set = 0, ///< No variant selected
1676  e_Lcm
1677  };
1678  /// Maximum+1 value of the choice variant enumerator.
1680  e_MaxChoice = 5 ///< == e_Lcm+1
1681  };
1682 
1683  /// Reset the whole object
1684  void Reset(void);
1685 
1686  /// Reset the selection (set it to e_not_set).
1687  void ResetSelection(void);
1688 
1689  /// Which variant is currently selected.
1690  ///
1691  /// @return
1692  /// Choice state enumerator.
1693  E_Choice Which(void) const;
1694 
1695  /// Verify selection, throw exception if it differs from the expected.
1696  ///
1697  /// @param index
1698  /// Expected selection.
1699  void CheckSelected(E_Choice index) const;
1700 
1701  /// Throw 'InvalidSelection' exception.
1702  ///
1703  /// @param index
1704  /// Expected selection.
1705  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
1706 
1707  /// Retrieve selection name (for diagnostic purposes).
1708  ///
1709  /// @param index
1710  /// One of possible selection states.
1711  /// @return
1712  /// Name string.
1713  static string SelectionName(E_Choice index);
1714 
1715  /// Select the requested variant if needed.
1716  ///
1717  /// @param index
1718  /// New selection state.
1719  /// @param reset
1720  /// Flag that defines the resetting of the variant data. The data will
1721  /// be reset if either the current selection differs from the new one,
1722  /// or the flag is set to eDoResetVariant.
1724  /// Select the requested variant if needed,
1725  /// allocating CObject variants from memory pool.
1726  void Select(E_Choice index,
1727  EResetVariant reset,
1728  CObjectMemoryPool* pool);
1729 
1730  // types
1731  typedef CPlus TPlus;
1732  typedef CTimes TTimes;
1733  typedef CGcd TGcd;
1734  typedef CLcm TLcm;
1735 
1736  // getters
1737  // setters
1738 
1739 
1740  /// Check if variant Plus is selected.
1741  ///
1742  /// Plus type is defined as 'typedef CPlus TPlus'.
1743  /// @return
1744  /// - true, if the variant is selected.
1745  /// - false, otherwise.
1746  bool IsPlus(void) const;
1747 
1748  /// Get the variant data.
1749  ///
1750  /// @return
1751  /// Reference to the data.
1752  const TPlus& GetPlus(void) const;
1753 
1754  /// Select the variant.
1755  ///
1756  /// @return
1757  /// Reference to the variant data.
1758  TPlus& SetPlus(void);
1759 
1760 
1761  /// Check if variant Times is selected.
1762  ///
1763  /// Times type is defined as 'typedef CTimes TTimes'.
1764  /// @return
1765  /// - true, if the variant is selected.
1766  /// - false, otherwise.
1767  bool IsTimes(void) const;
1768 
1769  /// Get the variant data.
1770  ///
1771  /// @return
1772  /// Reference to the data.
1773  const TTimes& GetTimes(void) const;
1774 
1775  /// Select the variant.
1776  ///
1777  /// @return
1778  /// Reference to the variant data.
1779  TTimes& SetTimes(void);
1780 
1781 
1782  /// Check if variant Gcd is selected.
1783  ///
1784  /// Gcd type is defined as 'typedef CGcd TGcd'.
1785  /// @return
1786  /// - true, if the variant is selected.
1787  /// - false, otherwise.
1788  bool IsGcd(void) const;
1789 
1790  /// Get the variant data.
1791  ///
1792  /// @return
1793  /// Reference to the data.
1794  const TGcd& GetGcd(void) const;
1795 
1796  /// Select the variant.
1797  ///
1798  /// @return
1799  /// Reference to the variant data.
1800  TGcd& SetGcd(void);
1801 
1802 
1803  /// Check if variant Lcm is selected.
1804  ///
1805  /// Lcm type is defined as 'typedef CLcm TLcm'.
1806  /// @return
1807  /// - true, if the variant is selected.
1808  /// - false, otherwise.
1809  bool IsLcm(void) const;
1810 
1811  /// Get the variant data.
1812  ///
1813  /// @return
1814  /// Reference to the data.
1815  const TLcm& GetLcm(void) const;
1816 
1817  /// Select the variant.
1818  ///
1819  /// @return
1820  /// Reference to the variant data.
1821  TLcm& SetLcm(void);
1822 
1823 
1824  private:
1825  // copy constructor and assignment operator
1828  // choice state
1830  // helper methods
1831  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
1832 
1833  static const char* const sm_SelectionNames[];
1834  // data
1835  NCBI_NS_NCBI::CSerialObject *m_object;
1836  };
1837  /////////////////////////////////////////////////////////////////////////////
1838  ///
1839  /// C_Nary_logical_mmlclass --
1840  ///
1841 
1843  {
1845  public:
1846  // constructor
1848  // destructor
1850 
1851  // type info
1853 
1854 
1855  /// Choice variants.
1856  enum E_Choice {
1857  e_not_set = 0, ///< No variant selected
1860  e_Xor
1861  };
1862  /// Maximum+1 value of the choice variant enumerator.
1864  e_MaxChoice = 4 ///< == e_Xor+1
1865  };
1866 
1867  /// Reset the whole object
1868  void Reset(void);
1869 
1870  /// Reset the selection (set it to e_not_set).
1871  void ResetSelection(void);
1872 
1873  /// Which variant is currently selected.
1874  ///
1875  /// @return
1876  /// Choice state enumerator.
1877  E_Choice Which(void) const;
1878 
1879  /// Verify selection, throw exception if it differs from the expected.
1880  ///
1881  /// @param index
1882  /// Expected selection.
1883  void CheckSelected(E_Choice index) const;
1884 
1885  /// Throw 'InvalidSelection' exception.
1886  ///
1887  /// @param index
1888  /// Expected selection.
1889  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
1890 
1891  /// Retrieve selection name (for diagnostic purposes).
1892  ///
1893  /// @param index
1894  /// One of possible selection states.
1895  /// @return
1896  /// Name string.
1897  static string SelectionName(E_Choice index);
1898 
1899  /// Select the requested variant if needed.
1900  ///
1901  /// @param index
1902  /// New selection state.
1903  /// @param reset
1904  /// Flag that defines the resetting of the variant data. The data will
1905  /// be reset if either the current selection differs from the new one,
1906  /// or the flag is set to eDoResetVariant.
1908  /// Select the requested variant if needed,
1909  /// allocating CObject variants from memory pool.
1910  void Select(E_Choice index,
1911  EResetVariant reset,
1912  CObjectMemoryPool* pool);
1913 
1914  // types
1915  typedef CAnd TAnd;
1916  typedef COr TOr;
1917  typedef CXor TXor;
1918 
1919  // getters
1920  // setters
1921 
1922 
1923  /// Check if variant And is selected.
1924  ///
1925  /// And type is defined as 'typedef CAnd TAnd'.
1926  /// @return
1927  /// - true, if the variant is selected.
1928  /// - false, otherwise.
1929  bool IsAnd(void) const;
1930 
1931  /// Get the variant data.
1932  ///
1933  /// @return
1934  /// Reference to the data.
1935  const TAnd& GetAnd(void) const;
1936 
1937  /// Select the variant.
1938  ///
1939  /// @return
1940  /// Reference to the variant data.
1941  TAnd& SetAnd(void);
1942 
1943 
1944  /// Check if variant Or is selected.
1945  ///
1946  /// Or type is defined as 'typedef COr TOr'.
1947  /// @return
1948  /// - true, if the variant is selected.
1949  /// - false, otherwise.
1950  bool IsOr(void) const;
1951 
1952  /// Get the variant data.
1953  ///
1954  /// @return
1955  /// Reference to the data.
1956  const TOr& GetOr(void) const;
1957 
1958  /// Select the variant.
1959  ///
1960  /// @return
1961  /// Reference to the variant data.
1962  TOr& SetOr(void);
1963 
1964 
1965  /// Check if variant Xor is selected.
1966  ///
1967  /// Xor type is defined as 'typedef CXor TXor'.
1968  /// @return
1969  /// - true, if the variant is selected.
1970  /// - false, otherwise.
1971  bool IsXor(void) const;
1972 
1973  /// Get the variant data.
1974  ///
1975  /// @return
1976  /// Reference to the data.
1977  const TXor& GetXor(void) const;
1978 
1979  /// Select the variant.
1980  ///
1981  /// @return
1982  /// Reference to the variant data.
1983  TXor& SetXor(void);
1984 
1985 
1986  private:
1987  // copy constructor and assignment operator
1990  // choice state
1992  // helper methods
1993  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
1994 
1995  static const char* const sm_SelectionNames[];
1996  // data
1997  NCBI_NS_NCBI::CSerialObject *m_object;
1998  };
1999  /////////////////////////////////////////////////////////////////////////////
2000  ///
2001  /// C_Unary_logical_mmlclass --
2002  ///
2003 
2005  {
2007  public:
2008  // constructor
2010  // destructor
2012 
2013  // type info
2015 
2016  // types
2017  typedef CNot TNot;
2018 
2019  // member index
2020  enum class E_memberIndex {
2021  e__allMandatory = 0,
2022  e_not
2023  };
2025 
2026  // getters
2027  // setters
2028 
2029  /// Check if a value has been assigned to Not data member.
2030  ///
2031  /// Data member Not is mandatory;
2032  /// its type is defined as 'typedef CNot TNot'
2033  /// @return
2034  /// - true, if a value has been assigned.
2035  /// - false, otherwise.
2036  bool IsSetNot(void) const;
2037 
2038  /// Check if value of Not member is getatable.
2039  ///
2040  /// @return
2041  /// - false; the data member of type 'NULL' has no value.
2042  bool CanGetNot(void) const;
2043 
2044  /// Reset Not data member.
2045  void ResetNot(void);
2046 
2047  /// Get the Not member data.
2048  ///
2049  /// @return
2050  /// Reference to the member data.
2051  const TNot& GetNot(void) const;
2052 
2053  /// Assign a value to Not data member.
2054  ///
2055  /// @param value
2056  /// Reference to value.
2057  void SetNot(TNot& value);
2058 
2059  /// Assign a value to Not data member.
2060  ///
2061  /// @return
2062  /// Reference to the data value.
2063  TNot& SetNot(void);
2064 
2065  /// Reset the whole object
2066  void Reset(void);
2067 
2068 
2069  private:
2070  // Prohibit copy constructor and assignment operator
2073 
2074  // data
2077  };
2078  /////////////////////////////////////////////////////////////////////////////
2079  ///
2080  /// C_Binary_logical_mmlclass --
2081  ///
2082 
2084  {
2086  public:
2087  // constructor
2089  // destructor
2091 
2092  // type info
2094 
2095 
2096  /// Choice variants.
2097  enum E_Choice {
2098  e_not_set = 0, ///< No variant selected
2100  e_Equivalent
2101  };
2102  /// Maximum+1 value of the choice variant enumerator.
2104  e_MaxChoice = 3 ///< == e_Equivalent+1
2105  };
2106 
2107  /// Reset the whole object
2108  void Reset(void);
2109 
2110  /// Reset the selection (set it to e_not_set).
2111  void ResetSelection(void);
2112 
2113  /// Which variant is currently selected.
2114  ///
2115  /// @return
2116  /// Choice state enumerator.
2117  E_Choice Which(void) const;
2118 
2119  /// Verify selection, throw exception if it differs from the expected.
2120  ///
2121  /// @param index
2122  /// Expected selection.
2123  void CheckSelected(E_Choice index) const;
2124 
2125  /// Throw 'InvalidSelection' exception.
2126  ///
2127  /// @param index
2128  /// Expected selection.
2129  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
2130 
2131  /// Retrieve selection name (for diagnostic purposes).
2132  ///
2133  /// @param index
2134  /// One of possible selection states.
2135  /// @return
2136  /// Name string.
2137  static string SelectionName(E_Choice index);
2138 
2139  /// Select the requested variant if needed.
2140  ///
2141  /// @param index
2142  /// New selection state.
2143  /// @param reset
2144  /// Flag that defines the resetting of the variant data. The data will
2145  /// be reset if either the current selection differs from the new one,
2146  /// or the flag is set to eDoResetVariant.
2148  /// Select the requested variant if needed,
2149  /// allocating CObject variants from memory pool.
2150  void Select(E_Choice index,
2151  EResetVariant reset,
2152  CObjectMemoryPool* pool);
2153 
2154  // types
2157 
2158  // getters
2159  // setters
2160 
2161 
2162  /// Check if variant Implies is selected.
2163  ///
2164  /// Implies type is defined as 'typedef CImplies TImplies'.
2165  /// @return
2166  /// - true, if the variant is selected.
2167  /// - false, otherwise.
2168  bool IsImplies(void) const;
2169 
2170  /// Get the variant data.
2171  ///
2172  /// @return
2173  /// Reference to the data.
2174  const TImplies& GetImplies(void) const;
2175 
2176  /// Select the variant.
2177  ///
2178  /// @return
2179  /// Reference to the variant data.
2180  TImplies& SetImplies(void);
2181 
2182 
2183  /// Check if variant Equivalent is selected.
2184  ///
2185  /// Equivalent type is defined as 'typedef CEquivalent TEquivalent'.
2186  /// @return
2187  /// - true, if the variant is selected.
2188  /// - false, otherwise.
2189  bool IsEquivalent(void) const;
2190 
2191  /// Get the variant data.
2192  ///
2193  /// @return
2194  /// Reference to the data.
2195  const TEquivalent& GetEquivalent(void) const;
2196 
2197  /// Select the variant.
2198  ///
2199  /// @return
2200  /// Reference to the variant data.
2201  TEquivalent& SetEquivalent(void);
2202 
2203 
2204  private:
2205  // copy constructor and assignment operator
2208  // choice state
2210  // helper methods
2211  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
2212 
2213  static const char* const sm_SelectionNames[];
2214  // data
2215  NCBI_NS_NCBI::CSerialObject *m_object;
2216  };
2217  /////////////////////////////////////////////////////////////////////////////
2218  ///
2219  /// C_Quantifier_mmlclass --
2220  ///
2221 
2223  {
2225  public:
2226  // constructor
2227  C_Quantifier_mmlclass(void);
2228  // destructor
2229  ~C_Quantifier_mmlclass(void);
2230 
2231  // type info
2233 
2234 
2235  /// Choice variants.
2236  enum E_Choice {
2237  e_not_set = 0, ///< No variant selected
2239  e_Exists
2240  };
2241  /// Maximum+1 value of the choice variant enumerator.
2243  e_MaxChoice = 3 ///< == e_Exists+1
2244  };
2245 
2246  /// Reset the whole object
2247  void Reset(void);
2248 
2249  /// Reset the selection (set it to e_not_set).
2250  void ResetSelection(void);
2251 
2252  /// Which variant is currently selected.
2253  ///
2254  /// @return
2255  /// Choice state enumerator.
2256  E_Choice Which(void) const;
2257 
2258  /// Verify selection, throw exception if it differs from the expected.
2259  ///
2260  /// @param index
2261  /// Expected selection.
2262  void CheckSelected(E_Choice index) const;
2263 
2264  /// Throw 'InvalidSelection' exception.
2265  ///
2266  /// @param index
2267  /// Expected selection.
2268  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
2269 
2270  /// Retrieve selection name (for diagnostic purposes).
2271  ///
2272  /// @param index
2273  /// One of possible selection states.
2274  /// @return
2275  /// Name string.
2276  static string SelectionName(E_Choice index);
2277 
2278  /// Select the requested variant if needed.
2279  ///
2280  /// @param index
2281  /// New selection state.
2282  /// @param reset
2283  /// Flag that defines the resetting of the variant data. The data will
2284  /// be reset if either the current selection differs from the new one,
2285  /// or the flag is set to eDoResetVariant.
2287  /// Select the requested variant if needed,
2288  /// allocating CObject variants from memory pool.
2289  void Select(E_Choice index,
2290  EResetVariant reset,
2291  CObjectMemoryPool* pool);
2292 
2293  // types
2294  typedef CForall TForall;
2295  typedef CExists TExists;
2296 
2297  // getters
2298  // setters
2299 
2300 
2301  /// Check if variant Forall is selected.
2302  ///
2303  /// Forall type is defined as 'typedef CForall TForall'.
2304  /// @return
2305  /// - true, if the variant is selected.
2306  /// - false, otherwise.
2307  bool IsForall(void) const;
2308 
2309  /// Get the variant data.
2310  ///
2311  /// @return
2312  /// Reference to the data.
2313  const TForall& GetForall(void) const;
2314 
2315  /// Select the variant.
2316  ///
2317  /// @return
2318  /// Reference to the variant data.
2319  TForall& SetForall(void);
2320 
2321 
2322  /// Check if variant Exists is selected.
2323  ///
2324  /// Exists type is defined as 'typedef CExists TExists'.
2325  /// @return
2326  /// - true, if the variant is selected.
2327  /// - false, otherwise.
2328  bool IsExists(void) const;
2329 
2330  /// Get the variant data.
2331  ///
2332  /// @return
2333  /// Reference to the data.
2334  const TExists& GetExists(void) const;
2335 
2336  /// Select the variant.
2337  ///
2338  /// @return
2339  /// Reference to the variant data.
2340  TExists& SetExists(void);
2341 
2342 
2343  private:
2344  // copy constructor and assignment operator
2347  // choice state
2349  // helper methods
2350  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
2351 
2352  static const char* const sm_SelectionNames[];
2353  // data
2354  NCBI_NS_NCBI::CSerialObject *m_object;
2355  };
2356  /////////////////////////////////////////////////////////////////////////////
2357  ///
2358  /// C_Nary_reln_mmlclass --
2359  ///
2360 
2362  {
2364  public:
2365  // constructor
2366  C_Nary_reln_mmlclass(void);
2367  // destructor
2368  ~C_Nary_reln_mmlclass(void);
2369 
2370  // type info
2372 
2373 
2374  /// Choice variants.
2375  enum E_Choice {
2376  e_not_set = 0, ///< No variant selected
2381  e_Leq
2382  };
2383  /// Maximum+1 value of the choice variant enumerator.
2385  e_MaxChoice = 6 ///< == e_Leq+1
2386  };
2387 
2388  /// Reset the whole object
2389  void Reset(void);
2390 
2391  /// Reset the selection (set it to e_not_set).
2392  void ResetSelection(void);
2393 
2394  /// Which variant is currently selected.
2395  ///
2396  /// @return
2397  /// Choice state enumerator.
2398  E_Choice Which(void) const;
2399 
2400  /// Verify selection, throw exception if it differs from the expected.
2401  ///
2402  /// @param index
2403  /// Expected selection.
2404  void CheckSelected(E_Choice index) const;
2405 
2406  /// Throw 'InvalidSelection' exception.
2407  ///
2408  /// @param index
2409  /// Expected selection.
2410  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
2411 
2412  /// Retrieve selection name (for diagnostic purposes).
2413  ///
2414  /// @param index
2415  /// One of possible selection states.
2416  /// @return
2417  /// Name string.
2418  static string SelectionName(E_Choice index);
2419 
2420  /// Select the requested variant if needed.
2421  ///
2422  /// @param index
2423  /// New selection state.
2424  /// @param reset
2425  /// Flag that defines the resetting of the variant data. The data will
2426  /// be reset if either the current selection differs from the new one,
2427  /// or the flag is set to eDoResetVariant.
2429  /// Select the requested variant if needed,
2430  /// allocating CObject variants from memory pool.
2431  void Select(E_Choice index,
2432  EResetVariant reset,
2433  CObjectMemoryPool* pool);
2434 
2435  // types
2436  typedef CEq TEq;
2437  typedef CGt TGt;
2438  typedef CLt TLt;
2439  typedef CGeq TGeq;
2440  typedef CLeq TLeq;
2441 
2442  // getters
2443  // setters
2444 
2445 
2446  /// Check if variant Eq is selected.
2447  ///
2448  /// Eq type is defined as 'typedef CEq TEq'.
2449  /// @return
2450  /// - true, if the variant is selected.
2451  /// - false, otherwise.
2452  bool IsEq(void) const;
2453 
2454  /// Get the variant data.
2455  ///
2456  /// @return
2457  /// Reference to the data.
2458  const TEq& GetEq(void) const;
2459 
2460  /// Select the variant.
2461  ///
2462  /// @return
2463  /// Reference to the variant data.
2464  TEq& SetEq(void);
2465 
2466 
2467  /// Check if variant Gt is selected.
2468  ///
2469  /// Gt type is defined as 'typedef CGt TGt'.
2470  /// @return
2471  /// - true, if the variant is selected.
2472  /// - false, otherwise.
2473  bool IsGt(void) const;
2474 
2475  /// Get the variant data.
2476  ///
2477  /// @return
2478  /// Reference to the data.
2479  const TGt& GetGt(void) const;
2480 
2481  /// Select the variant.
2482  ///
2483  /// @return
2484  /// Reference to the variant data.
2485  TGt& SetGt(void);
2486 
2487 
2488  /// Check if variant Lt is selected.
2489  ///
2490  /// Lt type is defined as 'typedef CLt TLt'.
2491  /// @return
2492  /// - true, if the variant is selected.
2493  /// - false, otherwise.
2494  bool IsLt(void) const;
2495 
2496  /// Get the variant data.
2497  ///
2498  /// @return
2499  /// Reference to the data.
2500  const TLt& GetLt(void) const;
2501 
2502  /// Select the variant.
2503  ///
2504  /// @return
2505  /// Reference to the variant data.
2506  TLt& SetLt(void);
2507 
2508 
2509  /// Check if variant Geq is selected.
2510  ///
2511  /// Geq type is defined as 'typedef CGeq TGeq'.
2512  /// @return
2513  /// - true, if the variant is selected.
2514  /// - false, otherwise.
2515  bool IsGeq(void) const;
2516 
2517  /// Get the variant data.
2518  ///
2519  /// @return
2520  /// Reference to the data.
2521  const TGeq& GetGeq(void) const;
2522 
2523  /// Select the variant.
2524  ///
2525  /// @return
2526  /// Reference to the variant data.
2527  TGeq& SetGeq(void);
2528 
2529 
2530  /// Check if variant Leq is selected.
2531  ///
2532  /// Leq type is defined as 'typedef CLeq TLeq'.
2533  /// @return
2534  /// - true, if the variant is selected.
2535  /// - false, otherwise.
2536  bool IsLeq(void) const;
2537 
2538  /// Get the variant data.
2539  ///
2540  /// @return
2541  /// Reference to the data.
2542  const TLeq& GetLeq(void) const;
2543 
2544  /// Select the variant.
2545  ///
2546  /// @return
2547  /// Reference to the variant data.
2548  TLeq& SetLeq(void);
2549 
2550 
2551  private:
2552  // copy constructor and assignment operator
2555  // choice state
2557  // helper methods
2558  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
2559 
2560  static const char* const sm_SelectionNames[];
2561  // data
2562  NCBI_NS_NCBI::CSerialObject *m_object;
2563  };
2564  /////////////////////////////////////////////////////////////////////////////
2565  ///
2566  /// C_Binary_reln_mmlclass --
2567  ///
2568 
2570  {
2572  public:
2573  // constructor
2574  C_Binary_reln_mmlclass(void);
2575  // destructor
2577 
2578  // type info
2580 
2581 
2582  /// Choice variants.
2583  enum E_Choice {
2584  e_not_set = 0, ///< No variant selected
2588  e_Tendsto
2589  };
2590  /// Maximum+1 value of the choice variant enumerator.
2592  e_MaxChoice = 5 ///< == e_Tendsto+1
2593  };
2594 
2595  /// Reset the whole object
2596  void Reset(void);
2597 
2598  /// Reset the selection (set it to e_not_set).
2599  void ResetSelection(void);
2600 
2601  /// Which variant is currently selected.
2602  ///
2603  /// @return
2604  /// Choice state enumerator.
2605  E_Choice Which(void) const;
2606 
2607  /// Verify selection, throw exception if it differs from the expected.
2608  ///
2609  /// @param index
2610  /// Expected selection.
2611  void CheckSelected(E_Choice index) const;
2612 
2613  /// Throw 'InvalidSelection' exception.
2614  ///
2615  /// @param index
2616  /// Expected selection.
2617  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
2618 
2619  /// Retrieve selection name (for diagnostic purposes).
2620  ///
2621  /// @param index
2622  /// One of possible selection states.
2623  /// @return
2624  /// Name string.
2625  static string SelectionName(E_Choice index);
2626 
2627  /// Select the requested variant if needed.
2628  ///
2629  /// @param index
2630  /// New selection state.
2631  /// @param reset
2632  /// Flag that defines the resetting of the variant data. The data will
2633  /// be reset if either the current selection differs from the new one,
2634  /// or the flag is set to eDoResetVariant.
2636  /// Select the requested variant if needed,
2637  /// allocating CObject variants from memory pool.
2638  void Select(E_Choice index,
2639  EResetVariant reset,
2640  CObjectMemoryPool* pool);
2641 
2642  // types
2643  typedef CNeq TNeq;
2644  typedef CApprox TApprox;
2647 
2648  // getters
2649  // setters
2650 
2651 
2652  /// Check if variant Neq is selected.
2653  ///
2654  /// Neq type is defined as 'typedef CNeq TNeq'.
2655  /// @return
2656  /// - true, if the variant is selected.
2657  /// - false, otherwise.
2658  bool IsNeq(void) const;
2659 
2660  /// Get the variant data.
2661  ///
2662  /// @return
2663  /// Reference to the data.
2664  const TNeq& GetNeq(void) const;
2665 
2666  /// Select the variant.
2667  ///
2668  /// @return
2669  /// Reference to the variant data.
2670  TNeq& SetNeq(void);
2671 
2672 
2673  /// Check if variant Approx is selected.
2674  ///
2675  /// Approx type is defined as 'typedef CApprox TApprox'.
2676  /// @return
2677  /// - true, if the variant is selected.
2678  /// - false, otherwise.
2679  bool IsApprox(void) const;
2680 
2681  /// Get the variant data.
2682  ///
2683  /// @return
2684  /// Reference to the data.
2685  const TApprox& GetApprox(void) const;
2686 
2687  /// Select the variant.
2688  ///
2689  /// @return
2690  /// Reference to the variant data.
2691  TApprox& SetApprox(void);
2692 
2693 
2694  /// Check if variant Factorof is selected.
2695  ///
2696  /// Factorof type is defined as 'typedef CFactorof TFactorof'.
2697  /// @return
2698  /// - true, if the variant is selected.
2699  /// - false, otherwise.
2700  bool IsFactorof(void) const;
2701 
2702  /// Get the variant data.
2703  ///
2704  /// @return
2705  /// Reference to the data.
2706  const TFactorof& GetFactorof(void) const;
2707 
2708  /// Select the variant.
2709  ///
2710  /// @return
2711  /// Reference to the variant data.
2712  TFactorof& SetFactorof(void);
2713 
2714 
2715  /// Check if variant Tendsto is selected.
2716  ///
2717  /// Tendsto type is defined as 'typedef CTendsto TTendsto'.
2718  /// @return
2719  /// - true, if the variant is selected.
2720  /// - false, otherwise.
2721  bool IsTendsto(void) const;
2722 
2723  /// Get the variant data.
2724  ///
2725  /// @return
2726  /// Reference to the data.
2727  const TTendsto& GetTendsto(void) const;
2728 
2729  /// Select the variant.
2730  ///
2731  /// @return
2732  /// Reference to the variant data.
2733  TTendsto& SetTendsto(void);
2734 
2735 
2736  private:
2737  // copy constructor and assignment operator
2740  // choice state
2742  // helper methods
2743  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
2744 
2745  static const char* const sm_SelectionNames[];
2746  // data
2747  NCBI_NS_NCBI::CSerialObject *m_object;
2748  };
2749  /////////////////////////////////////////////////////////////////////////////
2750  ///
2751  /// C_Int_mmlclass --
2752  ///
2753 
2755  {
2757  public:
2758  // constructor
2759  C_Int_mmlclass(void);
2760  // destructor
2761  ~C_Int_mmlclass(void);
2762 
2763  // type info
2765 
2766  // types
2767  typedef CInt TInt;
2768 
2769  // member index
2770  enum class E_memberIndex {
2771  e__allMandatory = 0,
2772  e_int
2773  };
2775 
2776  // getters
2777  // setters
2778 
2779  /// Check if a value has been assigned to Int data member.
2780  ///
2781  /// Data member Int is mandatory;
2782  /// its type is defined as 'typedef CInt TInt'
2783  /// @return
2784  /// - true, if a value has been assigned.
2785  /// - false, otherwise.
2786  bool IsSetInt(void) const;
2787 
2788  /// Check if value of Int member is getatable.
2789  ///
2790  /// @return
2791  /// - false; the data member of type 'NULL' has no value.
2792  bool CanGetInt(void) const;
2793 
2794  /// Reset Int data member.
2795  void ResetInt(void);
2796 
2797  /// Get the Int member data.
2798  ///
2799  /// @return
2800  /// Reference to the member data.
2801  const TInt& GetInt(void) const;
2802 
2803  /// Assign a value to Int data member.
2804  ///
2805  /// @param value
2806  /// Reference to value.
2807  void SetInt(TInt& value);
2808 
2809  /// Assign a value to Int data member.
2810  ///
2811  /// @return
2812  /// Reference to the data value.
2813  TInt& SetInt(void);
2814 
2815  /// Reset the whole object
2816  void Reset(void);
2817 
2818 
2819  private:
2820  // Prohibit copy constructor and assignment operator
2823 
2824  // data
2827  };
2828  /////////////////////////////////////////////////////////////////////////////
2829  ///
2830  /// C_Differential_Operator_mmlclass --
2831  ///
2832 
2834  {
2836  public:
2837  // constructor
2839  // destructor
2841 
2842  // type info
2844 
2845  // types
2846  typedef CDiff TDiff;
2847 
2848  // member index
2849  enum class E_memberIndex {
2850  e__allMandatory = 0,
2851  e_diff
2852  };
2854 
2855  // getters
2856  // setters
2857 
2858  /// Check if a value has been assigned to Diff data member.
2859  ///
2860  /// Data member Diff is mandatory;
2861  /// its type is defined as 'typedef CDiff TDiff'
2862  /// @return
2863  /// - true, if a value has been assigned.
2864  /// - false, otherwise.
2865  bool IsSetDiff(void) const;
2866 
2867  /// Check if value of Diff member is getatable.
2868  ///
2869  /// @return
2870  /// - false; the data member of type 'NULL' has no value.
2871  bool CanGetDiff(void) const;
2872 
2873  /// Reset Diff data member.
2874  void ResetDiff(void);
2875 
2876  /// Get the Diff member data.
2877  ///
2878  /// @return
2879  /// Reference to the member data.
2880  const TDiff& GetDiff(void) const;
2881 
2882  /// Assign a value to Diff data member.
2883  ///
2884  /// @param value
2885  /// Reference to value.
2886  void SetDiff(TDiff& value);
2887 
2888  /// Assign a value to Diff data member.
2889  ///
2890  /// @return
2891  /// Reference to the data value.
2892  TDiff& SetDiff(void);
2893 
2894  /// Reset the whole object
2895  void Reset(void);
2896 
2897 
2898  private:
2899  // Prohibit copy constructor and assignment operator
2902 
2903  // data
2906  };
2907  /////////////////////////////////////////////////////////////////////////////
2908  ///
2909  /// C_Partialdiff_mmlclass --
2910  ///
2911 
2913  {
2915  public:
2916  // constructor
2917  C_Partialdiff_mmlclass(void);
2918  // destructor
2920 
2921  // type info
2923 
2924  // types
2926 
2927  // member index
2928  enum class E_memberIndex {
2929  e__allMandatory = 0,
2931  };
2933 
2934  // getters
2935  // setters
2936 
2937  /// Check if a value has been assigned to Partialdiff data member.
2938  ///
2939  /// Data member Partialdiff is mandatory;
2940  /// its type is defined as 'typedef CPartialdiff TPartialdiff'
2941  /// @return
2942  /// - true, if a value has been assigned.
2943  /// - false, otherwise.
2944  bool IsSetPartialdiff(void) const;
2945 
2946  /// Check if value of Partialdiff member is getatable.
2947  ///
2948  /// @return
2949  /// - false; the data member of type 'NULL' has no value.
2950  bool CanGetPartialdiff(void) const;
2951 
2952  /// Reset Partialdiff data member.
2953  void ResetPartialdiff(void);
2954 
2955  /// Get the Partialdiff member data.
2956  ///
2957  /// @return
2958  /// Reference to the member data.
2959  const TPartialdiff& GetPartialdiff(void) const;
2960 
2961  /// Assign a value to Partialdiff data member.
2962  ///
2963  /// @param value
2964  /// Reference to value.
2966 
2967  /// Assign a value to Partialdiff data member.
2968  ///
2969  /// @return
2970  /// Reference to the data value.
2972 
2973  /// Reset the whole object
2974  void Reset(void);
2975 
2976 
2977  private:
2978  // Prohibit copy constructor and assignment operator
2981 
2982  // data
2985  };
2986  /////////////////////////////////////////////////////////////////////////////
2987  ///
2988  /// C_Unary_veccalc_mmlclass --
2989  ///
2990 
2992  {
2994  public:
2995  // constructor
2997  // destructor
2999 
3000  // type info
3002 
3003 
3004  /// Choice variants.
3005  enum E_Choice {
3006  e_not_set = 0, ///< No variant selected
3010  e_Laplacian
3011  };
3012  /// Maximum+1 value of the choice variant enumerator.
3014  e_MaxChoice = 5 ///< == e_Laplacian+1
3015  };
3016 
3017  /// Reset the whole object
3018  void Reset(void);
3019 
3020  /// Reset the selection (set it to e_not_set).
3021  void ResetSelection(void);
3022 
3023  /// Which variant is currently selected.
3024  ///
3025  /// @return
3026  /// Choice state enumerator.
3027  E_Choice Which(void) const;
3028 
3029  /// Verify selection, throw exception if it differs from the expected.
3030  ///
3031  /// @param index
3032  /// Expected selection.
3033  void CheckSelected(E_Choice index) const;
3034 
3035  /// Throw 'InvalidSelection' exception.
3036  ///
3037  /// @param index
3038  /// Expected selection.
3039  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
3040 
3041  /// Retrieve selection name (for diagnostic purposes).
3042  ///
3043  /// @param index
3044  /// One of possible selection states.
3045  /// @return
3046  /// Name string.
3047  static string SelectionName(E_Choice index);
3048 
3049  /// Select the requested variant if needed.
3050  ///
3051  /// @param index
3052  /// New selection state.
3053  /// @param reset
3054  /// Flag that defines the resetting of the variant data. The data will
3055  /// be reset if either the current selection differs from the new one,
3056  /// or the flag is set to eDoResetVariant.
3058  /// Select the requested variant if needed,
3059  /// allocating CObject variants from memory pool.
3060  void Select(E_Choice index,
3061  EResetVariant reset,
3062  CObjectMemoryPool* pool);
3063 
3064  // types
3066  typedef CGrad TGrad;
3067  typedef CCurl TCurl;
3069 
3070  // getters
3071  // setters
3072 
3073 
3074  /// Check if variant Divergence is selected.
3075  ///
3076  /// Divergence type is defined as 'typedef CDivergence TDivergence'.
3077  /// @return
3078  /// - true, if the variant is selected.
3079  /// - false, otherwise.
3080  bool IsDivergence(void) const;
3081 
3082  /// Get the variant data.
3083  ///
3084  /// @return
3085  /// Reference to the data.
3086  const TDivergence& GetDivergence(void) const;
3087 
3088  /// Select the variant.
3089  ///
3090  /// @return
3091  /// Reference to the variant data.
3092  TDivergence& SetDivergence(void);
3093 
3094 
3095  /// Check if variant Grad is selected.
3096  ///
3097  /// Grad type is defined as 'typedef CGrad TGrad'.
3098  /// @return
3099  /// - true, if the variant is selected.
3100  /// - false, otherwise.
3101  bool IsGrad(void) const;
3102 
3103  /// Get the variant data.
3104  ///
3105  /// @return
3106  /// Reference to the data.
3107  const TGrad& GetGrad(void) const;
3108 
3109  /// Select the variant.
3110  ///
3111  /// @return
3112  /// Reference to the variant data.
3113  TGrad& SetGrad(void);
3114 
3115 
3116  /// Check if variant Curl is selected.
3117  ///
3118  /// Curl type is defined as 'typedef CCurl TCurl'.
3119  /// @return
3120  /// - true, if the variant is selected.
3121  /// - false, otherwise.
3122  bool IsCurl(void) const;
3123 
3124  /// Get the variant data.
3125  ///
3126  /// @return
3127  /// Reference to the data.
3128  const TCurl& GetCurl(void) const;
3129 
3130  /// Select the variant.
3131  ///
3132  /// @return
3133  /// Reference to the variant data.
3134  TCurl& SetCurl(void);
3135 
3136 
3137  /// Check if variant Laplacian is selected.
3138  ///
3139  /// Laplacian type is defined as 'typedef CLaplacian TLaplacian'.
3140  /// @return
3141  /// - true, if the variant is selected.
3142  /// - false, otherwise.
3143  bool IsLaplacian(void) const;
3144 
3145  /// Get the variant data.
3146  ///
3147  /// @return
3148  /// Reference to the data.
3149  const TLaplacian& GetLaplacian(void) const;
3150 
3151  /// Select the variant.
3152  ///
3153  /// @return
3154  /// Reference to the variant data.
3155  TLaplacian& SetLaplacian(void);
3156 
3157 
3158  private:
3159  // copy constructor and assignment operator
3162  // choice state
3164  // helper methods
3165  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
3166 
3167  static const char* const sm_SelectionNames[];
3168  // data
3169  NCBI_NS_NCBI::CSerialObject *m_object;
3170  };
3171  /////////////////////////////////////////////////////////////////////////////
3172  ///
3173  /// C_Nary_setlist_constructor_mmlclass --
3174  ///
3175 
3177  {
3179  public:
3180  // constructor
3182  // destructor
3184 
3185  // type info
3187 
3188 
3189  /// Choice variants.
3190  enum E_Choice {
3191  e_not_set = 0, ///< No variant selected
3193  e_List
3194  };
3195  /// Maximum+1 value of the choice variant enumerator.
3197  e_MaxChoice = 3 ///< == e_List+1
3198  };
3199 
3200  /// Reset the whole object
3201  void Reset(void);
3202 
3203  /// Reset the selection (set it to e_not_set).
3204  void ResetSelection(void);
3205 
3206  /// Which variant is currently selected.
3207  ///
3208  /// @return
3209  /// Choice state enumerator.
3210  E_Choice Which(void) const;
3211 
3212  /// Verify selection, throw exception if it differs from the expected.
3213  ///
3214  /// @param index
3215  /// Expected selection.
3216  void CheckSelected(E_Choice index) const;
3217 
3218  /// Throw 'InvalidSelection' exception.
3219  ///
3220  /// @param index
3221  /// Expected selection.
3222  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
3223 
3224  /// Retrieve selection name (for diagnostic purposes).
3225  ///
3226  /// @param index
3227  /// One of possible selection states.
3228  /// @return
3229  /// Name string.
3230  static string SelectionName(E_Choice index);
3231 
3232  /// Select the requested variant if needed.
3233  ///
3234  /// @param index
3235  /// New selection state.
3236  /// @param reset
3237  /// Flag that defines the resetting of the variant data. The data will
3238  /// be reset if either the current selection differs from the new one,
3239  /// or the flag is set to eDoResetVariant.
3241  /// Select the requested variant if needed,
3242  /// allocating CObject variants from memory pool.
3243  void Select(E_Choice index,
3244  EResetVariant reset,
3245  CObjectMemoryPool* pool);
3246 
3247  // types
3248  typedef CSet TSet;
3249  typedef CList TList;
3250 
3251  // getters
3252  // setters
3253 
3254 
3255  /// Check if variant Set is selected.
3256  ///
3257  /// Set type is defined as 'typedef CSet TSet'.
3258  /// @return
3259  /// - true, if the variant is selected.
3260  /// - false, otherwise.
3261  bool IsSet(void) const;
3262 
3263  /// Get the variant data.
3264  ///
3265  /// @return
3266  /// Reference to the data.
3267  const TSet& GetSet(void) const;
3268 
3269  /// Select the variant.
3270  ///
3271  /// @return
3272  /// Reference to the variant data.
3273  TSet& SetSet(void);
3274  /// Select the variant and set its data.
3275  ///
3276  /// @param value
3277  /// Reference to the data.
3278  void SetSet(TSet& value);
3279 
3280 
3281  /// Check if variant List is selected.
3282  ///
3283  /// List type is defined as 'typedef CList TList'.
3284  /// @return
3285  /// - true, if the variant is selected.
3286  /// - false, otherwise.
3287  bool IsList(void) const;
3288 
3289  /// Get the variant data.
3290  ///
3291  /// @return
3292  /// Reference to the data.
3293  const TList& GetList(void) const;
3294 
3295  /// Select the variant.
3296  ///
3297  /// @return
3298  /// Reference to the variant data.
3299  TList& SetList(void);
3300  /// Select the variant and set its data.
3301  ///
3302  /// @param value
3303  /// Reference to the data.
3304  void SetList(TList& value);
3305 
3306 
3307  private:
3308  // copy constructor and assignment operator
3311  // choice state
3313  // helper methods
3314  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
3315 
3316  static const char* const sm_SelectionNames[];
3317  // data
3318  NCBI_NS_NCBI::CSerialObject *m_object;
3319  };
3320  /////////////////////////////////////////////////////////////////////////////
3321  ///
3322  /// C_Nary_set_mmlclass --
3323  ///
3324 
3326  {
3328  public:
3329  // constructor
3330  C_Nary_set_mmlclass(void);
3331  // destructor
3332  ~C_Nary_set_mmlclass(void);
3333 
3334  // type info
3336 
3337 
3338  /// Choice variants.
3339  enum E_Choice {
3340  e_not_set = 0, ///< No variant selected
3344  };
3345  /// Maximum+1 value of the choice variant enumerator.
3347  e_MaxChoice = 4 ///< == e_Cartesianproduct+1
3348  };
3349 
3350  /// Reset the whole object
3351  void Reset(void);
3352 
3353  /// Reset the selection (set it to e_not_set).
3354  void ResetSelection(void);
3355 
3356  /// Which variant is currently selected.
3357  ///
3358  /// @return
3359  /// Choice state enumerator.
3360  E_Choice Which(void) const;
3361 
3362  /// Verify selection, throw exception if it differs from the expected.
3363  ///
3364  /// @param index
3365  /// Expected selection.
3366  void CheckSelected(E_Choice index) const;
3367 
3368  /// Throw 'InvalidSelection' exception.
3369  ///
3370  /// @param index
3371  /// Expected selection.
3372  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
3373 
3374  /// Retrieve selection name (for diagnostic purposes).
3375  ///
3376  /// @param index
3377  /// One of possible selection states.
3378  /// @return
3379  /// Name string.
3380  static string SelectionName(E_Choice index);
3381 
3382  /// Select the requested variant if needed.
3383  ///
3384  /// @param index
3385  /// New selection state.
3386  /// @param reset
3387  /// Flag that defines the resetting of the variant data. The data will
3388  /// be reset if either the current selection differs from the new one,
3389  /// or the flag is set to eDoResetVariant.
3391  /// Select the requested variant if needed,
3392  /// allocating CObject variants from memory pool.
3393  void Select(E_Choice index,
3394  EResetVariant reset,
3395  CObjectMemoryPool* pool);
3396 
3397  // types
3398  typedef CUnion TUnion;
3401 
3402  // getters
3403  // setters
3404 
3405 
3406  /// Check if variant Union is selected.
3407  ///
3408  /// Union type is defined as 'typedef CUnion TUnion'.
3409  /// @return
3410  /// - true, if the variant is selected.
3411  /// - false, otherwise.
3412  bool IsUnion(void) const;
3413 
3414  /// Get the variant data.
3415  ///
3416  /// @return
3417  /// Reference to the data.
3418  const TUnion& GetUnion(void) const;
3419 
3420  /// Select the variant.
3421  ///
3422  /// @return
3423  /// Reference to the variant data.
3424  TUnion& SetUnion(void);
3425 
3426 
3427  /// Check if variant Intersect is selected.
3428  ///
3429  /// Intersect type is defined as 'typedef CIntersect TIntersect'.
3430  /// @return
3431  /// - true, if the variant is selected.
3432  /// - false, otherwise.
3433  bool IsIntersect(void) const;
3434 
3435  /// Get the variant data.
3436  ///
3437  /// @return
3438  /// Reference to the data.
3439  const TIntersect& GetIntersect(void) const;
3440 
3441  /// Select the variant.
3442  ///
3443  /// @return
3444  /// Reference to the variant data.
3445  TIntersect& SetIntersect(void);
3446 
3447 
3448  /// Check if variant Cartesianproduct is selected.
3449  ///
3450  /// Cartesianproduct type is defined as 'typedef CCartesianproduct TCartesianproduct'.
3451  /// @return
3452  /// - true, if the variant is selected.
3453  /// - false, otherwise.
3454  bool IsCartesianproduct(void) const;
3455 
3456  /// Get the variant data.
3457  ///
3458  /// @return
3459  /// Reference to the data.
3460  const TCartesianproduct& GetCartesianproduct(void) const;
3461 
3462  /// Select the variant.
3463  ///
3464  /// @return
3465  /// Reference to the variant data.
3467 
3468 
3469  private:
3470  // copy constructor and assignment operator
3473  // choice state
3475  // helper methods
3476  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
3477 
3478  static const char* const sm_SelectionNames[];
3479  // data
3480  NCBI_NS_NCBI::CSerialObject *m_object;
3481  };
3482  /////////////////////////////////////////////////////////////////////////////
3483  ///
3484  /// C_Binary_set_mmlclass --
3485  ///
3486 
3488  {
3490  public:
3491  // constructor
3492  C_Binary_set_mmlclass(void);
3493  // destructor
3494  ~C_Binary_set_mmlclass(void);
3495 
3496  // type info
3498 
3499 
3500  /// Choice variants.
3501  enum E_Choice {
3502  e_not_set = 0, ///< No variant selected
3507  e_Setdiff
3508  };
3509  /// Maximum+1 value of the choice variant enumerator.
3511  e_MaxChoice = 6 ///< == e_Setdiff+1
3512  };
3513 
3514  /// Reset the whole object
3515  void Reset(void);
3516 
3517  /// Reset the selection (set it to e_not_set).
3518  void ResetSelection(void);
3519 
3520  /// Which variant is currently selected.
3521  ///
3522  /// @return
3523  /// Choice state enumerator.
3524  E_Choice Which(void) const;
3525 
3526  /// Verify selection, throw exception if it differs from the expected.
3527  ///
3528  /// @param index
3529  /// Expected selection.
3530  void CheckSelected(E_Choice index) const;
3531 
3532  /// Throw 'InvalidSelection' exception.
3533  ///
3534  /// @param index
3535  /// Expected selection.
3536  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
3537 
3538  /// Retrieve selection name (for diagnostic purposes).
3539  ///
3540  /// @param index
3541  /// One of possible selection states.
3542  /// @return
3543  /// Name string.
3544  static string SelectionName(E_Choice index);
3545 
3546  /// Select the requested variant if needed.
3547  ///
3548  /// @param index
3549  /// New selection state.
3550  /// @param reset
3551  /// Flag that defines the resetting of the variant data. The data will
3552  /// be reset if either the current selection differs from the new one,
3553  /// or the flag is set to eDoResetVariant.
3555  /// Select the requested variant if needed,
3556  /// allocating CObject variants from memory pool.
3557  void Select(E_Choice index,
3558  EResetVariant reset,
3559  CObjectMemoryPool* pool);
3560 
3561  // types
3562  typedef CIn TIn;
3563  typedef CNotin TNotin;
3567 
3568  // getters
3569  // setters
3570 
3571 
3572  /// Check if variant In is selected.
3573  ///
3574  /// In type is defined as 'typedef CIn TIn'.
3575  /// @return
3576  /// - true, if the variant is selected.
3577  /// - false, otherwise.
3578  bool IsIn(void) const;
3579 
3580  /// Get the variant data.
3581  ///
3582  /// @return
3583  /// Reference to the data.
3584  const TIn& GetIn(void) const;
3585 
3586  /// Select the variant.
3587  ///
3588  /// @return
3589  /// Reference to the variant data.
3590  TIn& SetIn(void);
3591 
3592 
3593  /// Check if variant Notin is selected.
3594  ///
3595  /// Notin type is defined as 'typedef CNotin TNotin'.
3596  /// @return
3597  /// - true, if the variant is selected.
3598  /// - false, otherwise.
3599  bool IsNotin(void) const;
3600 
3601  /// Get the variant data.
3602  ///
3603  /// @return
3604  /// Reference to the data.
3605  const TNotin& GetNotin(void) const;
3606 
3607  /// Select the variant.
3608  ///
3609  /// @return
3610  /// Reference to the variant data.
3611  TNotin& SetNotin(void);
3612 
3613 
3614  /// Check if variant Notsubset is selected.
3615  ///
3616  /// Notsubset type is defined as 'typedef CNotsubset TNotsubset'.
3617  /// @return
3618  /// - true, if the variant is selected.
3619  /// - false, otherwise.
3620  bool IsNotsubset(void) const;
3621 
3622  /// Get the variant data.
3623  ///
3624  /// @return
3625  /// Reference to the data.
3626  const TNotsubset& GetNotsubset(void) const;
3627 
3628  /// Select the variant.
3629  ///
3630  /// @return
3631  /// Reference to the variant data.
3632  TNotsubset& SetNotsubset(void);
3633 
3634 
3635  /// Check if variant Notprsubset is selected.
3636  ///
3637  /// Notprsubset type is defined as 'typedef CNotprsubset TNotprsubset'.
3638  /// @return
3639  /// - true, if the variant is selected.
3640  /// - false, otherwise.
3641  bool IsNotprsubset(void) const;
3642 
3643  /// Get the variant data.
3644  ///
3645  /// @return
3646  /// Reference to the data.
3647  const TNotprsubset& GetNotprsubset(void) const;
3648 
3649  /// Select the variant.
3650  ///
3651  /// @return
3652  /// Reference to the variant data.
3654 
3655 
3656  /// Check if variant Setdiff is selected.
3657  ///
3658  /// Setdiff type is defined as 'typedef CSetdiff TSetdiff'.
3659  /// @return
3660  /// - true, if the variant is selected.
3661  /// - false, otherwise.
3662  bool IsSetdiff(void) const;
3663 
3664  /// Get the variant data.
3665  ///
3666  /// @return
3667  /// Reference to the data.
3668  const TSetdiff& GetSetdiff(void) const;
3669 
3670  /// Select the variant.
3671  ///
3672  /// @return
3673  /// Reference to the variant data.
3674  TSetdiff& SetSetdiff(void);
3675 
3676 
3677  private:
3678  // copy constructor and assignment operator
3681  // choice state
3683  // helper methods
3684  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
3685 
3686  static const char* const sm_SelectionNames[];
3687  // data
3688  NCBI_NS_NCBI::CSerialObject *m_object;
3689  };
3690  /////////////////////////////////////////////////////////////////////////////
3691  ///
3692  /// C_Nary_set_reln_mmlclass --
3693  ///
3694 
3696  {
3698  public:
3699  // constructor
3701  // destructor
3703 
3704  // type info
3706 
3707 
3708  /// Choice variants.
3709  enum E_Choice {
3710  e_not_set = 0, ///< No variant selected
3712  e_Prsubset
3713  };
3714  /// Maximum+1 value of the choice variant enumerator.
3716  e_MaxChoice = 3 ///< == e_Prsubset+1
3717  };
3718 
3719  /// Reset the whole object
3720  void Reset(void);
3721 
3722  /// Reset the selection (set it to e_not_set).
3723  void ResetSelection(void);
3724 
3725  /// Which variant is currently selected.
3726  ///
3727  /// @return
3728  /// Choice state enumerator.
3729  E_Choice Which(void) const;
3730 
3731  /// Verify selection, throw exception if it differs from the expected.
3732  ///
3733  /// @param index
3734  /// Expected selection.
3735  void CheckSelected(E_Choice index) const;
3736 
3737  /// Throw 'InvalidSelection' exception.
3738  ///
3739  /// @param index
3740  /// Expected selection.
3741  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
3742 
3743  /// Retrieve selection name (for diagnostic purposes).
3744  ///
3745  /// @param index
3746  /// One of possible selection states.
3747  /// @return
3748  /// Name string.
3749  static string SelectionName(E_Choice index);
3750 
3751  /// Select the requested variant if needed.
3752  ///
3753  /// @param index
3754  /// New selection state.
3755  /// @param reset
3756  /// Flag that defines the resetting of the variant data. The data will
3757  /// be reset if either the current selection differs from the new one,
3758  /// or the flag is set to eDoResetVariant.
3760  /// Select the requested variant if needed,
3761  /// allocating CObject variants from memory pool.
3762  void Select(E_Choice index,
3763  EResetVariant reset,
3764  CObjectMemoryPool* pool);
3765 
3766  // types
3767  typedef CSubset TSubset;
3769 
3770  // getters
3771  // setters
3772 
3773 
3774  /// Check if variant Subset is selected.
3775  ///
3776  /// Subset type is defined as 'typedef CSubset TSubset'.
3777  /// @return
3778  /// - true, if the variant is selected.
3779  /// - false, otherwise.
3780  bool IsSubset(void) const;
3781 
3782  /// Get the variant data.
3783  ///
3784  /// @return
3785  /// Reference to the data.
3786  const TSubset& GetSubset(void) const;
3787 
3788  /// Select the variant.
3789  ///
3790  /// @return
3791  /// Reference to the variant data.
3792  TSubset& SetSubset(void);
3793 
3794 
3795  /// Check if variant Prsubset is selected.
3796  ///
3797  /// Prsubset type is defined as 'typedef CPrsubset TPrsubset'.
3798  /// @return
3799  /// - true, if the variant is selected.
3800  /// - false, otherwise.
3801  bool IsPrsubset(void) const;
3802 
3803  /// Get the variant data.
3804  ///
3805  /// @return
3806  /// Reference to the data.
3807  const TPrsubset& GetPrsubset(void) const;
3808 
3809  /// Select the variant.
3810  ///
3811  /// @return
3812  /// Reference to the variant data.
3813  TPrsubset& SetPrsubset(void);
3814 
3815 
3816  private:
3817  // copy constructor and assignment operator
3820  // choice state
3822  // helper methods
3823  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
3824 
3825  static const char* const sm_SelectionNames[];
3826  // data
3827  NCBI_NS_NCBI::CSerialObject *m_object;
3828  };
3829  /////////////////////////////////////////////////////////////////////////////
3830  ///
3831  /// C_Unary_set_mmlclass --
3832  ///
3833 
3835  {
3837  public:
3838  // constructor
3839  C_Unary_set_mmlclass(void);
3840  // destructor
3841  ~C_Unary_set_mmlclass(void);
3842 
3843  // type info
3845 
3846  // types
3847  typedef CCard TCard;
3848 
3849  // member index
3850  enum class E_memberIndex {
3851  e__allMandatory = 0,
3852  e_card
3853  };
3855 
3856  // getters
3857  // setters
3858 
3859  /// Check if a value has been assigned to Card data member.
3860  ///
3861  /// Data member Card is mandatory;
3862  /// its type is defined as 'typedef CCard TCard'
3863  /// @return
3864  /// - true, if a value has been assigned.
3865  /// - false, otherwise.
3866  bool IsSetCard(void) const;
3867 
3868  /// Check if value of Card member is getatable.
3869  ///
3870  /// @return
3871  /// - false; the data member of type 'NULL' has no value.
3872  bool CanGetCard(void) const;
3873 
3874  /// Reset Card data member.
3875  void ResetCard(void);
3876 
3877  /// Get the Card member data.
3878  ///
3879  /// @return
3880  /// Reference to the member data.
3881  const TCard& GetCard(void) const;
3882 
3883  /// Assign a value to Card data member.
3884  ///
3885  /// @param value
3886  /// Reference to value.
3887  void SetCard(TCard& value);
3888 
3889  /// Assign a value to Card data member.
3890  ///
3891  /// @return
3892  /// Reference to the data value.
3893  TCard& SetCard(void);
3894 
3895  /// Reset the whole object
3896  void Reset(void);
3897 
3898 
3899  private:
3900  // Prohibit copy constructor and assignment operator
3903 
3904  // data
3907  };
3908  /////////////////////////////////////////////////////////////////////////////
3909  ///
3910  /// C_Sum_mmlclass --
3911  ///
3912 
3914  {
3916  public:
3917  // constructor
3918  C_Sum_mmlclass(void);
3919  // destructor
3920  ~C_Sum_mmlclass(void);
3921 
3922  // type info
3924 
3925  // types
3926  typedef CSum TSum;
3927 
3928  // member index
3929  enum class E_memberIndex {
3930  e__allMandatory = 0,
3931  e_sum
3932  };
3934 
3935  // getters
3936  // setters
3937 
3938  /// Check if a value has been assigned to Sum data member.
3939  ///
3940  /// Data member Sum is mandatory;
3941  /// its type is defined as 'typedef CSum TSum'
3942  /// @return
3943  /// - true, if a value has been assigned.
3944  /// - false, otherwise.
3945  bool IsSetSum(void) const;
3946 
3947  /// Check if value of Sum member is getatable.
3948  ///
3949  /// @return
3950  /// - false; the data member of type 'NULL' has no value.
3951  bool CanGetSum(void) const;
3952 
3953  /// Reset Sum data member.
3954  void ResetSum(void);
3955 
3956  /// Get the Sum member data.
3957  ///
3958  /// @return
3959  /// Reference to the member data.
3960  const TSum& GetSum(void) const;
3961 
3962  /// Assign a value to Sum data member.
3963  ///
3964  /// @param value
3965  /// Reference to value.
3966  void SetSum(TSum& value);
3967 
3968  /// Assign a value to Sum data member.
3969  ///
3970  /// @return
3971  /// Reference to the data value.
3972  TSum& SetSum(void);
3973 
3974  /// Reset the whole object
3975  void Reset(void);
3976 
3977 
3978  private:
3979  // Prohibit copy constructor and assignment operator
3982 
3983  // data
3986  };
3987  /////////////////////////////////////////////////////////////////////////////
3988  ///
3989  /// C_Product_mmlclass --
3990  ///
3991 
3993  {
3995  public:
3996  // constructor
3997  C_Product_mmlclass(void);
3998  // destructor
3999  ~C_Product_mmlclass(void);
4000 
4001  // type info
4003 
4004  // types
4006 
4007  // member index
4008  enum class E_memberIndex {
4009  e__allMandatory = 0,
4010  e_product
4011  };
4013 
4014  // getters
4015  // setters
4016 
4017  /// Check if a value has been assigned to Product data member.
4018  ///
4019  /// Data member Product is mandatory;
4020  /// its type is defined as 'typedef CProduct TProduct'
4021  /// @return
4022  /// - true, if a value has been assigned.
4023  /// - false, otherwise.
4024  bool IsSetProduct(void) const;
4025 
4026  /// Check if value of Product member is getatable.
4027  ///
4028  /// @return
4029  /// - false; the data member of type 'NULL' has no value.
4030  bool CanGetProduct(void) const;
4031 
4032  /// Reset Product data member.
4033  void ResetProduct(void);
4034 
4035  /// Get the Product member data.
4036  ///
4037  /// @return
4038  /// Reference to the member data.
4039  const TProduct& GetProduct(void) const;
4040 
4041  /// Assign a value to Product data member.
4042  ///
4043  /// @param value
4044  /// Reference to value.
4045  void SetProduct(TProduct& value);
4046 
4047  /// Assign a value to Product data member.
4048  ///
4049  /// @return
4050  /// Reference to the data value.
4051  TProduct& SetProduct(void);
4052 
4053  /// Reset the whole object
4054  void Reset(void);
4055 
4056 
4057  private:
4058  // Prohibit copy constructor and assignment operator
4061 
4062  // data
4065  };
4066  /////////////////////////////////////////////////////////////////////////////
4067  ///
4068  /// C_Limit_mmlclass --
4069  ///
4070 
4072  {
4074  public:
4075  // constructor
4076  C_Limit_mmlclass(void);
4077  // destructor
4078  ~C_Limit_mmlclass(void);
4079 
4080  // type info
4082 
4083  // types
4084  typedef CLimit TLimit;
4085 
4086  // member index
4087  enum class E_memberIndex {
4088  e__allMandatory = 0,
4089  e_limit
4090  };
4092 
4093  // getters
4094  // setters
4095 
4096  /// Check if a value has been assigned to Limit data member.
4097  ///
4098  /// Data member Limit is mandatory;
4099  /// its type is defined as 'typedef CLimit TLimit'
4100  /// @return
4101  /// - true, if a value has been assigned.
4102  /// - false, otherwise.
4103  bool IsSetLimit(void) const;
4104 
4105  /// Check if value of Limit member is getatable.
4106  ///
4107  /// @return
4108  /// - false; the data member of type 'NULL' has no value.
4109  bool CanGetLimit(void) const;
4110 
4111  /// Reset Limit data member.
4112  void ResetLimit(void);
4113 
4114  /// Get the Limit member data.
4115  ///
4116  /// @return
4117  /// Reference to the member data.
4118  const TLimit& GetLimit(void) const;
4119 
4120  /// Assign a value to Limit data member.
4121  ///
4122  /// @param value
4123  /// Reference to value.
4124  void SetLimit(TLimit& value);
4125 
4126  /// Assign a value to Limit data member.
4127  ///
4128  /// @return
4129  /// Reference to the data value.
4130  TLimit& SetLimit(void);
4131 
4132  /// Reset the whole object
4133  void Reset(void);
4134 
4135 
4136  private:
4137  // Prohibit copy constructor and assignment operator
4140 
4141  // data
4144  };
4145  /////////////////////////////////////////////////////////////////////////////
4146  ///
4147  /// C_Unary_elementary_mmlclass --
4148  ///
4149 
4151  {
4153  public:
4154  // constructor
4156  // destructor
4158 
4159  // type info
4161 
4162 
4163  /// Choice variants.
4164  enum E_Choice {
4165  e_not_set = 0, ///< No variant selected
4189  e_Arctanh
4190  };
4191  /// Maximum+1 value of the choice variant enumerator.
4193  e_MaxChoice = 25 ///< == e_Arctanh+1
4194  };
4195 
4196  /// Reset the whole object
4197  void Reset(void);
4198 
4199  /// Reset the selection (set it to e_not_set).
4200  void ResetSelection(void);
4201 
4202  /// Which variant is currently selected.
4203  ///
4204  /// @return
4205  /// Choice state enumerator.
4206  E_Choice Which(void) const;
4207 
4208  /// Verify selection, throw exception if it differs from the expected.
4209  ///
4210  /// @param index
4211  /// Expected selection.
4212  void CheckSelected(E_Choice index) const;
4213 
4214  /// Throw 'InvalidSelection' exception.
4215  ///
4216  /// @param index
4217  /// Expected selection.
4218  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
4219 
4220  /// Retrieve selection name (for diagnostic purposes).
4221  ///
4222  /// @param index
4223  /// One of possible selection states.
4224  /// @return
4225  /// Name string.
4226  static string SelectionName(E_Choice index);
4227 
4228  /// Select the requested variant if needed.
4229  ///
4230  /// @param index
4231  /// New selection state.
4232  /// @param reset
4233  /// Flag that defines the resetting of the variant data. The data will
4234  /// be reset if either the current selection differs from the new one,
4235  /// or the flag is set to eDoResetVariant.
4237  /// Select the requested variant if needed,
4238  /// allocating CObject variants from memory pool.
4239  void Select(E_Choice index,
4240  EResetVariant reset,
4241  CObjectMemoryPool* pool);
4242 
4243  // types
4244  typedef CSin TSin;
4245  typedef CCos TCos;
4246  typedef CTan TTan;
4247  typedef CSec TSec;
4248  typedef CCsc TCsc;
4249  typedef CCot TCot;
4250  typedef CSinh TSinh;
4251  typedef CCosh TCosh;
4252  typedef CTanh TTanh;
4253  typedef CSech TSech;
4254  typedef CCsch TCsch;
4255  typedef CCoth TCoth;
4256  typedef CArcsin TArcsin;
4257  typedef CArccos TArccos;
4258  typedef CArctan TArctan;
4260  typedef CArccot TArccot;
4262  typedef CArccsc TArccsc;
4264  typedef CArcsec TArcsec;
4268 
4269  // getters
4270  // setters
4271 
4272 
4273  /// Check if variant Sin is selected.
4274  ///
4275  /// Sin type is defined as 'typedef CSin TSin'.
4276  /// @return
4277  /// - true, if the variant is selected.
4278  /// - false, otherwise.
4279  bool IsSin(void) const;
4280 
4281  /// Get the variant data.
4282  ///
4283  /// @return
4284  /// Reference to the data.
4285  const TSin& GetSin(void) const;
4286 
4287  /// Select the variant.
4288  ///
4289  /// @return
4290  /// Reference to the variant data.
4291  TSin& SetSin(void);
4292 
4293 
4294  /// Check if variant Cos is selected.
4295  ///
4296  /// Cos type is defined as 'typedef CCos TCos'.
4297  /// @return
4298  /// - true, if the variant is selected.
4299  /// - false, otherwise.
4300  bool IsCos(void) const;
4301 
4302  /// Get the variant data.
4303  ///
4304  /// @return
4305  /// Reference to the data.
4306  const TCos& GetCos(void) const;
4307 
4308  /// Select the variant.
4309  ///
4310  /// @return
4311  /// Reference to the variant data.
4312  TCos& SetCos(void);
4313 
4314 
4315  /// Check if variant Tan is selected.
4316  ///
4317  /// Tan type is defined as 'typedef CTan TTan'.
4318  /// @return
4319  /// - true, if the variant is selected.
4320  /// - false, otherwise.
4321  bool IsTan(void) const;
4322 
4323  /// Get the variant data.
4324  ///
4325  /// @return
4326  /// Reference to the data.
4327  const TTan& GetTan(void) const;
4328 
4329  /// Select the variant.
4330  ///
4331  /// @return
4332  /// Reference to the variant data.
4333  TTan& SetTan(void);
4334 
4335 
4336  /// Check if variant Sec is selected.
4337  ///
4338  /// Sec type is defined as 'typedef CSec TSec'.
4339  /// @return
4340  /// - true, if the variant is selected.
4341  /// - false, otherwise.
4342  bool IsSec(void) const;
4343 
4344  /// Get the variant data.
4345  ///
4346  /// @return
4347  /// Reference to the data.
4348  const TSec& GetSec(void) const;
4349 
4350  /// Select the variant.
4351  ///
4352  /// @return
4353  /// Reference to the variant data.
4354  TSec& SetSec(void);
4355 
4356 
4357  /// Check if variant Csc is selected.
4358  ///
4359  /// Csc type is defined as 'typedef CCsc TCsc'.
4360  /// @return
4361  /// - true, if the variant is selected.
4362  /// - false, otherwise.
4363  bool IsCsc(void) const;
4364 
4365  /// Get the variant data.
4366  ///
4367  /// @return
4368  /// Reference to the data.
4369  const TCsc& GetCsc(void) const;
4370 
4371  /// Select the variant.
4372  ///
4373  /// @return
4374  /// Reference to the variant data.
4375  TCsc& SetCsc(void);
4376 
4377 
4378  /// Check if variant Cot is selected.
4379  ///
4380  /// Cot type is defined as 'typedef CCot TCot'.
4381  /// @return
4382  /// - true, if the variant is selected.
4383  /// - false, otherwise.
4384  bool IsCot(void) const;
4385 
4386  /// Get the variant data.
4387  ///
4388  /// @return
4389  /// Reference to the data.
4390  const TCot& GetCot(void) const;
4391 
4392  /// Select the variant.
4393  ///
4394  /// @return
4395  /// Reference to the variant data.
4396  TCot& SetCot(void);
4397 
4398 
4399  /// Check if variant Sinh is selected.
4400  ///
4401  /// Sinh type is defined as 'typedef CSinh TSinh'.
4402  /// @return
4403  /// - true, if the variant is selected.
4404  /// - false, otherwise.
4405  bool IsSinh(void) const;
4406 
4407  /// Get the variant data.
4408  ///
4409  /// @return
4410  /// Reference to the data.
4411  const TSinh& GetSinh(void) const;
4412 
4413  /// Select the variant.
4414  ///
4415  /// @return
4416  /// Reference to the variant data.
4417  TSinh& SetSinh(void);
4418 
4419 
4420  /// Check if variant Cosh is selected.
4421  ///
4422  /// Cosh type is defined as 'typedef CCosh TCosh'.
4423  /// @return
4424  /// - true, if the variant is selected.
4425  /// - false, otherwise.
4426  bool IsCosh(void) const;
4427 
4428  /// Get the variant data.
4429  ///
4430  /// @return
4431  /// Reference to the data.
4432  const TCosh& GetCosh(void) const;
4433 
4434  /// Select the variant.
4435  ///
4436  /// @return
4437  /// Reference to the variant data.
4438  TCosh& SetCosh(void);
4439 
4440 
4441  /// Check if variant Tanh is selected.
4442  ///
4443  /// Tanh type is defined as 'typedef CTanh TTanh'.
4444  /// @return
4445  /// - true, if the variant is selected.
4446  /// - false, otherwise.
4447  bool IsTanh(void) const;
4448 
4449  /// Get the variant data.
4450  ///
4451  /// @return
4452  /// Reference to the data.
4453  const TTanh& GetTanh(void) const;
4454 
4455  /// Select the variant.
4456  ///
4457  /// @return
4458  /// Reference to the variant data.
4459  TTanh& SetTanh(void);
4460 
4461 
4462  /// Check if variant Sech is selected.
4463  ///
4464  /// Sech type is defined as 'typedef CSech TSech'.
4465  /// @return
4466  /// - true, if the variant is selected.
4467  /// - false, otherwise.
4468  bool IsSech(void) const;
4469 
4470  /// Get the variant data.
4471  ///
4472  /// @return
4473  /// Reference to the data.
4474  const TSech& GetSech(void) const;
4475 
4476  /// Select the variant.
4477  ///
4478  /// @return
4479  /// Reference to the variant data.
4480  TSech& SetSech(void);
4481 
4482 
4483  /// Check if variant Csch is selected.
4484  ///
4485  /// Csch type is defined as 'typedef CCsch TCsch'.
4486  /// @return
4487  /// - true, if the variant is selected.
4488  /// - false, otherwise.
4489  bool IsCsch(void) const;
4490 
4491  /// Get the variant data.
4492  ///
4493  /// @return
4494  /// Reference to the data.
4495  const TCsch& GetCsch(void) const;
4496 
4497  /// Select the variant.
4498  ///
4499  /// @return
4500  /// Reference to the variant data.
4501  TCsch& SetCsch(void);
4502 
4503 
4504  /// Check if variant Coth is selected.
4505  ///
4506  /// Coth type is defined as 'typedef CCoth TCoth'.
4507  /// @return
4508  /// - true, if the variant is selected.
4509  /// - false, otherwise.
4510  bool IsCoth(void) const;
4511 
4512  /// Get the variant data.
4513  ///
4514  /// @return
4515  /// Reference to the data.
4516  const TCoth& GetCoth(void) const;
4517 
4518  /// Select the variant.
4519  ///
4520  /// @return
4521  /// Reference to the variant data.
4522  TCoth& SetCoth(void);
4523 
4524 
4525  /// Check if variant Arcsin is selected.
4526  ///
4527  /// Arcsin type is defined as 'typedef CArcsin TArcsin'.
4528  /// @return
4529  /// - true, if the variant is selected.
4530  /// - false, otherwise.
4531  bool IsArcsin(void) const;
4532 
4533  /// Get the variant data.
4534  ///
4535  /// @return
4536  /// Reference to the data.
4537  const TArcsin& GetArcsin(void) const;
4538 
4539  /// Select the variant.
4540  ///
4541  /// @return
4542  /// Reference to the variant data.
4543  TArcsin& SetArcsin(void);
4544 
4545 
4546  /// Check if variant Arccos is selected.
4547  ///
4548  /// Arccos type is defined as 'typedef CArccos TArccos'.
4549  /// @return
4550  /// - true, if the variant is selected.
4551  /// - false, otherwise.
4552  bool IsArccos(void) const;
4553 
4554  /// Get the variant data.
4555  ///
4556  /// @return
4557  /// Reference to the data.
4558  const TArccos& GetArccos(void) const;
4559 
4560  /// Select the variant.
4561  ///
4562  /// @return
4563  /// Reference to the variant data.
4564  TArccos& SetArccos(void);
4565 
4566 
4567  /// Check if variant Arctan is selected.
4568  ///
4569  /// Arctan type is defined as 'typedef CArctan TArctan'.
4570  /// @return
4571  /// - true, if the variant is selected.
4572  /// - false, otherwise.
4573  bool IsArctan(void) const;
4574 
4575  /// Get the variant data.
4576  ///
4577  /// @return
4578  /// Reference to the data.
4579  const TArctan& GetArctan(void) const;
4580 
4581  /// Select the variant.
4582  ///
4583  /// @return
4584  /// Reference to the variant data.
4585  TArctan& SetArctan(void);
4586 
4587 
4588  /// Check if variant Arccosh is selected.
4589  ///
4590  /// Arccosh type is defined as 'typedef CArccosh TArccosh'.
4591  /// @return
4592  /// - true, if the variant is selected.
4593  /// - false, otherwise.
4594  bool IsArccosh(void) const;
4595 
4596  /// Get the variant data.
4597  ///
4598  /// @return
4599  /// Reference to the data.
4600  const TArccosh& GetArccosh(void) const;
4601 
4602  /// Select the variant.
4603  ///
4604  /// @return
4605  /// Reference to the variant data.
4606  TArccosh& SetArccosh(void);
4607 
4608 
4609  /// Check if variant Arccot is selected.
4610  ///
4611  /// Arccot type is defined as 'typedef CArccot TArccot'.
4612  /// @return
4613  /// - true, if the variant is selected.
4614  /// - false, otherwise.
4615  bool IsArccot(void) const;
4616 
4617  /// Get the variant data.
4618  ///
4619  /// @return
4620  /// Reference to the data.
4621  const TArccot& GetArccot(void) const;
4622 
4623  /// Select the variant.
4624  ///
4625  /// @return
4626  /// Reference to the variant data.
4627  TArccot& SetArccot(void);
4628 
4629 
4630  /// Check if variant Arccoth is selected.
4631  ///
4632  /// Arccoth type is defined as 'typedef CArccoth TArccoth'.
4633  /// @return
4634  /// - true, if the variant is selected.
4635  /// - false, otherwise.
4636  bool IsArccoth(void) const;
4637 
4638  /// Get the variant data.
4639  ///
4640  /// @return
4641  /// Reference to the data.
4642  const TArccoth& GetArccoth(void) const;
4643 
4644  /// Select the variant.
4645  ///
4646  /// @return
4647  /// Reference to the variant data.
4648  TArccoth& SetArccoth(void);
4649 
4650 
4651  /// Check if variant Arccsc is selected.
4652  ///
4653  /// Arccsc type is defined as 'typedef CArccsc TArccsc'.
4654  /// @return
4655  /// - true, if the variant is selected.
4656  /// - false, otherwise.
4657  bool IsArccsc(void) const;
4658 
4659  /// Get the variant data.
4660  ///
4661  /// @return
4662  /// Reference to the data.
4663  const TArccsc& GetArccsc(void) const;
4664 
4665  /// Select the variant.
4666  ///
4667  /// @return
4668  /// Reference to the variant data.
4669  TArccsc& SetArccsc(void);
4670 
4671 
4672  /// Check if variant Arccsch is selected.
4673  ///
4674  /// Arccsch type is defined as 'typedef CArccsch TArccsch'.
4675  /// @return
4676  /// - true, if the variant is selected.
4677  /// - false, otherwise.
4678  bool IsArccsch(void) const;
4679 
4680  /// Get the variant data.
4681  ///
4682  /// @return
4683  /// Reference to the data.
4684  const TArccsch& GetArccsch(void) const;
4685 
4686  /// Select the variant.
4687  ///
4688  /// @return
4689  /// Reference to the variant data.
4690  TArccsch& SetArccsch(void);
4691 
4692 
4693  /// Check if variant Arcsec is selected.
4694  ///
4695  /// Arcsec type is defined as 'typedef CArcsec TArcsec'.
4696  /// @return
4697  /// - true, if the variant is selected.
4698  /// - false, otherwise.
4699  bool IsArcsec(void) const;
4700 
4701  /// Get the variant data.
4702  ///
4703  /// @return
4704  /// Reference to the data.
4705  const TArcsec& GetArcsec(void) const;
4706 
4707  /// Select the variant.
4708  ///
4709  /// @return
4710  /// Reference to the variant data.
4711  TArcsec& SetArcsec(void);
4712 
4713 
4714  /// Check if variant Arcsech is selected.
4715  ///
4716  /// Arcsech type is defined as 'typedef CArcsech TArcsech'.
4717  /// @return
4718  /// - true, if the variant is selected.
4719  /// - false, otherwise.
4720  bool IsArcsech(void) const;
4721 
4722  /// Get the variant data.
4723  ///
4724  /// @return
4725  /// Reference to the data.
4726  const TArcsech& GetArcsech(void) const;
4727 
4728  /// Select the variant.
4729  ///
4730  /// @return
4731  /// Reference to the variant data.
4732  TArcsech& SetArcsech(void);
4733 
4734 
4735  /// Check if variant Arcsinh is selected.
4736  ///
4737  /// Arcsinh type is defined as 'typedef CArcsinh TArcsinh'.
4738  /// @return
4739  /// - true, if the variant is selected.
4740  /// - false, otherwise.
4741  bool IsArcsinh(void) const;
4742 
4743  /// Get the variant data.
4744  ///
4745  /// @return
4746  /// Reference to the data.
4747  const TArcsinh& GetArcsinh(void) const;
4748 
4749  /// Select the variant.
4750  ///
4751  /// @return
4752  /// Reference to the variant data.
4753  TArcsinh& SetArcsinh(void);
4754 
4755 
4756  /// Check if variant Arctanh is selected.
4757  ///
4758  /// Arctanh type is defined as 'typedef CArctanh TArctanh'.
4759  /// @return
4760  /// - true, if the variant is selected.
4761  /// - false, otherwise.
4762  bool IsArctanh(void) const;
4763 
4764  /// Get the variant data.
4765  ///
4766  /// @return
4767  /// Reference to the data.
4768  const TArctanh& GetArctanh(void) const;
4769 
4770  /// Select the variant.
4771  ///
4772  /// @return
4773  /// Reference to the variant data.
4774  TArctanh& SetArctanh(void);
4775 
4776 
4777  private:
4778  // copy constructor and assignment operator
4781  // choice state
4783  // helper methods
4784  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
4785 
4786  static const char* const sm_SelectionNames[];
4787  // data
4788  NCBI_NS_NCBI::CSerialObject *m_object;
4789  };
4790  /////////////////////////////////////////////////////////////////////////////
4791  ///
4792  /// C_Nary_stats_mmlclass --
4793  ///
4794 
4796  {
4798  public:
4799  // constructor
4800  C_Nary_stats_mmlclass(void);
4801  // destructor
4802  ~C_Nary_stats_mmlclass(void);
4803 
4804  // type info
4806 
4807 
4808  /// Choice variants.
4809  enum E_Choice {
4810  e_not_set = 0, ///< No variant selected
4815  e_Mode
4816  };
4817  /// Maximum+1 value of the choice variant enumerator.
4819  e_MaxChoice = 6 ///< == e_Mode+1
4820  };
4821 
4822  /// Reset the whole object
4823  void Reset(void);
4824 
4825  /// Reset the selection (set it to e_not_set).
4826  void ResetSelection(void);
4827 
4828  /// Which variant is currently selected.
4829  ///
4830  /// @return
4831  /// Choice state enumerator.
4832  E_Choice Which(void) const;
4833 
4834  /// Verify selection, throw exception if it differs from the expected.
4835  ///
4836  /// @param index
4837  /// Expected selection.
4838  void CheckSelected(E_Choice index) const;
4839 
4840  /// Throw 'InvalidSelection' exception.
4841  ///
4842  /// @param index
4843  /// Expected selection.
4844  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
4845 
4846  /// Retrieve selection name (for diagnostic purposes).
4847  ///
4848  /// @param index
4849  /// One of possible selection states.
4850  /// @return
4851  /// Name string.
4852  static string SelectionName(E_Choice index);
4853 
4854  /// Select the requested variant if needed.
4855  ///
4856  /// @param index
4857  /// New selection state.
4858  /// @param reset
4859  /// Flag that defines the resetting of the variant data. The data will
4860  /// be reset if either the current selection differs from the new one,
4861  /// or the flag is set to eDoResetVariant.
4863  /// Select the requested variant if needed,
4864  /// allocating CObject variants from memory pool.
4865  void Select(E_Choice index,
4866  EResetVariant reset,
4867  CObjectMemoryPool* pool);
4868 
4869  // types
4870  typedef CMean TMean;
4871  typedef CSdev TSdev;
4873  typedef CMedian TMedian;
4874  typedef CMode TMode;
4875 
4876  // getters
4877  // setters
4878 
4879 
4880  /// Check if variant Mean is selected.
4881  ///
4882  /// Mean type is defined as 'typedef CMean TMean'.
4883  /// @return
4884  /// - true, if the variant is selected.
4885  /// - false, otherwise.
4886  bool IsMean(void) const;
4887 
4888  /// Get the variant data.
4889  ///
4890  /// @return
4891  /// Reference to the data.
4892  const TMean& GetMean(void) const;
4893 
4894  /// Select the variant.
4895  ///
4896  /// @return
4897  /// Reference to the variant data.
4898  TMean& SetMean(void);
4899 
4900 
4901  /// Check if variant Sdev is selected.
4902  ///
4903  /// Sdev type is defined as 'typedef CSdev TSdev'.
4904  /// @return
4905  /// - true, if the variant is selected.
4906  /// - false, otherwise.
4907  bool IsSdev(void) const;
4908 
4909  /// Get the variant data.
4910  ///
4911  /// @return
4912  /// Reference to the data.
4913  const TSdev& GetSdev(void) const;
4914 
4915  /// Select the variant.
4916  ///
4917  /// @return
4918  /// Reference to the variant data.
4919  TSdev& SetSdev(void);
4920 
4921 
4922  /// Check if variant Variance is selected.
4923  ///
4924  /// Variance type is defined as 'typedef CVariance TVariance'.
4925  /// @return
4926  /// - true, if the variant is selected.
4927  /// - false, otherwise.
4928  bool IsVariance(void) const;
4929 
4930  /// Get the variant data.
4931  ///
4932  /// @return
4933  /// Reference to the data.
4934  const TVariance& GetVariance(void) const;
4935 
4936  /// Select the variant.
4937  ///
4938  /// @return
4939  /// Reference to the variant data.
4940  TVariance& SetVariance(void);
4941 
4942 
4943  /// Check if variant Median is selected.
4944  ///
4945  /// Median type is defined as 'typedef CMedian TMedian'.
4946  /// @return
4947  /// - true, if the variant is selected.
4948  /// - false, otherwise.
4949  bool IsMedian(void) const;
4950 
4951  /// Get the variant data.
4952  ///
4953  /// @return
4954  /// Reference to the data.
4955  const TMedian& GetMedian(void) const;
4956 
4957  /// Select the variant.
4958  ///
4959  /// @return
4960  /// Reference to the variant data.
4961  TMedian& SetMedian(void);
4962 
4963 
4964  /// Check if variant Mode is selected.
4965  ///
4966  /// Mode type is defined as 'typedef CMode TMode'.
4967  /// @return
4968  /// - true, if the variant is selected.
4969  /// - false, otherwise.
4970  bool IsMode(void) const;
4971 
4972  /// Get the variant data.
4973  ///
4974  /// @return
4975  /// Reference to the data.
4976  const TMode& GetMode(void) const;
4977 
4978  /// Select the variant.
4979  ///
4980  /// @return
4981  /// Reference to the variant data.
4982  TMode& SetMode(void);
4983 
4984 
4985  private:
4986  // copy constructor and assignment operator
4989  // choice state
4991  // helper methods
4992  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
4993 
4994  static const char* const sm_SelectionNames[];
4995  // data
4996  NCBI_NS_NCBI::CSerialObject *m_object;
4997  };
4998  /////////////////////////////////////////////////////////////////////////////
4999  ///
5000  /// C_Nary_constructor_mmlclass --
5001  ///
5002 
5004  {
5006  public:
5007  // constructor
5009  // destructor
5011 
5012  // type info
5014 
5015 
5016  /// Choice variants.
5017  enum E_Choice {
5018  e_not_set = 0, ///< No variant selected
5021  e_Matrixrow
5022  };
5023  /// Maximum+1 value of the choice variant enumerator.
5025  e_MaxChoice = 4 ///< == e_Matrixrow+1
5026  };
5027 
5028  /// Reset the whole object
5029  void Reset(void);
5030 
5031  /// Reset the selection (set it to e_not_set).
5032  void ResetSelection(void);
5033 
5034  /// Which variant is currently selected.
5035  ///
5036  /// @return
5037  /// Choice state enumerator.
5038  E_Choice Which(void) const;
5039 
5040  /// Verify selection, throw exception if it differs from the expected.
5041  ///
5042  /// @param index
5043  /// Expected selection.
5044  void CheckSelected(E_Choice index) const;
5045 
5046  /// Throw 'InvalidSelection' exception.
5047  ///
5048  /// @param index
5049  /// Expected selection.
5050  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
5051 
5052  /// Retrieve selection name (for diagnostic purposes).
5053  ///
5054  /// @param index
5055  /// One of possible selection states.
5056  /// @return
5057  /// Name string.
5058  static string SelectionName(E_Choice index);
5059 
5060  /// Select the requested variant if needed.
5061  ///
5062  /// @param index
5063  /// New selection state.
5064  /// @param reset
5065  /// Flag that defines the resetting of the variant data. The data will
5066  /// be reset if either the current selection differs from the new one,
5067  /// or the flag is set to eDoResetVariant.
5069  /// Select the requested variant if needed,
5070  /// allocating CObject variants from memory pool.
5071  void Select(E_Choice index,
5072  EResetVariant reset,
5073  CObjectMemoryPool* pool);
5074 
5075  // types
5076  typedef CVector TVector;
5077  typedef CMatrix TMatrix;
5079 
5080  // getters
5081  // setters
5082 
5083 
5084  /// Check if variant Vector is selected.
5085  ///
5086  /// Vector type is defined as 'typedef CVector TVector'.
5087  /// @return
5088  /// - true, if the variant is selected.
5089  /// - false, otherwise.
5090  bool IsVector(void) const;
5091 
5092  /// Get the variant data.
5093  ///
5094  /// @return
5095  /// Reference to the data.
5096  const TVector& GetVector(void) const;
5097 
5098  /// Select the variant.
5099  ///
5100  /// @return
5101  /// Reference to the variant data.
5102  TVector& SetVector(void);
5103  /// Select the variant and set its data.
5104  ///
5105  /// @param value
5106  /// Reference to the data.
5107  void SetVector(TVector& value);
5108 
5109 
5110  /// Check if variant Matrix is selected.
5111  ///
5112  /// Matrix type is defined as 'typedef CMatrix TMatrix'.
5113  /// @return
5114  /// - true, if the variant is selected.
5115  /// - false, otherwise.
5116  bool IsMatrix(void) const;
5117 
5118  /// Get the variant data.
5119  ///
5120  /// @return
5121  /// Reference to the data.
5122  const TMatrix& GetMatrix(void) const;
5123 
5124  /// Select the variant.
5125  ///
5126  /// @return
5127  /// Reference to the variant data.
5128  TMatrix& SetMatrix(void);
5129  /// Select the variant and set its data.
5130  ///
5131  /// @param value
5132  /// Reference to the data.
5133  void SetMatrix(TMatrix& value);
5134 
5135 
5136  /// Check if variant Matrixrow is selected.
5137  ///
5138  /// Matrixrow type is defined as 'typedef CMatrixrow TMatrixrow'.
5139  /// @return
5140  /// - true, if the variant is selected.
5141  /// - false, otherwise.
5142  bool IsMatrixrow(void) const;
5143 
5144  /// Get the variant data.
5145  ///
5146  /// @return
5147  /// Reference to the data.
5148  const TMatrixrow& GetMatrixrow(void) const;
5149 
5150  /// Select the variant.
5151  ///
5152  /// @return
5153  /// Reference to the variant data.
5154  TMatrixrow& SetMatrixrow(void);
5155  /// Select the variant and set its data.
5156  ///
5157  /// @param value
5158  /// Reference to the data.
5159  void SetMatrixrow(TMatrixrow& value);
5160 
5161 
5162  private:
5163  // copy constructor and assignment operator
5166  // choice state
5168  // helper methods
5169  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
5170 
5171  static const char* const sm_SelectionNames[];
5172  // data
5173  NCBI_NS_NCBI::CSerialObject *m_object;
5174  };
5175  /////////////////////////////////////////////////////////////////////////////
5176  ///
5177  /// C_Unary_linalg_mmlclass --
5178  ///
5179 
5181  {
5183  public:
5184  // constructor
5186  // destructor
5188 
5189  // type info