| 1 | // ================================================================ // |
|---|
| 2 | // // |
|---|
| 3 | // File : arbdb_base.h // |
|---|
| 4 | // Purpose : most minimal ARBDB interface // |
|---|
| 5 | // provide functions/types needed for arb_assert.h // |
|---|
| 6 | // // |
|---|
| 7 | // Coded by Ralf Westram (coder@reallysoft.de) in December 2008 // |
|---|
| 8 | // Institute of Microbiology (Technical University Munich) // |
|---|
| 9 | // http://www.arb-home.de/ // |
|---|
| 10 | // // |
|---|
| 11 | // ================================================================ // |
|---|
| 12 | |
|---|
| 13 | #ifndef ARBDB_BASE_H |
|---|
| 14 | #define ARBDB_BASE_H |
|---|
| 15 | |
|---|
| 16 | #ifndef _GLIBCXX_CSTDIO |
|---|
| 17 | #include <cstdio> |
|---|
| 18 | #endif |
|---|
| 19 | #ifndef ARB_CORE_H |
|---|
| 20 | #include <arb_core.h> |
|---|
| 21 | #endif |
|---|
| 22 | |
|---|
| 23 | #define NOT4PERL // function definitions starting with NOT4PERL are not included into the ARB-perl-interface |
|---|
| 24 | |
|---|
| 25 | typedef const char *GB_CSTR; // read-only |
|---|
| 26 | typedef char *GB_BUFFER; // points to a piece of mem (writeable, but don't free!)*/ |
|---|
| 27 | typedef const char *GB_CBUFFER; // points to a piece of mem (readable only)*/ |
|---|
| 28 | |
|---|
| 29 | struct GBDATA; |
|---|
| 30 | struct GB_HASH; |
|---|
| 31 | |
|---|
| 32 | typedef int GBQUARK; // -1 = any quark, 0 = no quark, >0 explicit quark |
|---|
| 33 | |
|---|
| 34 | typedef float GBT_LEN; |
|---|
| 35 | |
|---|
| 36 | class TreeNode; |
|---|
| 37 | class TreeRoot; |
|---|
| 38 | |
|---|
| 39 | typedef unsigned int GB_UINT4; // 4 byte! @@@ use uint32_t ? |
|---|
| 40 | typedef const unsigned int GB_CUINT4; |
|---|
| 41 | |
|---|
| 42 | typedef unsigned long GB_ULONG; |
|---|
| 43 | typedef const float GB_CFLOAT; |
|---|
| 44 | |
|---|
| 45 | |
|---|
| 46 | enum GB_CB_TYPE { |
|---|
| 47 | GB_CB_NONE = 0, |
|---|
| 48 | GB_CB_DELETE = 1, |
|---|
| 49 | GB_CB_CHANGED = 2, // element or son of element changed |
|---|
| 50 | GB_CB_SON_CREATED = 4, // new son created |
|---|
| 51 | |
|---|
| 52 | // convenience defs: |
|---|
| 53 | GB_CB_ALL = GB_CB_DELETE|GB_CB_CHANGED|GB_CB_SON_CREATED, |
|---|
| 54 | GB_CB_ALL_BUT_DELETE = GB_CB_ALL&~GB_CB_DELETE, |
|---|
| 55 | GB_CB_CHANGED_OR_DELETED = GB_CB_CHANGED|GB_CB_DELETE, |
|---|
| 56 | GB_CB_CHANGED_OR_SON_CREATED = GB_CB_CHANGED|GB_CB_SON_CREATED, |
|---|
| 57 | }; |
|---|
| 58 | |
|---|
| 59 | typedef void (*GB_CB)(GBDATA *, int *clientdata, GB_CB_TYPE gbtype); |
|---|
| 60 | |
|---|
| 61 | enum GB_alignment_type { |
|---|
| 62 | GB_AT_UNKNOWN, |
|---|
| 63 | GB_AT_RNA, // Nucleotide sequence (U) |
|---|
| 64 | GB_AT_DNA, // Nucleotide sequence (T) |
|---|
| 65 | GB_AT_AA, // AminoAcid |
|---|
| 66 | }; |
|---|
| 67 | |
|---|
| 68 | enum NewickFormat { // bit-values |
|---|
| 69 | nSIMPLE = 0, |
|---|
| 70 | nLENGTH = 1, |
|---|
| 71 | nGROUP = 2, |
|---|
| 72 | nREMARK = 4, |
|---|
| 73 | nWRAP = 8, |
|---|
| 74 | |
|---|
| 75 | nALL = nLENGTH|nGROUP|nREMARK, |
|---|
| 76 | }; |
|---|
| 77 | |
|---|
| 78 | |
|---|
| 79 | #else |
|---|
| 80 | #error arbdb_base.h included twice |
|---|
| 81 | #endif // ARBDB_BASE_H |
|---|