source: tags/initial/ARBDBPP/adextended.cxx

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1#include <stdio.h>
2#include <memory.h>
3#include <string.h>
4#include <arbdb.h>
5#include <arbdbt.h>
6#include <iostream.h>
7#include "arbdb++.hxx"
8
9/***********************
10***************************************************************
11class AD_SAI
12
13*******************************************
14*******************************************************/
15
16AD_SAI::AD_SAI()
17        {
18       
19        gb_main = 0;
20                }
21
22AD_SAI::~AD_SAI()
23        // callbacks nur innerhalb von transaktionen releasen ->exit
24        // gibt speicherplatz frei
25        {
26        if (ad_main)
27                new AD_ERR("AD_SAI: No exit() !!",CORE);               
28        }
29
30AD_ERR * AD_SAI::exit()
31        {
32        if (ad_main) release();
33        delete container;
34        ad_main = 0;
35        return 0;
36        }
37
38       
39AD_ERR * AD_SAI::init(AD_MAIN * gb_ptr)
40        // stellt verknuepfung mit ubergeordneter Klasse her
41        {
42        if (ad_main != 0)       {
43                return new AD_ERR("AD_SAI: no reinit\n"); 
44        }
45        if (gb_ptr->gbd) {
46                ad_main = gb_ptr;
47                gb_main = gb_ptr->gbd;
48                last = count = 0;
49                AD_READWRITE::gbdataptr = 0;
50                return 0;
51                }
52        else    {
53                return new AD_ERR("SAI init (NULL)\n");
54        }
55}
56
57AD_ERR  *AD_SAI::first()
58{
59        if (ad_main) {
60                AD_SAI::release();      // speicherplatz freigeben
61                gb_species = GBT_first_SAI(gb_main);
62                //erstes extended
63                AD_SAI::initpntr();
64                return 0;
65        }
66        return new AD_ERR("AD_extended first: NO AD_MAIN\n");
67}
68
69
70
71AD_ERR * AD_SAI::find(char *path)
72//       sucht nach extended mit namen = path
73{       
74        error();
75        AD_SPECIES::release();  // speicherplatz freigeben`
76        gb_species = GBT_find_SAI_rel_exdata(ad_main->extended_data,path);
77        AD_SPECIES::initpntr();
78        return 0;
79}
80               
81
82
83
84AD_ERR * AD_SAI::create(char *name) {
85GBDATA *extended;
86        if (strlen(name) < 2)
87                return new AD_ERR("AD_SAI::create ungueltige Parameter");
88        extended = GBT_create_SAI(gb_main,name);
89        gb_species = extended;
90        initpntr();
91        return 0;
92        }
93
94                                               
95
96char * AD_SAI::fullname()
97{
98    return 0;
99}
100
101AD_ERR * AD_SAI::next()
102        // initialisiert objekt auf naechstes extended oder erstes
103{
104        error();
105
106        if (!gb_species && last == 0)
107                first();
108        AD_SAI::release();      // speicherplatz freigeben
109        gb_species = GBT_next_SAI(gb_species);
110        AD_SAI::initpntr();
111        return 0;
112}
113
114/******** not yet in GBT
115AD_ERR *AD_SAI::firstmarked()
116{
117        if (ad_main )
118                {
119                gb_extended = GBT_first_marked_extended(gb_exdata);
120                initpntr();
121                return 0;
122                }
123        return new AD_ERR("AD_SAI::firstmarked() but no init()!",CORE);
124}
125
126AD_ERR * AD_SAI::nextmarked()
127        // naechstes markiertes extended oder erstes markiertes
128{
129        if ((!gb_extended && (last ==0)))
130                {
131                gb_extended = GBT_first_marked_extended(gb_exdata);
132                initpntr();
133                return 0;
134                }
135        else {
136                release();
137                gb_extended = GBT_next_marked_extended(gb_extended);
138                initpntr();
139                return 0;
140        }
141}
142************/
143       
144       
145void AD_SAI::operator =(const AD_SAI& right)
146{
147        gb_main = right.gb_main;
148        (AD_SPECIES &) *this = (AD_SPECIES&) right;
149        }
150
151               
152
153       
Note: See TracBrowser for help on using the repository browser.