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 readten 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 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 struct VDBManager;
32 struct VTable;
33 
34 typedef struct TableReaderWGS TableReaderWGS;
35 
36 rc_t TableReaderWGS_MakeTable(const TableReaderWGS ** cself,
37                               const struct VDBManager* vmgr,
38                               const struct VTable* table,
39                               uint32_t options, size_t cache);
40 
41 void TableReaderWGS_Whack(const TableReaderWGS* cself);
42 
43 rc_t TableReaderWGS_SeqLength(const TableReaderWGS* cself, int64_t row, INSDC_coord_len* len);
44 
45 rc_t TableReaderWGS_Circular(const TableReaderWGS* cself, int64_t row, bool* circular);
46 
47 /* *md5 is NULL if not present */
48 rc_t CC TableReaderWGS_MD5(const TableReaderWGS* cself, int64_t row, const uint8_t** md5);
49 
50 /* read a chunk of refseq into buffer from offset up to offset + len
51    if offset is beyond non-circular refseq size error is returned
52  */
53 rc_t CC TableReaderWGS_Read(const TableReaderWGS* cself, int64_t row,
54                             INSDC_coord_zero offset, INSDC_coord_len len,
55                             uint8_t* buffer, INSDC_coord_len* written);
56 #ifdef __cplusplus
57 }
58 #endif
59