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

Go to the SVN repository for this file.

1 #ifndef OBJTOOLS___SNP_BITFIELD_FACTORY__HPP
2 #define OBJTOOLS___SNP_BITFIELD_FACTORY__HPP
3 /* $Id: snp_bitfield_factory.hpp 75466 2016-11-17 23:39:13Z rudnev $
4  * ===========================================================================
5  *
6  * PUBLIC DOMAIN NOTICE
7  * National Center for Biotechnology Information
8  *
9  * This software/database is a "United States Government Work" under the
10  * terms of the United States Copyright Act. It was written as part of
11  * the author's official duties as a United States Government employee and
12  * thus cannot be copyrighted. This software/database is freely available
13  * to the public for use. The National Library of Medicine and the U.S.
14  * Government have not placed any restriction on its use or reproduction.
15  *
16  * Although all reasonable efforts have been taken to ensure the accuracy
17  * and reliability of the software and data, the NLM and the U.S.
18  * Government do not and cannot warrant the performance or results that
19  * may be obtained by using this software or data. The NLM and the U.S.
20  * Government disclaim all warranties, express or implied, including
21  * warranties of performance, merchantability or fitness for any particular
22  * purpose.
23  *
24  * Please cite the author in any work or product based on this material.
25  *
26  * ===========================================================================
27  *
28  * Authors: Melvin Quintos
29  *
30  * File Description:
31  * Provides declaration of CSnpBitfieldFactory and CSnpBitfieldNull class.
32  * Do not use directly. Use CSnpBitfield instead.
33  *
34  */
35 
36 #include <vector>
37 
39 
41 
42 class CSnpBitfieldNull;
43 
44 // Creates the proper bitfield encoding based on the data
45 // Intended to be used only by CSnpBitfield facade
47 {
48 public:
49  static CSnpBitfield::IEncoding * CreateBitfield(const objects::CSeq_feat& feat);
50 };
51 
52 
53 // Null Object pattern for CSnpBitfield::IEncoding
55 {
56  virtual bool IsTrue(CSnpBitfield::EProperty e) const;
57  virtual bool IsTrue(CSnpBitfield::EFunctionClass e) const;
58  virtual int GetWeight() const;
59  virtual int GetVersion() const;
62  virtual CSnpBitfield::IEncoding * Clone();
63 };
64 
65 
67 #endif // OBJTOOLS___SNP_BITFIELD_FACTORY__HPP
68 
69 
static CSnpBitfield::IEncoding * CreateBitfield(const objects::CSeq_feat &feat)
virtual CSnpBitfield::EVariationClass GetVariationClass() const
virtual int GetWeight() const
virtual CSnpBitfield::IEncoding * Clone()
virtual CSnpBitfield::EFunctionClass GetFunctionClass() const
virtual int GetVersion() const
virtual bool IsTrue(CSnpBitfield::EProperty e) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
Modified on Mon Jul 15 05:31:45 2024 by modify_doxy.py rev. 669887