1 /*===========================================================================
2 *
3 *                            PUBLIC DOMAIN NOTICE
4 *               National Center for Biotechnology Information
5 *
6 *  This software/database is a "United States Government Work" under the
7 *  terms of the United States Copyright Act.  It was written as part of
8 *  the author's official duties as a United States Government employee and
9 *  thus cannot be copyrighted.  This software/database is freely available
10 *  to the public for use. The National Library of Medicine and the U.S.
11 *  Government have not placed any restriction on its use or reproduction.
12 *
13 *  Although all reasonable efforts have been taken to ensure the accuracy
14 *  and reliability of the software and data, the NLM and the U.S.
15 *  Government do not and cannot warrant the performance or results that
16 *  may be obtained by using this software or data. The NLM and the U.S.
17 *  Government disclaim all warranties, express or implied, including
18 *  warranties of performance, merchantability or fitness for any particular
19 *  purpose.
20 *
21 *  Please cite the author in any work or product based on this material.
22 *
23 * ===========================================================================
24 *
25 */
26 
27 #ifndef _hpp_ngs_ncbi_NGS_
28 #define _hpp_ngs_ncbi_NGS_
29 
30 #ifndef _hpp_ngs_read_collection_
31 #include <ngs/ReadCollection.hpp>
32 #endif
33 
34 #ifndef _hpp_ngs_reference_sequence_
35 #include <ngs/ReferenceSequence.hpp>
36 #endif
37 
38 
39 /*==========================================================================
40  * NCBI NGS Engine
41  *  this class binds the NGS interface to NCBI's NGS implementation
42  *  all of the code operates natively on SRA files
43  */
44 namespace ncbi
45 {
46 
47     /*----------------------------------------------------------------------
48      * typedefs used to import names from ngs namespace
49      */
50     typedef :: ngs :: String String;
51     typedef :: ngs :: ErrorMsg ErrorMsg;
52     typedef :: ngs :: ReadCollection ReadCollection;
53     typedef :: ngs :: ReferenceSequence ReferenceSequence;
54 
55 
56     /*======================================================================
57      * NGS
58      *  static implementation root
59      */
60     class NGS
61     {
62     public:
63 
64         /* setAppVersionString
65          *  updates User-Agent header in HTTP communications
66          *
67          *  example usage:
68          *    ncbi::NGS::setAppVersionString ( "pileup-stats.1.0.0" );
69          */
70         static
71         void setAppVersionString ( const String & app_version );
72             /*nothrow*/
73 
74         /* openReadCollection
75          *  create an object representing a named collection of reads
76          *  "spec" may be a path to an object
77          *  or may be an id, accession, or URL
78          */
79         static
80         ReadCollection openReadCollection ( const String & spec );
81             /*NGS_THROWS ( ErrorMsg );*/
82 
83         /* openReferenceSequence
84          *  create an object representing a named reference
85          *  "spec" may be a path to an object
86          *  or may be an id, accession, or URL
87          */
88         static
89         ReferenceSequence openReferenceSequence ( const String & spec );
90             /*NGS_THROWS ( ErrorMsg );*/
91     };
92 
93 } // ncbi
94 
95 #endif // _hpp_ngs_ncbi_NGS_
96