NCBI C++ ToolKit
basecount_item.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef OBJTOOLS_FORMAT_ITEMS___BASECOUNT_ITEM__HPP
2 #define OBJTOOLS_FORMAT_ITEMS___BASECOUNT_ITEM__HPP
3 
4 /* $Id: basecount_item.hpp 99549 2023-04-17 14:20:00Z gotvyans $
5 * ===========================================================================
6 *
7 * PUBLIC DOMAIN NOTICE
8 * National Center for Biotechnology Information
9 *
10 * This software/database is a "United States Government Work" under the
11 * terms of the United States Copyright Act. It was written as part of
12 * the author's official duties as a United States Government employee and
13 * thus cannot be copyrighted. This software/database is freely available
14 * to the public for use. The National Library of Medicine and the U.S.
15 * Government have not placed any restriction on its use or reproduction.
16 *
17 * Although all reasonable efforts have been taken to ensure the accuracy
18 * and reliability of the software and data, the NLM and the U.S.
19 * Government do not and cannot warrant the performance or results that
20 * may be obtained by using this software or data. The NLM and the U.S.
21 * Government disclaim all warranties, express or implied, including
22 * warranties of performance, merchantability or fitness for any particular
23 * purpose.
24 *
25 * Please cite the author in any work or product based on this material.
26 *
27 * ===========================================================================
28 *
29 * Author: Aaron Ucko, NCBI
30 * Mati Shomrat
31 *
32 * File Description:
33 * base count item for flat-file generator
34 *
35 *
36 */
37 #include <corelib/ncbistd.hpp>
38 
39 #include <list>
40 
42 
43 
46 
47 
48 class CBioseqContext;
49 class IFormatter;
50 
51 
52 ///////////////////////////////////////////////////////////////////////////
53 //
54 // Base Count
55 
57 {
58 public:
60  void Format(IFormatter& formatter, IFlatTextOStream& text_os) const override;
61 
62  void GetCounts(SIZE_TYPE& a, SIZE_TYPE& c, SIZE_TYPE& g, SIZE_TYPE& t,
63  SIZE_TYPE& other) const;
64  SIZE_TYPE GetA(void) const { return m_A; }
65  SIZE_TYPE GetC(void) const { return m_C; }
66  SIZE_TYPE GetG(void) const { return m_G; }
67  SIZE_TYPE GetT(void) const { return m_T; }
68  SIZE_TYPE GetOther(void) const { return m_Other; }
69 
70  EItem GetItemType() const override;
71 private:
72  void x_GatherInfo(CBioseqContext& ctx) override;
73 
74  // data
75  mutable TSeqPos m_A, m_C, m_G, m_T, m_Other;
76 };
77 
78 
79 inline
81 (SIZE_TYPE& a,
82  SIZE_TYPE& c,
83  SIZE_TYPE& g,
84  SIZE_TYPE& t,
85  SIZE_TYPE& other) const
86 {
87  a = m_A;
88  c = m_C;
89  g = m_G;
90  t = m_T;
91  other = m_Other;
92 }
93 
94 
97 
98 #endif /* OBJTOOLS_FORMAT_ITEMS___BASECOUNT_ITEM__HPP */
SIZE_TYPE GetOther(void) const
void GetCounts(SIZE_TYPE &a, SIZE_TYPE &c, SIZE_TYPE &g, SIZE_TYPE &t, SIZE_TYPE &other) const
SIZE_TYPE GetT(void) const
SIZE_TYPE GetA(void) const
SIZE_TYPE GetG(void) const
SIZE_TYPE GetC(void) const
virtual void Format(IFormatter &formatter, IFlatTextOStream &text_os) const =0
virtual void x_GatherInfo(CBioseqContext &)
Definition: item_base.hpp:71
virtual EItem GetItemType(void) const =0
Include a standard set of the NCBI C++ Toolkit most basic headers.
CS_CONTEXT * ctx
Definition: t0006.c:12
unsigned int TSeqPos
Type for sequence locations and lengths.
Definition: ncbimisc.hpp:875
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define END_SCOPE(ns)
End the previously defined scope.
Definition: ncbistl.hpp:75
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define BEGIN_SCOPE(ns)
Define a new scope.
Definition: ncbistl.hpp:72
NCBI_NS_STD::string::size_type SIZE_TYPE
Definition: ncbistr.hpp:132
#define NCBI_FORMAT_EXPORT
Definition: ncbi_export.h:496
unsigned int a
Definition: ncbi_localip.c:102
EIPRangeType t
Definition: ncbi_localip.c:101
int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)
Definition: thrddgri.c:44
Modified on Fri Dec 08 08:22:46 2023 by modify_doxy.py rev. 669887