22 #define GENE_DATA_PATH_LEN (sizeof(GENE_DATA_PATH)-1)
23 #define EXPERIMENT_DATA_PATH_LEN (sizeof(EXPERIMENT_DATA_PATH)-1)
47 for (
int i = 0; names[i]; ++i) {
48 const char *name = names[i];
49 if (strcmp(key_name, name+1) == 0) {
50 if (key_type == name[0]) {
62 if (key_type ==
GB_DB) {
64 int keylen = strlen(key_name);
65 for (
int i = 0; names[i]; ++i) {
66 const char *n = names[i]+1;
68 if (strncmp(key_name, n, keylen) == 0 && n[keylen] ==
'/') {
107 if (mode & RESCAN_REFRESH) {
114 for (
int i = 0; names[i]; ++i) {
115 const char *name = names[i];
116 if ((1<<name[0]) & bitfilter) {
134 GBT_scan_db(names, gb_species_data, GENE_DATA_PATH);
139 if (mode & RESCAN_REFRESH) {
150 for (
int i = 0; names[i]; ++i) {
151 const char *name = names[i];
152 if ((1<<name[0]) & bitfilter) {
166 GBT_scan_db(names, gb_species_data, EXPERIMENT_DATA_PATH);
171 if (mode & RESCAN_REFRESH) {
175 for (
int i = 0; names[i]; ++i) {
176 const char *name = names[i];
177 if ((1<<name[0]) & bitfilter) {
GB_ERROR GBT_add_new_experiment_changekey(GBDATA *gb_main, const char *name, GB_TYPES type)
long GB_read_int(GBDATA *gbd)
void species_field_selection_list_unhide_all_cb(AW_window *, GBDATA *gb_main)
void GB_warning_if(const char *message)
GBDATA * GB_nextEntry(GBDATA *entry)
static const char EXPERIMENT_DATA_PATH[]
void gene_field_selection_list_unhide_all_cb(AW_window *, GBDATA *gb_main)
#define EXPERIMENT_DATA_PATH_LEN
#define GENE_DATA_PATH_LEN
GB_ERROR GB_push_transaction(GBDATA *gbd)
bool is_in_GENE_path(const char *fieldpath)
GB_ERROR GB_delete(GBDATA *&source)
static const char GENE_DATA_PATH[]
GB_ERROR GBT_add_new_species_changekey(GBDATA *gb_main, const char *name, GB_TYPES type)
NOT4PERL long * GBT_read_int(GBDATA *gb_container, const char *fieldpath)
static void show_all_changekeys(GBDATA *gb_main, const char *change_key_path)
GB_ERROR GBT_add_new_gene_changekey(GBDATA *gb_main, const char *name, GB_TYPES type)
void GBT_scan_db(StrArray &fieldNames, GBDATA *gbd, const char *datapath)
GB_ERROR GB_pop_transaction(GBDATA *gbd)
bool GB_has_key(GBDATA *gbd, const char *key)
void species_field_selection_list_update_cb(AW_window *, GBDATA *gb_main)
#define CHANGE_KEY_PATH_GENES
GB_ERROR GB_write_int(GBDATA *gbd, long i)
bool is_in_EXPERIMENT_path(const char *fieldpath)
void species_field_selection_list_rescan(GBDATA *gb_main, RescanMode mode)
static void experiment_field_selection_list_rescan(GBDATA *gb_main, RescanMode mode)
bool is_in_reserved_path(const char *fieldpath)
void gene_field_selection_list_rescan(GBDATA *gb_main, RescanMode mode)
#define CHANGE_KEY_PATH_EXPERIMENTS
void gene_field_selection_list_update_cb(AW_window *, GBDATA *gb_main)
static void delete_unused_changekeys(GBDATA *gb_main, const CharPtrArray &names, const char *change_key_path)
GBDATA * GB_search(GBDATA *gbd, const char *fieldpath, GB_TYPES create)
const char * GBT_read_char_pntr(GBDATA *gb_container, const char *fieldpath)
void experiment_field_selection_list_update_cb(AW_window *, GBDATA *gb_main)
void experiment_field_selection_list_unhide_all_cb(AW_window *, GBDATA *gb_main)
GBDATA * GB_entry(GBDATA *father, const char *key)
CONSTEXPR long FIELD_FILTER_STRING_READABLE
GBDATA * GBT_get_species_data(GBDATA *gb_main)