source: tags/cvs_2_svn/TEST/test.cxx

Last change on this file was 5390, checked in by westram, 16 years ago
  • TAB-Ex
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.8 KB
Line 
1#include <stdio.h>
2#include <arbdb.h>
3#include <arbdbt.h>
4
5GBDATA *gb_main;
6
7void test_cb(GBDATA *gbd, int *clientdata, GB_CB_TYPE gbtype){
8    char *s = GB_read_string(gbd);
9    GB_write_string(gbd,"undo");
10    printf("test_cb called: renaming %s to undo !!!\n",s);
11}
12
13
14void modify_database(void){
15    GBDATA *gb_species_data, *gb_species, *gb_name;
16    printf("    modify rename * to hello \n");
17    gb_species_data = GB_search(gb_main,"species_data",GB_CREATE_CONTAINER);
18
19    gb_name = GB_find(gb_species_data, "name", "*", down_2_level);
20    gb_species = GB_get_father(gb_name);
21    GBDATA *gbd;
22    GB_write_string(gb_name,"hello");
23    printf("    adding callback\n");
24    GB_add_callback(gb_name, GB_CB_CHANGED, test_cb, 0);
25}
26
27void search_database(void){
28    GBDATA *gb_species_data, *gb_name;
29    gb_species_data = GB_search(gb_main,"species_data",GB_CREATE_CONTAINER);
30
31    gb_name = GB_find(gb_species_data, "name", "hello", down_2_level);
32    printf("    searched species hello: found %X\n",gb_name);
33
34    gb_name = GB_find(gb_species_data, "name", "undo", down_2_level);
35    printf("    searched species undo: found %X\n",gb_name);
36}
37
38
39int
40main(int argc, char **argv)
41{
42    char *server = ":";
43
44    if (argc==2) server = argv[1];
45    gb_main = GBT_open(server,"r",0);
46    printf("begin\n");
47    GB_change_my_security(gb_main,6,0);
48    GB_begin_transaction(gb_main);
49    search_database();
50    modify_database();
51    search_database();
52    printf("abort\n");
53    GB_abort_transaction(gb_main);
54
55    printf("begin\n");
56    GB_begin_transaction(gb_main);
57    search_database();
58    modify_database();
59    search_database();
60    printf("commit\n");
61    GB_commit_transaction(gb_main);
62
63    printf("begin\n");
64    GB_begin_transaction(gb_main);
65    search_database();
66    printf("commit\n");
67    GB_commit_transaction(gb_main);
68    GB_close(gb_main);
69    return 0;
70}
Note: See TracBrowser for help on using the repository browser.