00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <eyedb/eyedb.h>
00018
00019 #ifndef _eyedb_oqlctb_
00020 #define _eyedb_oqlctb_
00021
00022 namespace eyedb {
00023
00024 class OqlCtbDatafile;
00025 class OqlCtbDataspace;
00026 class OqlCtbEyedb;
00027 class OqlCtbConnection;
00028 class OqlCtbDatabase;
00029 class OqlCtbMath;
00030 class oql;
00031
00032
00033 class oqlctb {
00034
00035 public:
00036 oqlctb(int &argc, char *argv[]) {
00037 eyedb::init(argc, argv);
00038 init();
00039 }
00040
00041 ~oqlctb() {
00042 release();
00043 eyedb::release();
00044 }
00045
00046 static void init();
00047 static void release();
00048 static eyedb::Status updateSchema(eyedb::Database *db);
00049 static eyedb::Status updateSchema(eyedb::Schema *m);
00050 };
00051
00052 class oqlctbDatabase : public eyedb::Database {
00053
00054 public:
00055 oqlctbDatabase(const char *dbname, const char *_dbmdb_str = 0) : eyedb::Database(dbname, _dbmdb_str) {}
00056 oqlctbDatabase(eyedb::Connection *conn, const char *dbname, const char *_dbmdb_str, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00057 oqlctbDatabase(eyedb::Connection *conn, const char *dbname, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00058 oqlctbDatabase(const char *dbname, int _dbid, const char *_dbmdb_str = 0) : eyedb::Database(dbname, _dbid, _dbmdb_str) {}
00059 oqlctbDatabase(int _dbid, const char *_dbmdb_str = 0) : eyedb::Database(_dbid, _dbmdb_str) {}
00060 eyedb::Status open(eyedb::Connection *, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00061 eyedb::Status open(eyedb::Connection *, eyedb::Database::OpenFlag, const eyedb::OpenHints *hints, const char *user = 0, const char *passwd = 0);
00062 static void setConsApp(eyedb::Database *);
00063 static eyedb::Status checkSchema(eyedb::Schema *);
00064 static eyedb::Bool getDynamicGetErrorPolicy();
00065 static eyedb::Bool getDynamicSetErrorPolicy();
00066 static void setDynamicGetErrorPolicy(eyedb::Bool policy);
00067 static void setDynamicSetErrorPolicy(eyedb::Bool policy);
00068 };
00069
00070 class OqlCtbDatabaseOpenMode {
00071
00072 public:
00073 enum Type {
00074 DBRead = 2,
00075 DBRW = 4,
00076 DBAdmin = 16,
00077 DBOpenLocal = 32
00078 };
00079 };
00080
00081 class OqlCtbLockMode {
00082
00083 public:
00084 enum Type {
00085 DefaultLock = 0,
00086 LockN = 1,
00087 LockX = 2,
00088 LockSX = 3,
00089 LockS = 4,
00090 LockP = 5
00091 };
00092 };
00093
00094 class OqlCtbTransactionMode {
00095
00096 public:
00097 enum Type {
00098 TransactionOff = 1,
00099 TransactionOn = 2
00100 };
00101 };
00102
00103 class OqlCtbTransactionLockMode {
00104
00105 public:
00106 enum Type {
00107 ReadSWriteS = 1,
00108 ReadSWriteSX = 2,
00109 ReadSWriteX = 3,
00110 ReadSXWriteSX = 4,
00111 ReadSXWriteX = 5,
00112 ReadXWriteX = 6,
00113 ReadNWriteS = 7,
00114 ReadNWriteSX = 8,
00115 ReadNWriteX = 9,
00116 ReadNWriteN = 10,
00117 DatabaseX = 11
00118 };
00119 };
00120
00121 class OqlCtbRecoveryMode {
00122
00123 public:
00124 enum Type {
00125 RecoveryOff = 3,
00126 RecoveryPartial = 4,
00127 RecoveryFull = 5
00128 };
00129 };
00130
00131 class OqlCtbToStringFlags {
00132
00133 public:
00134 enum Type {
00135 MTimeTrace = 1,
00136 CTimeTrace = 2,
00137 CMTimeTrace = 3,
00138 PointerTrace = 4,
00139 CompOidTrace = 8,
00140 NativeTrace = 16,
00141 ContentsTrace = 32,
00142 InhAttrTrace = 64,
00143 InhExecTrace = 128,
00144 ExecBodyTrace = 256,
00145 SysExecTrace = 512,
00146 NoScopeTrace = 1024,
00147 FullRecursTrace = 4096
00148 };
00149 };
00150
00151 class OqlCtbMapType {
00152
00153 public:
00154 enum Type {
00155 BitmapType = 0,
00156 LinkmapType = 1
00157 };
00158 };
00159
00160 class OqlCtbDatType {
00161
00162 public:
00163 enum Type {
00164 LogicalOidType = 256,
00165 PhysicalOidType = 257
00166 };
00167 };
00168
00169 class OqlCtbDatafile : public eyedb::Struct {
00170
00171 public:
00172 OqlCtbDatafile(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00173 OqlCtbDatafile(const OqlCtbDatafile& x);
00174
00175 virtual eyedb::Object *clone() const {return new OqlCtbDatafile(*this);};
00176
00177 OqlCtbDatafile& operator=(const OqlCtbDatafile& x);
00178
00179 virtual OqlCtbDatafile *asOqlCtbDatafile() {return this;}
00180 virtual const OqlCtbDatafile *asOqlCtbDatafile() const {return this;}
00181
00182 eyedb::Status setId(eyedblib::int16 );
00183 eyedblib::int16 getId(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00184
00185 eyedb::Status setDspid(eyedblib::int16 );
00186 eyedblib::int16 getDspid(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00187
00188 eyedb::Status setDsp(OqlCtbDataspace*);
00189 OqlCtbDataspace*getDsp(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00190 const OqlCtbDataspace*getDsp(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00191 eyedb::Oid getDspOid(eyedb::Status * = 0) const;
00192 eyedb::Status setDspOid(const eyedb::Oid &);
00193
00194 eyedb::Status setFile(const std::string &);
00195 eyedb::Status setFile(unsigned int a0, char );
00196 std::string getFile(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00197 char getFile(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00198
00199 eyedb::Status setName(const std::string &);
00200 eyedb::Status setName(unsigned int a0, char );
00201 std::string getName(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00202 char getName(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00203
00204 eyedb::Status setMtype(OqlCtbMapType::Type , eyedb::Bool _check_value = eyedb::True);
00205 OqlCtbMapType::Type getMtype(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00206
00207 eyedb::Status setMaxsize(eyedblib::int32 );
00208 eyedblib::int32 getMaxsize(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00209
00210 eyedb::Status setSlotsize(eyedblib::int32 );
00211 eyedblib::int32 getSlotsize(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00212
00213 eyedb::Status setDtype(OqlCtbDatType::Type , eyedb::Bool _check_value = eyedb::True);
00214 OqlCtbDatType::Type getDtype(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00215 virtual ~OqlCtbDatafile() {garbageRealize();}
00216
00217
00218 Datafile *xdatfile;
00219 virtual void userInitialize();
00220 virtual void userCopy(const Object &);
00221
00222
00223 protected:
00224 OqlCtbDatafile(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00225 OqlCtbDatafile(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00226 OqlCtbDatafile(const OqlCtbDatafile *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00227
00228 private:
00229 void initialize(eyedb::Database *_db);
00230
00231 public:
00232 OqlCtbDatafile(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00233 OqlCtbDatafile(const OqlCtbDatafile *, eyedb::Bool = eyedb::False);
00234 OqlCtbDatafile(const eyedb::Class *, eyedb::Data);
00235 };
00236
00237 class OqlCtbDataspace : public eyedb::Struct {
00238
00239 public:
00240 OqlCtbDataspace(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00241 OqlCtbDataspace(const OqlCtbDataspace& x);
00242
00243 virtual eyedb::Object *clone() const {return new OqlCtbDataspace(*this);};
00244
00245 OqlCtbDataspace& operator=(const OqlCtbDataspace& x);
00246
00247 virtual OqlCtbDataspace *asOqlCtbDataspace() {return this;}
00248 virtual const OqlCtbDataspace *asOqlCtbDataspace() const {return this;}
00249
00250 eyedb::Status setId(eyedblib::int16 );
00251 eyedblib::int16 getId(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00252
00253 eyedb::Status setName(const std::string &);
00254 eyedb::Status setName(unsigned int a0, char );
00255 std::string getName(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00256 char getName(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00257
00258 eyedb::Status setDatafiles(unsigned int a0, OqlCtbDatafile*);
00259 eyedb::Status setDatafilesCount(unsigned int a0);
00260 OqlCtbDatafile*getDatafiles(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00261 const OqlCtbDatafile*getDatafiles(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00262 eyedb::Oid getDatafilesOid(unsigned int a0, eyedb::Status * = 0) const;
00263 eyedb::Status setDatafilesOid(unsigned int a0, const eyedb::Oid &);
00264 unsigned int getDatafilesCount(eyedb::Status * = 0) const;
00265 virtual ~OqlCtbDataspace() {garbageRealize();}
00266
00267
00268 Dataspace *xdataspace;
00269 virtual void userInitialize();
00270 virtual void userCopy(const Object &);
00271
00272
00273 protected:
00274 OqlCtbDataspace(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00275 OqlCtbDataspace(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00276 OqlCtbDataspace(const OqlCtbDataspace *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00277
00278 private:
00279 void initialize(eyedb::Database *_db);
00280
00281 public:
00282 OqlCtbDataspace(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00283 OqlCtbDataspace(const OqlCtbDataspace *, eyedb::Bool = eyedb::False);
00284 OqlCtbDataspace(const eyedb::Class *, eyedb::Data);
00285 };
00286
00287 class OqlCtbEyedb : public eyedb::Struct {
00288
00289 public:
00290 OqlCtbEyedb(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00291 OqlCtbEyedb(const OqlCtbEyedb& x);
00292
00293 virtual eyedb::Object *clone() const {return new OqlCtbEyedb(*this);};
00294
00295 OqlCtbEyedb& operator=(const OqlCtbEyedb& x);
00296
00297 virtual OqlCtbEyedb *asOqlCtbEyedb() {return this;}
00298 virtual const OqlCtbEyedb *asOqlCtbEyedb() const {return this;}
00299 virtual ~OqlCtbEyedb() {garbageRealize();}
00300
00301 protected:
00302 OqlCtbEyedb(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00303 OqlCtbEyedb(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00304 OqlCtbEyedb(const OqlCtbEyedb *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00305
00306 private:
00307 void initialize(eyedb::Database *_db);
00308
00309 public:
00310 OqlCtbEyedb(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00311 OqlCtbEyedb(const OqlCtbEyedb *, eyedb::Bool = eyedb::False);
00312 OqlCtbEyedb(const eyedb::Class *, eyedb::Data);
00313 };
00314
00315 class OqlCtbConnection : public eyedb::Struct {
00316
00317 public:
00318 OqlCtbConnection(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00319 OqlCtbConnection(const OqlCtbConnection& x);
00320
00321 virtual eyedb::Object *clone() const {return new OqlCtbConnection(*this);};
00322
00323 OqlCtbConnection& operator=(const OqlCtbConnection& x);
00324
00325 virtual OqlCtbConnection *asOqlCtbConnection() {return this;}
00326 virtual const OqlCtbConnection *asOqlCtbConnection() const {return this;}
00327 virtual ~OqlCtbConnection() {garbageRealize();}
00328
00329
00330 Connection *conn;
00331 virtual void userInitialize();
00332 virtual void userCopy(const Object &);
00333
00334
00335 protected:
00336 OqlCtbConnection(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00337 OqlCtbConnection(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00338 OqlCtbConnection(const OqlCtbConnection *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00339
00340 private:
00341 void initialize(eyedb::Database *_db);
00342
00343 public:
00344 OqlCtbConnection(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00345 OqlCtbConnection(const OqlCtbConnection *, eyedb::Bool = eyedb::False);
00346 OqlCtbConnection(const eyedb::Class *, eyedb::Data);
00347 };
00348
00349 class OqlCtbDatabase : public eyedb::Struct {
00350
00351 public:
00352 OqlCtbDatabase(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00353 OqlCtbDatabase(const OqlCtbDatabase& x);
00354
00355 virtual eyedb::Object *clone() const {return new OqlCtbDatabase(*this);};
00356
00357 OqlCtbDatabase& operator=(const OqlCtbDatabase& x);
00358
00359 virtual OqlCtbDatabase *asOqlCtbDatabase() {return this;}
00360 virtual const OqlCtbDatabase *asOqlCtbDatabase() const {return this;}
00361
00362 eyedb::Status setDbname(const std::string &);
00363 eyedb::Status setDbname(unsigned int a0, char );
00364 std::string getDbname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00365 char getDbname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00366
00367 eyedb::Status setDbid(eyedblib::int32 );
00368 eyedblib::int32 getDbid(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00369
00370 eyedb::Status setDbmdb(const std::string &);
00371 eyedb::Status setDbmdb(unsigned int a0, char );
00372 std::string getDbmdb(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00373 char getDbmdb(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00374 virtual ~OqlCtbDatabase() {garbageRealize();}
00375
00376
00377 Database *xdb;
00378 virtual void userInitialize();
00379 virtual void userCopy(const Object &);
00380
00381
00382 protected:
00383 OqlCtbDatabase(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00384 OqlCtbDatabase(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00385 OqlCtbDatabase(const OqlCtbDatabase *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00386
00387 private:
00388 void initialize(eyedb::Database *_db);
00389
00390 public:
00391 OqlCtbDatabase(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00392 OqlCtbDatabase(const OqlCtbDatabase *, eyedb::Bool = eyedb::False);
00393 OqlCtbDatabase(const eyedb::Class *, eyedb::Data);
00394 };
00395
00396 class OqlCtbMath : public eyedb::Struct {
00397
00398 public:
00399 OqlCtbMath(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00400 OqlCtbMath(const OqlCtbMath& x);
00401
00402 virtual eyedb::Object *clone() const {return new OqlCtbMath(*this);};
00403
00404 OqlCtbMath& operator=(const OqlCtbMath& x);
00405
00406 virtual OqlCtbMath *asOqlCtbMath() {return this;}
00407 virtual const OqlCtbMath *asOqlCtbMath() const {return this;}
00408 virtual ~OqlCtbMath() {garbageRealize();}
00409
00410 protected:
00411 OqlCtbMath(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00412 OqlCtbMath(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00413 OqlCtbMath(const OqlCtbMath *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00414
00415 private:
00416 void initialize(eyedb::Database *_db);
00417
00418 public:
00419 OqlCtbMath(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00420 OqlCtbMath(const OqlCtbMath *, eyedb::Bool = eyedb::False);
00421 OqlCtbMath(const eyedb::Class *, eyedb::Data);
00422 };
00423
00424 class oql : public eyedb::Struct {
00425
00426 public:
00427 oql(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00428 oql(const oql& x);
00429
00430 virtual eyedb::Object *clone() const {return new oql(*this);};
00431
00432 oql& operator=(const oql& x);
00433
00434 virtual oql *asOql() {return this;}
00435 virtual const oql *asOql() const {return this;}
00436 virtual ~oql() {garbageRealize();}
00437
00438 protected:
00439 oql(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00440 oql(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00441 oql(const oql *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00442
00443 private:
00444 void initialize(eyedb::Database *_db);
00445
00446 public:
00447 oql(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00448 oql(const oql *, eyedb::Bool = eyedb::False);
00449 oql(const eyedb::Class *, eyedb::Data);
00450 };
00451
00452
00453 extern eyedb::Object *oqlctbMakeObject(eyedb::Object *, eyedb::Bool=eyedb::True);
00454 extern eyedb::Bool oqlctb_set_oid_check(eyedb::Bool);
00455 extern eyedb::Bool oqlctb_get_oid_check();
00456
00457
00458 }
00459
00460 #endif