source: branches/lib/ARBDB/arbdbt.h

Last change on this file was 19549, checked in by westram, 5 weeks ago
  • reintegrates 'sync' into 'trunk'
    • fixes #869
      • introduces synchronisation of external commands via DB
      • macros now wait for these external commands to finish ⇒ macro can continue with results
  • adds: log:branches/sync@19535:19548
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
Line 
1#ifndef ARBDBT_H
2#define ARBDBT_H
3
4#ifndef ARBDB_H
5#include <arbdb.h>
6#endif
7#ifndef DOWNCAST_H
8#include <downcast.h>
9#endif
10
11#define gb_assert(cond) arb_assert(cond)
12
13#define GBT_SPECIES_INDEX_SIZE       10000L
14#define GBT_SAI_INDEX_SIZE           1000L
15
16#define GB_GROUP_NAME_MAX 256
17
18#define DEFAULT_BRANCH_LENGTH 0.1
19
20#define ERROR_CONTAINER_PATH    "tmp/message/pending"
21
22#define REMOTE_BASE              "tmp/remote/"
23#define MACRO_TRIGGER_CONTAINER  REMOTE_BASE "trigger"
24#define MACRO_TRIGGER_TERMINATED MACRO_TRIGGER_CONTAINER "/terminated"
25#define MACRO_TRIGGER_RECORDING  MACRO_TRIGGER_CONTAINER "/recording"
26#define MACRO_TRIGGER_EXECUTING  MACRO_TRIGGER_CONTAINER "/executing"
27#define MACRO_TRIGGER_ERROR      MACRO_TRIGGER_CONTAINER "/error"
28#define MACRO_TRIGGER_TRACKED    MACRO_TRIGGER_CONTAINER "/tracked"
29
30enum GBT_RemarkType { REMARK_NONE, REMARK_BOOTSTRAP, REMARK_OTHER };
31
32enum GBT_TreeRemoveType {
33    GBT_REMOVE_MARKED   = 1,
34    GBT_REMOVE_UNMARKED = 2,
35    GBT_REMOVE_ZOMBIES  = 4,
36
37    // please keep AWT_RemoveType in sync with GBT_TreeRemoveType
38    // see ../SL/AP_TREE/AP_Tree.hxx@sync_GBT_TreeRemoveType__AWT_RemoveType
39
40    // combined defines:
41    GBT_KEEP_MARKED = GBT_REMOVE_UNMARKED|GBT_REMOVE_ZOMBIES,
42};
43
44enum GBT_ORDER_MODE {
45    GBT_BEHIND,
46    GBT_INFRONTOF,
47};
48
49enum TreeModel { ROOTED = 0, UNROOTED = 1 };
50
51CONSTEXPR_INLINE int nodes_2_edges(int nodes) { return nodes-1; }
52CONSTEXPR_INLINE int edges_2_nodes(int nodes) { return nodes+1; }
53
54CONSTEXPR_INLINE int leafs_2_nodes(int leafs, TreeModel model) {
55    //! calculate the number of (leaf- plus inner-)nodes in a tree with 'leafs' leafs
56    return 2*leafs-1-int(model);
57}
58CONSTEXPR_INLINE int nodes_2_leafs(int nodes, TreeModel model) {
59    //! calculate the number of leafs in a tree with 'nodes' (leaf- plus inner-)nodes
60    return (nodes+1+int(model))/2;
61}
62CONSTEXPR_INLINE int leafs_2_edges(int leafs, TreeModel model) {
63    //! calculate the number of edges in a tree with 'leafs' leafs
64    return nodes_2_edges(leafs_2_nodes(leafs, model));
65}
66CONSTEXPR_INLINE int edges_2_leafs(int edges, TreeModel model) {
67    //! calculate the number of leafs in a tree with 'edges' edges
68    return nodes_2_leafs(edges_2_nodes(edges), model);
69}
70
71CONSTEXPR_INLINE int leafs_2_innerNodes(int leafs, TreeModel model) {
72    //! calculate the number of inner nodes in a tree with 'leafs' leafs
73    return leafs_2_nodes(leafs, model)-leafs;
74}
75CONSTEXPR_INLINE int nodes_2_innerNodes(int nodes, TreeModel model) {
76    //! calculate the number of inner nodes in a tree with 'nodes' (leaf- plus inner-)nodes
77    return nodes-nodes_2_leafs(nodes, model);
78}
79
80#define SRT_AUTOCORRECT_TREENAME " =:\n=:*=tree_*1:tree_tree_*=tree_*1"
81#define SRT_AUTOCORRECT_ALINAME  " =:\n=:*=ali_*1:ali_ali_*=ali_*1"
82
83typedef GB_ERROR (*species_callback)(GBDATA *gb_species, int *clientdata);
84
85#include <ad_t_prot.h>
86
87#define CHANGE_KEY_PATH             "presets/key_data"
88#define CHANGE_KEY_PATH_GENES       "presets/gene_key_data"
89#define CHANGE_KEY_PATH_EXPERIMENTS "presets/experiment_key_data"
90
91#define CHANGEKEY        "key"
92#define CHANGEKEY_NAME   "key_name"
93#define CHANGEKEY_TYPE   "key_type"
94#define CHANGEKEY_HIDDEN "key_hidden"
95
96
97#else
98#error arbdbt.h included twice
99#endif
100
101
Note: See TracBrowser for help on using the repository browser.