NCBI C++ ToolKit
Seq_align_.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 Seq_align_.hpp
29 /// Data storage class.
30 ///
31 /// This file was generated by application DATATOOL
32 /// using the following specifications:
33 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/seqalign/seqalign.asn">seqalign.asn</a>
34 /// and additional tune-up parameters:
35 /// <a href="/IEB/ToolBox/CPP_DOC/lxr/source/src/objects/seqalign/seqalign.def">seqalign.def</a>
36 ///
37 /// ATTENTION:
38 /// Don't edit or commit this file into CVS as this file will
39 /// be overridden (by DATATOOL) without warning!
40 
41 #ifndef OBJECTS_SEQALIGN_SEQ_ALIGN_BASE_HPP
42 #define OBJECTS_SEQALIGN_SEQ_ALIGN_BASE_HPP
43 
44 // standard includes
45 #include <serial/serialbase.hpp>
46 
47 // generated includes
48 #include <list>
49 #include <vector>
50 
52 
53 #ifndef BEGIN_objects_SCOPE
54 # define BEGIN_objects_SCOPE BEGIN_SCOPE(objects)
55 # define END_objects_SCOPE END_SCOPE(objects)
56 #endif
57 BEGIN_objects_SCOPE // namespace ncbi::objects::
58 
59 
60 // forward declarations
61 class CDense_diag;
62 class CDense_seg;
63 class CObject_id;
64 class CPacked_seg;
65 class CScore;
66 class CSeq_align_set;
67 class CSeq_loc;
68 class CSparse_seg;
69 class CSpliced_seg;
70 class CStd_seg;
71 class CUser_object;
72 
73 
74 // generated classes
75 
76 
77 /** @addtogroup dataspec_NCBI_Seqalign
78  *
79  * @{
80  */
81 
82 /////////////////////////////////////////////////////////////////////////////
83 ///
84 /// CSeq_align_Base --
85 ///
86 
88 {
90 public:
91  // constructor
92  CSeq_align_Base(void);
93  // destructor
94  virtual ~CSeq_align_Base(void);
95 
96  // type info
98 
99  enum EType {
100  eType_not_set = 0,
101  eType_global = 1,
102  eType_diags = 2, ///< unbroken, but not ordered, diagonals
103  eType_partial = 3, ///< mapping pieces together
104  eType_disc = 4, ///< discontinuous alignment
105  eType_other = 255
106  };
107 
108  /// Access to EType's attributes (values, names) as defined in spec
109  static const NCBI_NS_NCBI::CEnumeratedTypeValues* ENUM_METHOD_NAME(EType)(void);
110 
111  /////////////////////////////////////////////////////////////////////////////
112  /// alignment data
113  ///
114  /// C_Segs --
115  ///
116 
118  {
120  public:
121  // constructor
122  C_Segs(void);
123  // destructor
124  ~C_Segs(void);
125 
126  // type info
128 
129 
130  /// Choice variants.
131  enum E_Choice {
132  e_not_set = 0, ///< No variant selected
139  e_Sparse
140  };
141  /// Maximum+1 value of the choice variant enumerator.
143  e_MaxChoice = 8 ///< == e_Sparse+1
144  };
145 
146  /// Reset the whole object
147  void Reset(void);
148 
149  /// Reset the selection (set it to e_not_set).
150  void ResetSelection(void);
151 
152  /// Which variant is currently selected.
153  ///
154  /// @return
155  /// Choice state enumerator.
156  E_Choice Which(void) const;
157 
158  /// Verify selection, throw exception if it differs from the expected.
159  ///
160  /// @param index
161  /// Expected selection.
162  void CheckSelected(E_Choice index) const;
163 
164  /// Throw 'InvalidSelection' exception.
165  ///
166  /// @param index
167  /// Expected selection.
168  NCBI_NORETURN void ThrowInvalidSelection(E_Choice index) const;
169 
170  /// Retrieve selection name (for diagnostic purposes).
171  ///
172  /// @param index
173  /// One of possible selection states.
174  /// @return
175  /// Name string.
176  static string SelectionName(E_Choice index);
177 
178  /// Select the requested variant if needed.
179  ///
180  /// @param index
181  /// New selection state.
182  /// @param reset
183  /// Flag that defines the resetting of the variant data. The data will
184  /// be reset if either the current selection differs from the new one,
185  /// or the flag is set to eDoResetVariant.
187  /// Select the requested variant if needed,
188  /// allocating CObject variants from memory pool.
189  void Select(E_Choice index,
190  EResetVariant reset,
191  CObjectMemoryPool* pool);
192 
193  // types
194  typedef list< CRef< CDense_diag > > TDendiag;
196  typedef list< CRef< CStd_seg > > TStd;
201 
202  // getters
203  // setters
204 
205 
206  /// Check if variant Dendiag is selected.
207  ///
208  /// Dendiag type is defined as 'typedef list< CRef< CDense_diag > > TDendiag'.
209  /// @return
210  /// - true, if the variant is selected.
211  /// - false, otherwise.
212  bool IsDendiag(void) const;
213 
214  /// Get the variant data.
215  ///
216  /// @return
217  /// Reference to the data.
218  const TDendiag& GetDendiag(void) const;
219 
220  /// Select the variant.
221  ///
222  /// @return
223  /// Reference to the variant data.
224  TDendiag& SetDendiag(void);
225 
226 
227  /// Check if variant Denseg is selected.
228  ///
229  /// Denseg type is defined as 'typedef CDense_seg TDenseg'.
230  /// @return
231  /// - true, if the variant is selected.
232  /// - false, otherwise.
233  bool IsDenseg(void) const;
234 
235  /// Get the variant data.
236  ///
237  /// @return
238  /// Reference to the data.
239  const TDenseg& GetDenseg(void) const;
240 
241  /// Select the variant.
242  ///
243  /// @return
244  /// Reference to the variant data.
245  TDenseg& SetDenseg(void);
246  /// Select the variant and set its data.
247  ///
248  /// @param value
249  /// Reference to the data.
250  void SetDenseg(TDenseg& value);
251 
252 
253  /// Check if variant Std is selected.
254  ///
255  /// Std type is defined as 'typedef list< CRef< CStd_seg > > TStd'.
256  /// @return
257  /// - true, if the variant is selected.
258  /// - false, otherwise.
259  bool IsStd(void) const;
260 
261  /// Get the variant data.
262  ///
263  /// @return
264  /// Reference to the data.
265  const TStd& GetStd(void) const;
266 
267  /// Select the variant.
268  ///
269  /// @return
270  /// Reference to the variant data.
271  TStd& SetStd(void);
272 
273 
274  /// Check if variant Packed is selected.
275  ///
276  /// Packed type is defined as 'typedef CPacked_seg TPacked'.
277  /// @return
278  /// - true, if the variant is selected.
279  /// - false, otherwise.
280  bool IsPacked(void) const;
281 
282  /// Get the variant data.
283  ///
284  /// @return
285  /// Reference to the data.
286  const TPacked& GetPacked(void) const;
287 
288  /// Select the variant.
289  ///
290  /// @return
291  /// Reference to the variant data.
292  TPacked& SetPacked(void);
293  /// Select the variant and set its data.
294  ///
295  /// @param value
296  /// Reference to the data.
297  void SetPacked(TPacked& value);
298 
299 
300  /// Check if variant Disc is selected.
301  ///
302  /// Disc type is defined as 'typedef CSeq_align_set TDisc'.
303  /// @return
304  /// - true, if the variant is selected.
305  /// - false, otherwise.
306  bool IsDisc(void) const;
307 
308  /// Get the variant data.
309  ///
310  /// @return
311  /// Reference to the data.
312  const TDisc& GetDisc(void) const;
313 
314  /// Select the variant.
315  ///
316  /// @return
317  /// Reference to the variant data.
318  TDisc& SetDisc(void);
319  /// Select the variant and set its data.
320  ///
321  /// @param value
322  /// Reference to the data.
323  void SetDisc(TDisc& value);
324 
325 
326  /// Check if variant Spliced is selected.
327  ///
328  /// Spliced type is defined as 'typedef CSpliced_seg TSpliced'.
329  /// @return
330  /// - true, if the variant is selected.
331  /// - false, otherwise.
332  bool IsSpliced(void) const;
333 
334  /// Get the variant data.
335  ///
336  /// @return
337  /// Reference to the data.
338  const TSpliced& GetSpliced(void) const;
339 
340  /// Select the variant.
341  ///
342  /// @return
343  /// Reference to the variant data.
344  TSpliced& SetSpliced(void);
345  /// Select the variant and set its data.
346  ///
347  /// @param value
348  /// Reference to the data.
349  void SetSpliced(TSpliced& value);
350 
351 
352  /// Check if variant Sparse is selected.
353  ///
354  /// Sparse type is defined as 'typedef CSparse_seg TSparse'.
355  /// @return
356  /// - true, if the variant is selected.
357  /// - false, otherwise.
358  bool IsSparse(void) const;
359 
360  /// Get the variant data.
361  ///
362  /// @return
363  /// Reference to the data.
364  const TSparse& GetSparse(void) const;
365 
366  /// Select the variant.
367  ///
368  /// @return
369  /// Reference to the variant data.
370  TSparse& SetSparse(void);
371  /// Select the variant and set its data.
372  ///
373  /// @param value
374  /// Reference to the data.
375  void SetSparse(TSparse& value);
376 
377 
378  private:
379  // copy constructor and assignment operator
380  C_Segs(const C_Segs& );
382  // choice state
384  // helper methods
385  void DoSelect(E_Choice index, CObjectMemoryPool* pool = 0);
386 
387  static const char* const sm_SelectionNames[];
388  // data
389  union {
390  NCBI_NS_NCBI::CUnionBuffer<TDendiag> m_Dendiag;
391  NCBI_NS_NCBI::CUnionBuffer<TStd> m_Std;
392  NCBI_NS_NCBI::CSerialObject *m_object;
393  };
394  };
395  // types
396  typedef EType TType;
397  typedef int TDim;
398  typedef vector< CRef< CScore > > TScore;
399  typedef C_Segs TSegs;
400  typedef list< CRef< CSeq_loc > > TBounds;
401  typedef list< CRef< CObject_id > > TId;
402  typedef list< CRef< CUser_object > > TExt;
403 
404  // member index
405  enum class E_memberIndex {
406  e__allMandatory = 0,
407  e_type,
408  e_dim,
409  e_score,
410  e_segs,
411  e_bounds,
412  e_id,
413  e_ext
414  };
416 
417  // getters
418  // setters
419 
420  /// Check if a value has been assigned to Type data member.
421  ///
422  /// Data member Type is mandatory;
423  /// its type is defined as 'typedef EType TType'
424  /// @return
425  /// - true, if a value has been assigned.
426  /// - false, otherwise.
427  bool IsSetType(void) const;
428 
429  /// Check if it is safe to call GetType method.
430  ///
431  /// @return
432  /// - true, if the data member is getatable.
433  /// - false, otherwise.
434  bool CanGetType(void) const;
435 
436  /// Reset Type data member.
437  void ResetType(void);
438 
439  /// Get the Type member data.
440  ///
441  /// @return
442  /// Copy of the member data.
443  TType GetType(void) const;
444 
445  /// Assign a value to Type data member.
446  ///
447  /// @param value
448  /// Value to assign
449  void SetType(TType value);
450 
451  /// Assign a value to Type data member.
452  ///
453  /// @return
454  /// Reference to the data value.
455  TType& SetType(void);
456 
457  /// dimensionality
458  /// Check if a value has been assigned to Dim data member.
459  ///
460  /// Data member Dim is optional;
461  /// its type is defined as 'typedef int TDim'
462  /// @return
463  /// - true, if a value has been assigned.
464  /// - false, otherwise.
465  bool IsSetDim(void) const;
466 
467  /// Check if it is safe to call GetDim method.
468  ///
469  /// @return
470  /// - true, if the data member is getatable.
471  /// - false, otherwise.
472  bool CanGetDim(void) const;
473 
474  /// Reset Dim data member.
475  void ResetDim(void);
476 
477  /// Get the Dim member data.
478  ///
479  /// @return
480  /// Copy of the member data.
481  TDim GetDim(void) const;
482 
483  /// Assign a value to Dim data member.
484  ///
485  /// @param value
486  /// Value to assign
487  void SetDim(TDim value);
488 
489  /// Assign a value to Dim data member.
490  ///
491  /// @return
492  /// Reference to the data value.
493  TDim& SetDim(void);
494 
495  /// for whole alignment
496  /// Check if a value has been assigned to Score data member.
497  ///
498  /// Data member Score is optional;
499  /// its type is defined as 'typedef vector< CRef< CScore > > TScore'
500  /// @return
501  /// - true, if a value has been assigned.
502  /// - false, otherwise.
503  bool IsSetScore(void) const;
504 
505  /// Check if it is safe to call GetScore method.
506  ///
507  /// @return
508  /// - true, if the data member is getatable.
509  /// - false, otherwise.
510  bool CanGetScore(void) const;
511 
512  /// Reset Score data member.
513  void ResetScore(void);
514 
515  /// Get the Score member data.
516  ///
517  /// @return
518  /// Reference to the member data.
519  const TScore& GetScore(void) const;
520 
521  /// Assign a value to Score data member.
522  ///
523  /// @return
524  /// Reference to the data value.
525  TScore& SetScore(void);
526 
527  /// Check if a value has been assigned to Segs data member.
528  ///
529  /// Data member Segs is mandatory;
530  /// its type is defined as 'typedef C_Segs TSegs'
531  /// @return
532  /// - true, if a value has been assigned.
533  /// - false, otherwise.
534  bool IsSetSegs(void) const;
535 
536  /// Check if it is safe to call GetSegs method.
537  ///
538  /// @return
539  /// - true, if the data member is getatable.
540  /// - false, otherwise.
541  bool CanGetSegs(void) const;
542 
543  /// Reset Segs data member.
544  void ResetSegs(void);
545 
546  /// Get the Segs member data.
547  ///
548  /// @return
549  /// Reference to the member data.
550  const TSegs& GetSegs(void) const;
551 
552  /// Assign a value to Segs data member.
553  ///
554  /// @param value
555  /// Reference to value.
556  void SetSegs(TSegs& value);
557 
558  /// Assign a value to Segs data member.
559  ///
560  /// @return
561  /// Reference to the data value.
562  TSegs& SetSegs(void);
563 
564  /// regions of sequence over which align
565  /// was computed
566  /// Check if a value has been assigned to Bounds data member.
567  ///
568  /// Data member Bounds is optional;
569  /// its type is defined as 'typedef list< CRef< CSeq_loc > > TBounds'
570  /// @return
571  /// - true, if a value has been assigned.
572  /// - false, otherwise.
573  bool IsSetBounds(void) const;
574 
575  /// Check if it is safe to call GetBounds method.
576  ///
577  /// @return
578  /// - true, if the data member is getatable.
579  /// - false, otherwise.
580  bool CanGetBounds(void) const;
581 
582  /// Reset Bounds data member.
583  void ResetBounds(void);
584 
585  /// Get the Bounds member data.
586  ///
587  /// @return
588  /// Reference to the member data.
589  const TBounds& GetBounds(void) const;
590 
591  /// Assign a value to Bounds data member.
592  ///
593  /// @return
594  /// Reference to the data value.
595  TBounds& SetBounds(void);
596 
597  /// alignment id
598  /// Check if a value has been assigned to Id data member.
599  ///
600  /// Data member Id is optional;
601  /// its type is defined as 'typedef list< CRef< CObject_id > > TId'
602  /// @return
603  /// - true, if a value has been assigned.
604  /// - false, otherwise.
605  bool IsSetId(void) const;
606 
607  /// Check if it is safe to call GetId method.
608  ///
609  /// @return
610  /// - true, if the data member is getatable.
611  /// - false, otherwise.
612  bool CanGetId(void) const;
613 
614  /// Reset Id data member.
615  void ResetId(void);
616 
617  /// Get the Id member data.
618  ///
619  /// @return
620  /// Reference to the member data.
621  const TId& GetId(void) const;
622 
623  /// Assign a value to Id data member.
624  ///
625  /// @return
626  /// Reference to the data value.
627  TId& SetId(void);
628 
629  ///extra info
630  /// Check if a value has been assigned to Ext data member.
631  ///
632  /// Data member Ext is optional;
633  /// its type is defined as 'typedef list< CRef< CUser_object > > TExt'
634  /// @return
635  /// - true, if a value has been assigned.
636  /// - false, otherwise.
637  bool IsSetExt(void) const;
638 
639  /// Check if it is safe to call GetExt method.
640  ///
641  /// @return
642  /// - true, if the data member is getatable.
643  /// - false, otherwise.
644  bool CanGetExt(void) const;
645 
646  /// Reset Ext data member.
647  void ResetExt(void);
648 
649  /// Get the Ext member data.
650  ///
651  /// @return
652  /// Reference to the member data.
653  const TExt& GetExt(void) const;
654 
655  /// Assign a value to Ext data member.
656  ///
657  /// @return
658  /// Reference to the data value.
659  TExt& SetExt(void);
660 
661  /// Reset the whole object
662  virtual void Reset(void);
663 
664 
665 private:
666  // Prohibit copy constructor and assignment operator
669 
670  // data
671  Uint4 m_set_State[1];
673  int m_Dim;
674  vector< CRef< CScore > > m_Score;
676  list< CRef< CSeq_loc > > m_Bounds;
677  list< CRef< CObject_id > > m_Id;
678  list< CRef< CUser_object > > m_Ext;
679 };
680 
681 /* @} */
682 
683 
684 
685 
686 
687 ///////////////////////////////////////////////////////////
688 ///////////////////// inline methods //////////////////////
689 ///////////////////////////////////////////////////////////
690 inline
692 {
693  return m_choice;
694 }
695 
696 inline
698 {
699  if ( m_choice != index )
700  ThrowInvalidSelection(index);
701 }
702 
703 inline
704 void CSeq_align_Base::C_Segs::Select(E_Choice index, NCBI_NS_NCBI::EResetVariant reset, NCBI_NS_NCBI::CObjectMemoryPool* pool)
705 {
706  if ( reset == NCBI_NS_NCBI::eDoResetVariant || m_choice != index ) {
707  if ( m_choice != e_not_set )
708  ResetSelection();
709  DoSelect(index, pool);
710  }
711 }
712 
713 inline
715 {
716  Select(index, reset, 0);
717 }
718 
719 inline
721 {
722  return m_choice == e_Dendiag;
723 }
724 
725 inline
727 {
728  CheckSelected(e_Dendiag);
729  return *m_Dendiag;
730 }
731 
732 inline
734 {
735  Select(e_Dendiag, NCBI_NS_NCBI::eDoNotResetVariant);
736  return *m_Dendiag;
737 }
738 
739 inline
741 {
742  return m_choice == e_Denseg;
743 }
744 
745 inline
747 {
748  return m_choice == e_Std;
749 }
750 
751 inline
753 {
754  CheckSelected(e_Std);
755  return *m_Std;
756 }
757 
758 inline
760 {
761  Select(e_Std, NCBI_NS_NCBI::eDoNotResetVariant);
762  return *m_Std;
763 }
764 
765 inline
767 {
768  return m_choice == e_Packed;
769 }
770 
771 inline
773 {
774  return m_choice == e_Disc;
775 }
776 
777 inline
779 {
780  return m_choice == e_Spliced;
781 }
782 
783 inline
785 {
786  return m_choice == e_Sparse;
787 }
788 
789 inline
791 {
792  return ((m_set_State[0] & 0x3) != 0);
793 }
794 
795 inline
797 {
798  return IsSetType();
799 }
800 
801 inline
803 {
804  m_Type = (EType)(0);
805  m_set_State[0] &= ~0x3;
806 }
807 
808 inline
810 {
811  if (!CanGetType()) {
812  ThrowUnassigned(0);
813  }
814  return m_Type;
815 }
816 
817 inline
819 {
820  m_Type = value;
821  m_set_State[0] |= 0x3;
822 }
823 
824 inline
826 {
827 #ifdef _DEBUG
828  if (!IsSetType()) {
829  memset(&m_Type,UnassignedByte(),sizeof(m_Type));
830  }
831 #endif
832  m_set_State[0] |= 0x1;
833  return m_Type;
834 }
835 
836 inline
838 {
839  return ((m_set_State[0] & 0xc) != 0);
840 }
841 
842 inline
844 {
845  return IsSetDim();
846 }
847 
848 inline
850 {
851  m_Dim = 0;
852  m_set_State[0] &= ~0xc;
853 }
854 
855 inline
857 {
858  if (!CanGetDim()) {
859  ThrowUnassigned(1);
860  }
861  return m_Dim;
862 }
863 
864 inline
866 {
867  m_Dim = value;
868  m_set_State[0] |= 0xc;
869 }
870 
871 inline
873 {
874 #ifdef _DEBUG
875  if (!IsSetDim()) {
876  memset(&m_Dim,UnassignedByte(),sizeof(m_Dim));
877  }
878 #endif
879  m_set_State[0] |= 0x4;
880  return m_Dim;
881 }
882 
883 inline
885 {
886  return ((m_set_State[0] & 0x30) != 0);
887 }
888 
889 inline
891 {
892  return true;
893 }
894 
895 inline
897 {
898  return m_Score;
899 }
900 
901 inline
903 {
904  m_set_State[0] |= 0x10;
905  return m_Score;
906 }
907 
908 inline
910 {
911  return m_Segs.NotEmpty();
912 }
913 
914 inline
916 {
917  return true;
918 }
919 
920 inline
922 {
923  if ( !m_Segs ) {
924  const_cast<CSeq_align_Base*>(this)->ResetSegs();
925  }
926  return (*m_Segs);
927 }
928 
929 inline
931 {
932  if ( !m_Segs ) {
933  ResetSegs();
934  }
935  return (*m_Segs);
936 }
937 
938 inline
940 {
941  return ((m_set_State[0] & 0x300) != 0);
942 }
943 
944 inline
946 {
947  return true;
948 }
949 
950 inline
952 {
953  return m_Bounds;
954 }
955 
956 inline
958 {
959  m_set_State[0] |= 0x100;
960  return m_Bounds;
961 }
962 
963 inline
964 bool CSeq_align_Base::IsSetId(void) const
965 {
966  return ((m_set_State[0] & 0xc00) != 0);
967 }
968 
969 inline
971 {
972  return true;
973 }
974 
975 inline
977 {
978  return m_Id;
979 }
980 
981 inline
983 {
984  m_set_State[0] |= 0x400;
985  return m_Id;
986 }
987 
988 inline
990 {
991  return ((m_set_State[0] & 0x3000) != 0);
992 }
993 
994 inline
996 {
997  return true;
998 }
999 
1000 inline
1002 {
1003  return m_Ext;
1004 }
1005 
1006 inline
1008 {
1009  m_set_State[0] |= 0x1000;
1010  return m_Ext;
1011 }
1012 
1013 ///////////////////////////////////////////////////////////
1014 ////////////////// end of inline methods //////////////////
1015 ///////////////////////////////////////////////////////////
1016 
1017 
1018 
1019 
1020 
1021 END_objects_SCOPE // namespace ncbi::objects::
1022 
1024 
1025 
1026 #endif // OBJECTS_SEQALIGN_SEQ_ALIGN_BASE_HPP
CPacked_seg –.
Definition: Packed_seg.hpp:66
CRef –.
Definition: ncbiobj.hpp:618
Definition: Score.hpp:57
CSeq_align_Base –.
Definition: Seq_align_.hpp:88
Base class for all serializable objects.
Definition: serialbase.hpp:150
static char UnassignedByte(void)
Definition: serialbase.hpp:181
void ThrowUnassigned(TMemberIndex index) const
EResetVariant
Definition: serialbase.hpp:76
#define ENUM_METHOD_NAME(EnumName)
Definition: serialbase.hpp:994
@ eDoResetVariant
Definition: serialbase.hpp:77
@ eDoNotResetVariant
Definition: serialbase.hpp:78
const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)
If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...
uint32_t Uint4
4-byte (32-bit) unsigned integer
Definition: ncbitype.h:103
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define NCBI_SEQALIGN_EXPORT
Definition: ncbi_export.h:744
C_Segs(const C_Segs &)
const TId & GetId(void) const
Get the Id member data.
Definition: Seq_align_.hpp:976
CRef< TSegs > m_Segs
Definition: Seq_align_.hpp:675
TId & SetId(void)
Assign a value to Id data member.
Definition: Seq_align_.hpp:982
TScore & SetScore(void)
Assign a value to Score data member.
Definition: Seq_align_.hpp:902
TSegs & SetSegs(void)
Assign a value to Segs data member.
Definition: Seq_align_.hpp:930
void Select(E_Choice index, EResetVariant reset=eDoResetVariant)
Select the requested variant if needed.
CSerialObject Tparent
Definition: Seq_align_.hpp:89
CSeq_align_Base & operator=(const CSeq_align_Base &)
bool IsSetBounds(void) const
regions of sequence over which align was computed Check if a value has been assigned to Bounds data m...
Definition: Seq_align_.hpp:939
E_Choice Which(void) const
Which variant is currently selected.
Definition: Seq_align_.hpp:691
E_ChoiceStopper
Maximum+1 value of the choice variant enumerator.
Definition: Seq_align_.hpp:142
TStd & SetStd(void)
Select the variant.
Definition: Seq_align_.hpp:759
TType & SetType(void)
Assign a value to Type data member.
Definition: Seq_align_.hpp:825
vector< CRef< CScore > > TScore
Definition: Seq_align_.hpp:398
list< CRef< CStd_seg > > TStd
Definition: Seq_align_.hpp:196
bool CanGetBounds(void) const
Check if it is safe to call GetBounds method.
Definition: Seq_align_.hpp:945
CSeq_align_set TDisc
Definition: Seq_align_.hpp:198
bool IsSetId(void) const
alignment id Check if a value has been assigned to Id data member.
Definition: Seq_align_.hpp:964
bool CanGetType(void) const
Check if it is safe to call GetType method.
Definition: Seq_align_.hpp:796
NCBI_NS_NCBI::CUnionBuffer< TStd > m_Std
Definition: Seq_align_.hpp:391
E_Choice
Choice variants.
Definition: Seq_align_.hpp:131
bool IsSetExt(void) const
extra info Check if a value has been assigned to Ext data member.
Definition: Seq_align_.hpp:989
void ResetSegs(void)
Reset Segs data member.
Definition: Seq_align_.cpp:301
void ResetDim(void)
Reset Dim data member.
Definition: Seq_align_.hpp:849
TDim GetDim(void) const
Get the Dim member data.
Definition: Seq_align_.hpp:856
void CheckSelected(E_Choice index) const
Verify selection, throw exception if it differs from the expected.
Definition: Seq_align_.hpp:697
list< CRef< CUser_object > > m_Ext
Definition: Seq_align_.hpp:678
bool IsSetSegs(void) const
Check if a value has been assigned to Segs data member.
Definition: Seq_align_.hpp:909
NCBI_NS_NCBI::CUnionBuffer< TDendiag > m_Dendiag
Definition: Seq_align_.hpp:390
bool CanGetScore(void) const
Check if it is safe to call GetScore method.
Definition: Seq_align_.hpp:890
vector< CRef< CScore > > m_Score
Definition: Seq_align_.hpp:674
list< CRef< CObject_id > > TId
Definition: Seq_align_.hpp:401
list< CRef< CUser_object > > TExt
Definition: Seq_align_.hpp:402
bool IsPacked(void) const
Check if variant Packed is selected.
Definition: Seq_align_.hpp:766
bool IsSparse(void) const
Check if variant Sparse is selected.
Definition: Seq_align_.hpp:784
bool IsDendiag(void) const
Check if variant Dendiag is selected.
Definition: Seq_align_.hpp:720
bool CanGetSegs(void) const
Check if it is safe to call GetSegs method.
Definition: Seq_align_.hpp:915
list< CRef< CSeq_loc > > TBounds
Definition: Seq_align_.hpp:400
bool IsSetType(void) const
Check if a value has been assigned to Type data member.
Definition: Seq_align_.hpp:790
TExt & SetExt(void)
Assign a value to Ext data member.
TDendiag & SetDendiag(void)
Select the variant.
Definition: Seq_align_.hpp:733
const TStd & GetStd(void) const
Get the variant data.
Definition: Seq_align_.hpp:752
Tparent::CMemberIndex< E_memberIndex, 8 > TmemberIndex
Definition: Seq_align_.hpp:415
bool CanGetExt(void) const
Check if it is safe to call GetExt method.
Definition: Seq_align_.hpp:995
bool CanGetDim(void) const
Check if it is safe to call GetDim method.
Definition: Seq_align_.hpp:843
const TDendiag & GetDendiag(void) const
Get the variant data.
Definition: Seq_align_.hpp:726
bool IsStd(void) const
Check if variant Std is selected.
Definition: Seq_align_.hpp:746
void Select(E_Choice index, EResetVariant reset, CObjectMemoryPool *pool)
Select the requested variant if needed, allocating CObject variants from memory pool.
CSeq_align_Base(const CSeq_align_Base &)
bool IsDisc(void) const
Check if variant Disc is selected.
Definition: Seq_align_.hpp:772
TType GetType(void) const
Get the Type member data.
Definition: Seq_align_.hpp:809
TDim & SetDim(void)
Assign a value to Dim data member.
Definition: Seq_align_.hpp:872
bool IsSetDim(void) const
dimensionality Check if a value has been assigned to Dim data member.
Definition: Seq_align_.hpp:837
const TExt & GetExt(void) const
Get the Ext member data.
C_Segs & operator=(const C_Segs &)
bool IsSetScore(void) const
for whole alignment Check if a value has been assigned to Score data member.
Definition: Seq_align_.hpp:884
bool IsSpliced(void) const
Check if variant Spliced is selected.
Definition: Seq_align_.hpp:778
const TScore & GetScore(void) const
Get the Score member data.
Definition: Seq_align_.hpp:896
TBounds & SetBounds(void)
Assign a value to Bounds data member.
Definition: Seq_align_.hpp:957
NCBI_NS_NCBI::CSerialObject * m_object
Definition: Seq_align_.hpp:392
list< CRef< CDense_diag > > TDendiag
Definition: Seq_align_.hpp:194
const TSegs & GetSegs(void) const
Get the Segs member data.
Definition: Seq_align_.hpp:921
Uint4 m_set_State[1]
Definition: Seq_align_.hpp:671
list< CRef< CSeq_loc > > m_Bounds
Definition: Seq_align_.hpp:676
bool IsDenseg(void) const
Check if variant Denseg is selected.
Definition: Seq_align_.hpp:740
const TBounds & GetBounds(void) const
Get the Bounds member data.
Definition: Seq_align_.hpp:951
bool CanGetId(void) const
Check if it is safe to call GetId method.
Definition: Seq_align_.hpp:970
void ResetType(void)
Reset Type data member.
Definition: Seq_align_.hpp:802
list< CRef< CObject_id > > m_Id
Definition: Seq_align_.hpp:677
@ e_not_set
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
Modified on Sun Apr 14 05:25:02 2024 by modify_doxy.py rev. 669887