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 _h_colidx0_priv_ 28 #define _h_colidx0_priv_ 29 30 #ifndef _h_kfs_directory_ 31 #include <kfs/directory.h> 32 #endif 33 34 #ifndef _h_colfmt_priv_ 35 #include "colfmt-priv.h" 36 #endif 37 38 #ifndef _h_klib_container_ 39 #include <klib/container.h> 40 #endif 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 47 /*-------------------------------------------------------------------------- 48 * KColumnIdx0 49 * level 0 index - event journaling 50 */ 51 typedef struct KColumnIdx0 KColumnIdx0; 52 struct KColumnIdx0 53 { 54 /* the in-core indices */ 55 BSTree bst; 56 size_t count; 57 }; 58 59 60 /* Open 61 */ 62 rc_t KColumnIdx0OpenRead_v1 ( KColumnIdx0 *self, 63 const KDirectory *dir, bool bswap ); 64 rc_t KColumnIdx0OpenRead ( KColumnIdx0 *self, 65 const KDirectory *dir, uint32_t count, bool bswap ); 66 67 /* Whack 68 */ 69 void KColumnIdx0Whack ( KColumnIdx0 *self ); 70 71 /* IdRange 72 * returns range of ids contained within 73 */ 74 bool KColumnIdx0IdRange ( const KColumnIdx0 *self, 75 int64_t *first, int64_t *upper ); 76 77 /* FindFirstRowId 78 */ 79 rc_t KColumnIdx0FindFirstRowId ( const KColumnIdx0 * self, 80 int64_t * found, int64_t start ); 81 82 /* LocateBlob 83 * locate an existing blob 84 */ 85 rc_t KColumnIdx0LocateBlob ( const KColumnIdx0 *self, 86 KColBlobLoc *loc, int64_t first, int64_t upper ); 87 88 89 #ifdef __cplusplus 90 } 91 #endif 92 93 #endif /* _h_colidx0_priv_ */ 94