ARB
MG_adapt_ali.hxx
Go to the documentation of this file.
1 // ============================================================= //
2 // //
3 // File : MG_adapt_ali.hxx //
4 // Purpose : //
5 // //
6 // Institute of Microbiology (Technical University Munich) //
7 // http://www.arb-home.de/ //
8 // //
9 // ============================================================= //
10 
11 #ifndef MG_ADAPT_ALI_HXX
12 #define MG_ADAPT_ALI_HXX
13 
14 #ifndef ARBDB_BASE_H
15 #include <arbdb_base.h>
16 #endif
17 #ifndef ARB_STRARRAY_H
18 #include <arb_strarray.h>
19 #endif
20 
21 class MG_remap;
22 
23 class MG_remaps : virtual Noncopyable {
24  int n_remaps;
25  ConstStrArray alignment_names;
26  MG_remap **remaps;
27 
28 public:
29  MG_remaps(GBDATA *gb_left, GBDATA *gb_right, bool enable, const char *reference_species_names);
30  ~MG_remaps();
31 
32  int size() const { return n_remaps; }
33 #if defined(ASSERTION_USED)
34  bool validIdx(int idx) const { return idx>=0 && idx<size(); }
35 #endif
36 
37  bool doesRemap() const { return remaps; } // false when 'enable'==false has been passed to ctor
38 
39  const char *alignment_name(int idx) const { arb_assert(validIdx(idx)); return alignment_names[idx]; }
40  const MG_remap& remap(int idx) const { arb_assert(validIdx(idx)); return *remaps[idx]; }
41 };
42 
43 
44 GB_ERROR MG_adaptAllCopiedAlignments(const MG_remaps& remaps, GBDATA *source_species, GBDATA *destination_species);
45 
46 #else
47 #error mg_adapt_ali.hxx included twice
48 #endif // MG_ADAPT_ALI_HXX
#define arb_assert(cond)
Definition: arb_assert.h:245
const char * GB_ERROR
Definition: arb_core.h:25
MG_remaps(GBDATA *gb_left, GBDATA *gb_right, bool enable, const char *reference_species_names)
const MG_remap & remap(int idx) const
const char * alignment_name(int idx) const
GB_ERROR MG_adaptAllCopiedAlignments(const MG_remaps &remaps, GBDATA *source_species, GBDATA *destination_species)
int size() const
bool validIdx(int idx) const
bool doesRemap() const