1
// =============================================================== //
6
// Institute of Microbiology (Technical University Munich) //
7
// http://www.arb-home.de/ //
9
// =============================================================== //
17
#ifndef _GLIBCXX_VECTOR
21
#define gb_assert(cond) arb_assert(cond)
23
typedef SmartMallocPtr(char) GBL;
26
GBDATA *gb_ref; // the database entry on which the command is applied (may be species, gene, experiment, group and maybe more)
27
const char *default_tree_name; // if we have a default tree, its name is specified here (NULL otherwise)
30
GBL_reference(GBDATA *gbd, const char *treeName)
31
: gb_ref(gbd), default_tree_name(treeName) {}
33
GBDATA *get_main() const { return GB_get_root(gb_ref); }
34
GBDATA *get_ref() const { return gb_ref; }
35
const char *get_tree_name() const { return default_tree_name; }
39
std::vector<GBL> content;
42
void insert(char *copy) { content.push_back(copy); }
43
void insert(GBL smartie) { content.push_back(smartie); }
44
const char *get(int idx) const { gb_assert(idx<size()); return &*content[idx]; }
45
GBL get_smart(int idx) const { gb_assert(idx<size()); return content[idx]; }
46
int size() const { return content.size(); }
48
void erase() { content.clear(); }
50
char *concatenated() const;
51
void swap(GBL_streams& other) { std::swap(content, other.content); }
54
struct GBL_command_arguments : public GBL_reference {
55
GBL_command_arguments(GBDATA *gbd,
60
: GBL_reference(gbd, treeName),
66
const char *command; // the name of the current command
73
typedef GB_ERROR (*GBL_COMMAND)(GBL_command_arguments *args);
75
struct GBL_command_table {
76
const char *command_identifier;
81
#error gb_aci.h included twice