source: tags/cvs_2_svn/GENOM/EXP_db.cxx

Last change on this file was 5340, checked in by westram, 16 years ago
  • use GB_CASE parameter
  • changed GBS_string_[s]cmp
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.5 KB
Line 
1//  ==================================================================== //
2//                                                                       //
3//    File      : EXP_db.cxx                                             //
4//    Purpose   : database access for experiments                        //
5//    Time-stamp: <Thu May/22/2008 15:48 MET Coder@ReallySoft.de>        //
6//                                                                       //
7//                                                                       //
8//  Coded by Ralf Westram (coder@reallysoft.de) in September 2001        //
9//  Copyright Department of Microbiology (Technical University Munich)   //
10//                                                                       //
11//  Visit our web site at: http://www.arb-home.de/                       //
12//                                                                       //
13//                                                                       //
14//  ==================================================================== //
15
16#include <cstdio>
17#include <arbdb.h>
18#include <arbdbt.h>
19#include <aw_root.hxx>
20#include "EXP.hxx"
21
22#define exp_assert(bed) arb_assert(bed)
23
24using namespace std;
25
26GBDATA* EXP_find_experiment_rel_experiment_data(GBDATA *gb_experiment_data, const char *name) {
27    GBDATA *gb_name = GB_find_string(gb_experiment_data, "name", name, GB_IGNORE_CASE, down_2_level);
28
29    if (gb_name) return GB_get_father(gb_name); // found existing experiment
30    return 0;
31}
32GBDATA* EXP_find_experiment(GBDATA *gb_species, const char *name) {
33    // find existing experiment
34    return EXP_find_experiment_rel_experiment_data(EXP_get_experiment_data(gb_species), name);
35}
36
37
38GBDATA* EXP_first_experiment_rel_experiment_data(GBDATA *gb_experiment_data) {
39    return GB_entry(gb_experiment_data, "experiment");
40}
41
42GBDATA* EXP_next_experiment(GBDATA *gb_experiment) {
43    exp_assert(GB_has_key(gb_experiment, "experiment"));
44    return GB_nextEntry(gb_experiment);
45}
46
47
48GBDATA* EXT_create_experiment_rel_experiment_data(GBDATA *gb_experiment_data, const char *name) {
49    /* Search for a experiment, when experiment does not exist create it */
50    GBDATA *gb_name = GB_find_string(gb_experiment_data, "name", name, GB_IGNORE_CASE, down_2_level);
51
52    if (gb_name) return GB_get_father(gb_name); // found existing experiment
53
54    GBDATA *gb_experiment = GB_create_container(gb_experiment_data, "experiment");
55    gb_name = GB_create(gb_experiment, "name", GB_STRING);
56    GB_write_string(gb_name, name);
57
58    return gb_experiment;
59}
60
61
Note: See TracBrowser for help on using the repository browser.