source: tags/arb_5.2/ARBDB/adExperiment.c

Last change on this file was 5849, checked in by westram, 16 years ago
  • added GBT_expect_(item/species/SAI/experiment)-functions. They do the same as their GBT_find_… similars, but export an error if the item is missing.
    • use at some locations
File size: 2.0 KB
Line 
1/* ================================================================ */
2/*                                                                  */
3/*   File      : adExperiment.c                                     */
4/*   Purpose   : DB-access on experiments                           */
5/*                                                                  */
6/*   Coded by Ralf Westram (coder@reallysoft.de) in December 2008   */
7/*   Institute of Microbiology (Technical University Munich)        */
8/*   http://www.arb-home.de/                                        */
9 /*                                                                  */
10 /* ================================================================ */
11
12#include "arbdbt.h"
13
14GBDATA* EXP_get_experiment_data(GBDATA *gb_species) {
15    return GB_search(gb_species, "experiment_data", GB_CREATE_CONTAINER);
16}
17
18GBDATA* EXP_find_experiment_rel_exp_data(GBDATA *gb_experiment_data, const char *name) {
19    return GBT_find_item_rel_item_data(gb_experiment_data, "name", name);
20}
21GBDATA* EXP_find_experiment(GBDATA *gb_species, const char *name) {
22    // search an experiment
23    // Note: If you know the experiment exists, use EXP_expect_experiment!
24    return EXP_find_experiment_rel_exp_data(EXP_get_experiment_data(gb_species), name);
25}
26GBDATA* EXP_expect_experiment(GBDATA *gb_species, const char *name) {
27    // find existing experiment
28    return GBT_expect_item_rel_item_data(EXP_get_experiment_data(gb_species), "name", name);
29}
30
31GBDATA* EXP_first_experiment_rel_exp_data(GBDATA *gb_experiment_data) {
32    return GB_entry(gb_experiment_data, "experiment");
33}
34
35GBDATA* EXP_next_experiment(GBDATA *gb_experiment) {
36    gb_assert(GB_has_key(gb_experiment, "experiment"));
37    return GB_nextEntry(gb_experiment);
38}
39
40
41GBDATA* EXP_find_or_create_experiment_rel_exp_data(GBDATA *gb_experiment_data, const char *name) {
42    /* Search for a experiment, when experiment does not exist create it */
43    return GBT_find_or_create_item_rel_item_data(gb_experiment_data, "experiment", "name", name, GB_FALSE);
44}
45
46
47
Note: See TracBrowser for help on using the repository browser.