syscls.h

00001 
00002 /*
00003  * EyeDB Version 2.7.12 Copyright (c) 1995-2006 SYSRA
00004  *
00005  * File 'syscls.h'
00006  *
00007  * Package Name 'syscls'
00008  *
00009  * Generated by eyedbodl at Fri Feb  9 14:01:42 2007
00010  *
00011  * ---------------------------------------------------
00012  * -------------- DO NOT EDIT THIS CODE --------------
00013  * ---------------------------------------------------
00014  *
00015  */
00016 
00017 #include <eyedb/eyedb.h>
00018 
00019 #ifndef _eyedb_syscls_
00020 #define _eyedb_syscls_
00021 
00022 namespace eyedb {
00023 
00024 class AttributeComponent;
00025 class AttributeComponentSet;
00026 class ClassComponent;
00027 class AgregatClassComponent;
00028 class ClassVariable;
00029 class Index;
00030 class HashIndex;
00031 class BTreeIndex;
00032 class CollAttrImpl;
00033 class ArgType;
00034 class Signature;
00035 class Executable;
00036 class AgregatClassExecutable;
00037 class Method;
00038 class FEMethod;
00039 class FEMethod_C;
00040 class BEMethod;
00041 class BEMethod_C;
00042 class BEMethod_OQL;
00043 class Trigger;
00044 class UniqueConstraint;
00045 class NotNullConstraint;
00046 class CardinalityDescription;
00047 class CardinalityConstraint;
00048 class CardinalityConstraint_Test;
00049 class ProtectionUser;
00050 class Protection;
00051 class UnreadableObject;
00052 class ClassConversion;
00053 
00054 
00055 class syscls {
00056 
00057  public:
00058   syscls(int &argc, char *argv[]) {
00059     eyedb::init(argc, argv);
00060     init();
00061   }
00062 
00063   ~syscls() {
00064     release();
00065     eyedb::release();
00066   }
00067 
00068   static void init();
00069   static void release();
00070   static eyedb::Status updateSchema(eyedb::Database *db);
00071   static eyedb::Status updateSchema(eyedb::Schema *m);
00072 };
00073 
00074 class sysclsDatabase : public eyedb::Database {
00075 
00076  public:
00077   sysclsDatabase(const char *dbname, const char *_dbmdb_str = 0) : eyedb::Database(dbname, _dbmdb_str) {}
00078   sysclsDatabase(eyedb::Connection *conn, const char *dbname, const char *_dbmdb_str, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00079   sysclsDatabase(eyedb::Connection *conn, const char *dbname, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00080   sysclsDatabase(const char *dbname, int _dbid, const char *_dbmdb_str = 0) : eyedb::Database(dbname, _dbid, _dbmdb_str) {}
00081   sysclsDatabase(int _dbid, const char *_dbmdb_str = 0) : eyedb::Database(_dbid, _dbmdb_str) {}
00082   eyedb::Status open(eyedb::Connection *, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00083   eyedb::Status open(eyedb::Connection *, eyedb::Database::OpenFlag, const eyedb::OpenHints *hints, const char *user = 0, const char *passwd = 0);
00084   static void setConsApp(eyedb::Database *);
00085   static eyedb::Status checkSchema(eyedb::Schema *);
00086   static eyedb::Bool getDynamicGetErrorPolicy();
00087   static eyedb::Bool getDynamicSetErrorPolicy();
00088   static void setDynamicGetErrorPolicy(eyedb::Bool policy);
00089   static void setDynamicSetErrorPolicy(eyedb::Bool policy);
00090 };
00091 
00092 enum IndexType {
00093   HashIndexType = 32,
00094   BTreeIndexType = 64
00095 };
00096 
00097 enum ExecutableLang {
00098   C_LANG = 1,
00099   OQL_LANG = 2,
00100   SYSTEM_EXEC = 256
00101 };
00102 
00103 enum ArgType_Type {
00104   ANY_TYPE = 0,
00105   VOID_TYPE = 1,
00106   INT16_TYPE = 2,
00107   INT32_TYPE = 3,
00108   INT64_TYPE = 4,
00109   STRING_TYPE = 5,
00110   CHAR_TYPE = 6,
00111   FLOAT_TYPE = 7,
00112   OID_TYPE = 8,
00113   OBJ_TYPE = 9,
00114   RAW_TYPE = 10,
00115   BYTE_TYPE = 11,
00116   ARRAY_TYPE = 256,
00117   IN_ARG_TYPE = 4096,
00118   OUT_ARG_TYPE = 8192,
00119   INOUT_ARG_TYPE = 12288
00120 };
00121 
00122 enum ExecutableLocalisation {
00123   BACKEND = 1,
00124   FRONTEND = 2,
00125   STATIC_EXEC = 256
00126 };
00127 
00128 enum ExecutableType {
00129   METHOD_C_TYPE = 2,
00130   METHOD_OQL_TYPE = 18,
00131   TRIGGER_C_TYPE = 8,
00132   TRIGGER_OQL_TYPE = 24
00133 };
00134 
00135 enum TriggerType {
00136   TriggerCREATE_BEFORE = 17,
00137   TriggerCREATE_AFTER = 18,
00138   TriggerUPDATE_BEFORE = 33,
00139   TriggerUPDATE_AFTER = 34,
00140   TriggerLOAD_BEFORE = 65,
00141   TriggerLOAD_AFTER = 66,
00142   TriggerREMOVE_BEFORE = 129,
00143   TriggerREMOVE_AFTER = 130
00144 };
00145 
00146 enum ProtectionMode {
00147   ProtRead = 256,
00148   ProtRW = 257
00149 };
00150 
00151 enum ClassUpdateType {
00152   ADD_ATTR = 0,
00153   RMV_ATTR = 1,
00154   CNV_ATTR = 2,
00155   MIG_ATTR = 3,
00156   RMV_CLASS = 4
00157 };
00158 
00159 enum AttributeConvertType {
00160   INT16_TO_INT16 = 0,
00161   INT16_TO_INT32 = 1,
00162   INT16_TO_INT64 = 2,
00163   INT16_TO_FLOAT = 3,
00164   INT16_TO_BYTE = 4,
00165   INT16_TO_CHAR = 5,
00166   INT16_TO_ENUM = 6,
00167   INT32_TO_INT32 = 7,
00168   INT32_TO_INT16 = 8,
00169   INT32_TO_INT64 = 9,
00170   INT32_TO_FLOAT = 10,
00171   INT32_TO_BYTE = 11,
00172   INT32_TO_CHAR = 12,
00173   INT32_TO_ENUM = 13,
00174   INT64_TO_INT64 = 14,
00175   INT64_TO_INT16 = 15,
00176   INT64_TO_INT32 = 16,
00177   INT64_TO_FLOAT = 17,
00178   INT64_TO_BYTE = 18,
00179   INT64_TO_CHAR = 19,
00180   INT64_TO_ENUM = 20,
00181   FLOAT_TO_FLOAT = 21,
00182   FLOAT_TO_INT16 = 22,
00183   FLOAT_TO_INT32 = 23,
00184   FLOAT_TO_INT64 = 24,
00185   FLOAT_TO_BYTE = 25,
00186   FLOAT_TO_CHAR = 26,
00187   FLOAT_TO_ENUM = 27,
00188   CHAR_TO_CHAR = 28,
00189   CHAR_TO_INT16 = 29,
00190   CHAR_TO_INT32 = 30,
00191   CHAR_TO_INT64 = 31,
00192   CHAR_TO_FLOAT = 32,
00193   CHAR_TO_BYTE = 33,
00194   CHAR_TO_ENUM = 34,
00195   BYTE_TO_BYTE = 35,
00196   BYTE_TO_INT16 = 36,
00197   BYTE_TO_INT32 = 37,
00198   BYTE_TO_INT64 = 38,
00199   BYTE_TO_FLOAT = 39,
00200   BYTE_TO_CHAR = 40,
00201   BYTE_TO_ENUM = 41,
00202   ENUM_TO_ENUM = 42,
00203   ENUM_TO_INT16 = 43,
00204   ENUM_TO_INT32 = 44,
00205   ENUM_TO_INT64 = 45,
00206   ENUM_TO_FLOAT = 46,
00207   ENUM_TO_CHAR = 47,
00208   ENUM_TO_BYTE = 48,
00209   CHAR_TO_STRING = 49,
00210   STRING_TO_CHAR = 50,
00211   INT16_TO_STRING = 51,
00212   STRING_TO_INT16 = 52,
00213   INT32_TO_STRING = 53,
00214   STRING_TO_INT32 = 54,
00215   INT64_TO_STRING = 55,
00216   STRING_TO_INT64 = 56,
00217   FLOAT_TO_STRING = 57,
00218   STRING_TO_FLOAT = 58,
00219   BYTE_TO_STRING = 59,
00220   STRING_TO_BYTE = 60,
00221   SET_TO_BAG = 61,
00222   SET_TO_ARRAY = 62,
00223   SET_TO_LIST = 63,
00224   BAG_TO_SET = 64,
00225   BAG_TO_ARRAY = 65,
00226   BAG_TO_LIST = 66,
00227   ARRAY_TO_BAG = 67,
00228   ARRAY_TO_SET = 68,
00229   ARRAY_TO_LIST = 69,
00230   LIST_TO_BAG = 70,
00231   LIST_TO_ARRAY = 71,
00232   LIST_TO_SET = 72,
00233   CLASS_TO_CLASS = 73,
00234   USER_CNV = 74,
00235   NIL_CNV = 75
00236 };
00237 
00238 class AttributeComponent : public eyedb::Struct {
00239 
00240  public:
00241   AttributeComponent(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00242   AttributeComponent(const AttributeComponent& x);
00243 
00244   virtual eyedb::Object *clone() const {return new AttributeComponent(*this);};
00245 
00246   AttributeComponent& operator=(const AttributeComponent& x);
00247 
00248   virtual AttributeComponent *asAttributeComponent() {return this;}
00249   virtual const AttributeComponent *asAttributeComponent() const {return this;}
00250   virtual Index *asIndex() {return (Index *)0;}
00251   virtual const Index *asIndex() const {return (const Index *)0;}
00252   virtual HashIndex *asHashIndex() {return (HashIndex *)0;}
00253   virtual const HashIndex *asHashIndex() const {return (const HashIndex *)0;}
00254   virtual BTreeIndex *asBTreeIndex() {return (BTreeIndex *)0;}
00255   virtual const BTreeIndex *asBTreeIndex() const {return (const BTreeIndex *)0;}
00256   virtual CollAttrImpl *asCollAttrImpl() {return (CollAttrImpl *)0;}
00257   virtual const CollAttrImpl *asCollAttrImpl() const {return (const CollAttrImpl *)0;}
00258   virtual UniqueConstraint *asUniqueConstraint() {return (UniqueConstraint *)0;}
00259   virtual const UniqueConstraint *asUniqueConstraint() const {return (const UniqueConstraint *)0;}
00260   virtual NotNullConstraint *asNotNullConstraint() {return (NotNullConstraint *)0;}
00261   virtual const NotNullConstraint *asNotNullConstraint() const {return (const NotNullConstraint *)0;}
00262   virtual CardinalityConstraint_Test *asCardinalityConstraint_Test() {return (CardinalityConstraint_Test *)0;}
00263   virtual const CardinalityConstraint_Test *asCardinalityConstraint_Test() const {return (const CardinalityConstraint_Test *)0;}
00264 
00265   eyedb::Status setName(const std::string &);
00266   eyedb::Status setName(unsigned int a0, char );
00267   std::string getName(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00268   char getName(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00269 
00270   eyedb::Status setAttrpath(const std::string &);
00271   eyedb::Status setAttrpath(unsigned int a0, char );
00272   std::string getAttrpath(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00273   char getAttrpath(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00274 
00275   eyedb::Status setClassOwner(eyedb::Class*);
00276   eyedb::Class*getClassOwner(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00277   const eyedb::Class*getClassOwner(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00278   eyedb::Oid getClassOwnerOid(eyedb::Status * = 0) const;
00279   eyedb::Status setClassOwnerOid(const eyedb::Oid &);
00280 
00281   eyedb::Status setPropagate(eyedb::Bool , eyedb::Bool _check_value = eyedb::True);
00282   eyedb::Bool getPropagate(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00283   virtual ~AttributeComponent() {garbageRealize();}
00284   // AttributeComponent User Part
00285 
00286     virtual Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
00287     Status checkUnique(const char *, const char *);
00288     Status find(Database *db, const Class *cls,
00289   AttributeComponent *&);
00290     virtual AttributeComponent *xclone(Database *, const Class *);
00291     std::string makeAttrpath(const Class *cls);
00292     void userInitialize();
00293     void userCopy(const Object &);
00294     void userGarbage();
00295     virtual int getInd() const;
00296     
00297 
00298  protected:
00299   AttributeComponent(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00300   AttributeComponent(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00301   AttributeComponent(const AttributeComponent *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00302 
00303  private:
00304   void initialize(eyedb::Database *_db);
00305 
00306  public: /* restricted */
00307   AttributeComponent(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00308   AttributeComponent(const AttributeComponent *, eyedb::Bool = eyedb::False);
00309   AttributeComponent(const eyedb::Class *, eyedb::Data);
00310 };
00311 
00312 class AttributeComponentSet : public eyedb::Struct {
00313 
00314  public:
00315   AttributeComponentSet(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00316   AttributeComponentSet(const AttributeComponentSet& x);
00317 
00318   virtual eyedb::Object *clone() const {return new AttributeComponentSet(*this);};
00319 
00320   AttributeComponentSet& operator=(const AttributeComponentSet& x);
00321 
00322   virtual AttributeComponentSet *asAttributeComponentSet() {return this;}
00323   virtual const AttributeComponentSet *asAttributeComponentSet() const {return this;}
00324 
00325   eyedb::Status setAttrname(const std::string &);
00326   eyedb::Status setAttrname(unsigned int a0, char );
00327   std::string getAttrname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00328   char getAttrname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00329 
00330   eyedb::Status setCompsColl(eyedb::CollSet*);
00331   eyedb::CollSet*getCompsColl(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00332   unsigned int getCompsCount(eyedb::Bool *isnull = 0, eyedb::Status *rs = 0) const {const eyedb::Collection* _coll = getCompsColl(isnull, rs); return (!!_coll ? _coll->getCount() : 0);}
00333   const eyedb::CollSet*getCompsColl(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00334   eyedb::Status addToCompsColl(AttributeComponent*, eyedb::Bool noDup = eyedb::False, const eyedb::IndexImpl * = 0);
00335   eyedb::Status rmvFromCompsColl(AttributeComponent*, eyedb::Bool checkFirst = eyedb::False);
00336   eyedb::Status addToCompsColl(const eyedb::Oid &, const eyedb::IndexImpl * = 0);
00337   eyedb::Status rmvFromCompsColl(const eyedb::Oid &);
00338 
00339   eyedb::Status setClassOwner(eyedb::Class*);
00340   eyedb::Class*getClassOwner(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00341   const eyedb::Class*getClassOwner(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00342   eyedb::Oid getClassOwnerOid(eyedb::Status * = 0) const;
00343   eyedb::Status setClassOwnerOid(const eyedb::Oid &);
00344   virtual ~AttributeComponentSet() {garbageRealize();}
00345   // AttributeComponentSet User Part
00346 
00347     void userInitialize();
00348     void userCopy(const Object &);
00349     void userGarbage();
00350 
00351     Status find(const char *, Index *&);
00352     Status find(const char *, NotNullConstraint *&);
00353     Status find(const char *, UniqueConstraint *&);
00354     Status find(const char *, CollAttrImpl *&);
00355     Status find(const char *, CardinalityConstraint_Test *&);
00356     Status getAttrComponents(const Class *, LinkedList &);
00357     Status hasIndex(bool &has_index, std::string &idx_str);
00358 
00359   private:
00360     struct Cache {
00361       unsigned int comp_count;
00362       unsigned int comp_alloc;
00363       struct Comp {
00364  char *attrpath;
00365  AttributeComponent *comp;
00366  Comp();
00367  ~Comp();
00368       } *comps;
00369       Cache();
00370       void add(AttributeComponent *);
00371       void getComponents(const char *, int, LinkedList &);
00372       AttributeComponent *find(const char *attrpath);
00373       ~Cache();
00374     };
00375 
00376     Status makeCache();
00377     void invalidateCache();
00378 
00379     Cache *index_cache, *notnull_cache, *unique_cache, *card_cache, *collimpl_cache;
00380     friend class Attribute;
00381     
00382 
00383  protected:
00384   AttributeComponentSet(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00385   AttributeComponentSet(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00386   AttributeComponentSet(const AttributeComponentSet *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00387 
00388  private:
00389   void initialize(eyedb::Database *_db);
00390 
00391  public: /* restricted */
00392   AttributeComponentSet(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00393   AttributeComponentSet(const AttributeComponentSet *, eyedb::Bool = eyedb::False);
00394   AttributeComponentSet(const eyedb::Class *, eyedb::Data);
00395 };
00396 
00397 class ClassComponent : public eyedb::Struct {
00398 
00399  public:
00400   ClassComponent(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00401   ClassComponent(const ClassComponent& x);
00402 
00403   virtual eyedb::Object *clone() const {return new ClassComponent(*this);};
00404 
00405   ClassComponent& operator=(const ClassComponent& x);
00406 
00407   virtual ClassComponent *asClassComponent() {return this;}
00408   virtual const ClassComponent *asClassComponent() const {return this;}
00409   virtual AgregatClassComponent *asAgregatClassComponent() {return (AgregatClassComponent *)0;}
00410   virtual const AgregatClassComponent *asAgregatClassComponent() const {return (const AgregatClassComponent *)0;}
00411   virtual ClassVariable *asClassVariable() {return (ClassVariable *)0;}
00412   virtual const ClassVariable *asClassVariable() const {return (const ClassVariable *)0;}
00413   virtual AgregatClassExecutable *asAgregatClassExecutable() {return (AgregatClassExecutable *)0;}
00414   virtual const AgregatClassExecutable *asAgregatClassExecutable() const {return (const AgregatClassExecutable *)0;}
00415   virtual Method *asMethod() {return (Method *)0;}
00416   virtual const Method *asMethod() const {return (const Method *)0;}
00417   virtual FEMethod *asFEMethod() {return (FEMethod *)0;}
00418   virtual const FEMethod *asFEMethod() const {return (const FEMethod *)0;}
00419   virtual FEMethod_C *asFEMethod_C() {return (FEMethod_C *)0;}
00420   virtual const FEMethod_C *asFEMethod_C() const {return (const FEMethod_C *)0;}
00421   virtual BEMethod *asBEMethod() {return (BEMethod *)0;}
00422   virtual const BEMethod *asBEMethod() const {return (const BEMethod *)0;}
00423   virtual BEMethod_C *asBEMethod_C() {return (BEMethod_C *)0;}
00424   virtual const BEMethod_C *asBEMethod_C() const {return (const BEMethod_C *)0;}
00425   virtual BEMethod_OQL *asBEMethod_OQL() {return (BEMethod_OQL *)0;}
00426   virtual const BEMethod_OQL *asBEMethod_OQL() const {return (const BEMethod_OQL *)0;}
00427   virtual Trigger *asTrigger() {return (Trigger *)0;}
00428   virtual const Trigger *asTrigger() const {return (const Trigger *)0;}
00429   virtual CardinalityConstraint *asCardinalityConstraint() {return (CardinalityConstraint *)0;}
00430   virtual const CardinalityConstraint *asCardinalityConstraint() const {return (const CardinalityConstraint *)0;}
00431 
00432   eyedb::Status setClassOwner(eyedb::Class*);
00433   eyedb::Class*getClassOwner(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00434   const eyedb::Class*getClassOwner(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00435   eyedb::Oid getClassOwnerOid(eyedb::Status * = 0) const;
00436   eyedb::Status setClassOwnerOid(const eyedb::Oid &);
00437 
00438   eyedb::Status setName(const std::string &);
00439   eyedb::Status setName(unsigned int a0, char );
00440   std::string getName(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00441   char getName(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00442   virtual ~ClassComponent() {garbageRealize();}
00443   // ClassComponent User Part
00444 
00445     virtual Status check(Class *) const;
00446     virtual Bool isInherit() const;
00447     virtual Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
00448     virtual int getInd() const;
00449     virtual Status make(Class *);
00450     virtual Status realize(const RecMode* = NoRecurs);
00451     virtual Status remove(const RecMode* = NoRecurs);
00452     virtual Status realize_for_update();
00453     virtual Status remove_for_update();
00454     
00455 
00456  protected:
00457   ClassComponent(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00458   ClassComponent(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00459   ClassComponent(const ClassComponent *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00460 
00461  private:
00462   void initialize(eyedb::Database *_db);
00463 
00464  public: /* restricted */
00465   ClassComponent(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00466   ClassComponent(const ClassComponent *, eyedb::Bool = eyedb::False);
00467   ClassComponent(const eyedb::Class *, eyedb::Data);
00468 };
00469 
00470 class AgregatClassComponent : public ClassComponent {
00471 
00472  public:
00473   AgregatClassComponent(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00474   AgregatClassComponent(const AgregatClassComponent& x);
00475 
00476   virtual eyedb::Object *clone() const {return new AgregatClassComponent(*this);};
00477 
00478   AgregatClassComponent& operator=(const AgregatClassComponent& x);
00479 
00480   virtual AgregatClassComponent *asAgregatClassComponent() {return this;}
00481   virtual const AgregatClassComponent *asAgregatClassComponent() const {return this;}
00482   virtual AgregatClassExecutable *asAgregatClassExecutable() {return (AgregatClassExecutable *)0;}
00483   virtual const AgregatClassExecutable *asAgregatClassExecutable() const {return (const AgregatClassExecutable *)0;}
00484   virtual Method *asMethod() {return (Method *)0;}
00485   virtual const Method *asMethod() const {return (const Method *)0;}
00486   virtual FEMethod *asFEMethod() {return (FEMethod *)0;}
00487   virtual const FEMethod *asFEMethod() const {return (const FEMethod *)0;}
00488   virtual FEMethod_C *asFEMethod_C() {return (FEMethod_C *)0;}
00489   virtual const FEMethod_C *asFEMethod_C() const {return (const FEMethod_C *)0;}
00490   virtual BEMethod *asBEMethod() {return (BEMethod *)0;}
00491   virtual const BEMethod *asBEMethod() const {return (const BEMethod *)0;}
00492   virtual BEMethod_C *asBEMethod_C() {return (BEMethod_C *)0;}
00493   virtual const BEMethod_C *asBEMethod_C() const {return (const BEMethod_C *)0;}
00494   virtual BEMethod_OQL *asBEMethod_OQL() {return (BEMethod_OQL *)0;}
00495   virtual const BEMethod_OQL *asBEMethod_OQL() const {return (const BEMethod_OQL *)0;}
00496   virtual Trigger *asTrigger() {return (Trigger *)0;}
00497   virtual const Trigger *asTrigger() const {return (const Trigger *)0;}
00498   virtual CardinalityConstraint *asCardinalityConstraint() {return (CardinalityConstraint *)0;}
00499   virtual const CardinalityConstraint *asCardinalityConstraint() const {return (const CardinalityConstraint *)0;}
00500   virtual ~AgregatClassComponent() {garbageRealize();}
00501 
00502  protected:
00503   AgregatClassComponent(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : ClassComponent(_db, _dataspace, 1) {}
00504   AgregatClassComponent(const eyedb::Struct *x, eyedb::Bool share, int) : ClassComponent(x, share, 1) {}
00505   AgregatClassComponent(const AgregatClassComponent *x, eyedb::Bool share, int) : ClassComponent(x, share, 1) {}
00506 
00507  private:
00508   void initialize(eyedb::Database *_db);
00509 
00510  public: /* restricted */
00511   AgregatClassComponent(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00512   AgregatClassComponent(const AgregatClassComponent *, eyedb::Bool = eyedb::False);
00513   AgregatClassComponent(const eyedb::Class *, eyedb::Data);
00514 };
00515 
00516 class ClassVariable : public ClassComponent {
00517 
00518  public:
00519   ClassVariable(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00520   ClassVariable(const ClassVariable& x);
00521 
00522   virtual eyedb::Object *clone() const {return new ClassVariable(*this);};
00523 
00524   ClassVariable& operator=(const ClassVariable& x);
00525 
00526   virtual ClassVariable *asClassVariable() {return this;}
00527   virtual const ClassVariable *asClassVariable() const {return this;}
00528 
00529   eyedb::Status setVname(const std::string &);
00530   eyedb::Status setVname(unsigned int a0, char );
00531   std::string getVname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00532   char getVname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00533 
00534   eyedb::Status setVal(eyedb::Object*);
00535   eyedb::Object*getVal(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00536   const eyedb::Object*getVal(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00537   eyedb::Oid getValOid(eyedb::Status * = 0) const;
00538   eyedb::Status setValOid(const eyedb::Oid &);
00539   virtual ~ClassVariable() {garbageRealize();}
00540   // ClassVariable User Part
00541 
00542     Status check(Class *) const;
00543     Bool isInherit() const;
00544     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
00545     int getInd() const;
00546     Status m_trace(FILE *, int, unsigned int, const RecMode *);
00547     
00548 
00549  protected:
00550   ClassVariable(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : ClassComponent(_db, _dataspace, 1) {}
00551   ClassVariable(const eyedb::Struct *x, eyedb::Bool share, int) : ClassComponent(x, share, 1) {}
00552   ClassVariable(const ClassVariable *x, eyedb::Bool share, int) : ClassComponent(x, share, 1) {}
00553 
00554  private:
00555   void initialize(eyedb::Database *_db);
00556 
00557  public: /* restricted */
00558   ClassVariable(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00559   ClassVariable(const ClassVariable *, eyedb::Bool = eyedb::False);
00560   ClassVariable(const eyedb::Class *, eyedb::Data);
00561 };
00562 
00563 class Index : public AttributeComponent {
00564 
00565  public:
00566   Index(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00567   Index(const Index& x);
00568 
00569   virtual eyedb::Object *clone() const {return new Index(*this);};
00570 
00571   Index& operator=(const Index& x);
00572 
00573   virtual Index *asIndex() {return this;}
00574   virtual const Index *asIndex() const {return this;}
00575   virtual HashIndex *asHashIndex() {return (HashIndex *)0;}
00576   virtual const HashIndex *asHashIndex() const {return (const HashIndex *)0;}
00577   virtual BTreeIndex *asBTreeIndex() {return (BTreeIndex *)0;}
00578   virtual const BTreeIndex *asBTreeIndex() const {return (const BTreeIndex *)0;}
00579 
00580   eyedb::Status setIdxOid(eyedb::Oid );
00581   eyedb::Oid getIdxOid(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00582 
00583   eyedb::Status setDspid(eyedblib::int16 );
00584   eyedblib::int16 getDspid(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00585 
00586   eyedb::Status setIsString(eyedb::Bool , eyedb::Bool _check_value = eyedb::True);
00587   eyedb::Bool getIsString(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00588 
00589   eyedb::Status setImplHints(unsigned int a0, eyedblib::int32 );
00590   eyedb::Status setImplHintsCount(unsigned int a0);
00591   eyedblib::int32 getImplHints(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00592   unsigned int getImplHintsCount(eyedb::Status * = 0) const;
00593   virtual ~Index() {garbageRealize();}
00594   // Index User Part
00595 
00596     Index(Database *, const char *, const char *);
00597     virtual Status realize(const RecMode* = NoRecurs);
00598     virtual Status remove(const RecMode* = NoRecurs);
00599     virtual Status s_trace(FILE *, Bool, unsigned int flags = 0) const;
00600     Idx *idx;
00601     Status makeDataspace(Database *db, const Dataspace *&) const;
00602 
00603     void userInitialize();
00604     void userCopy(const Object &);
00605     void userGarbage();
00606     Status move(const Dataspace *) const;
00607     short get_dspid() const;
00608     Bool compareHints(Index *idx);
00609     int getInd() const;
00610 
00611 
00612     Status getCount(unsigned int &count);
00613     Status getStats(std::string &, Bool dspImpl = True,
00614       Bool full = False, const char *indent = "");
00615     Status getStats(IndexStats *&stats);
00616     Status simulate(const IndexImpl &, std::string &,
00617       Bool dspImpl = True, Bool full = False,
00618       const char *indent = "");
00619     Status simulate(const IndexImpl &, IndexStats *&stats);
00620 
00621     Status reimplement(const IndexImpl &, Index *&);
00622     virtual Status setImplementation(const IndexImpl *) {return Success;}
00623     virtual Status getImplementation(IndexImpl *&, Bool remote = False) const {return 0;}
00624     Status getDefaultDataspace(const Dataspace *&) const;
00625     Status setDefaultDataspace(const Dataspace *);
00626     Status getObjectLocations(ObjectLocationArray &);
00627     virtual Status report(eyedbsm::DbHandle *sedbh, const Oid &idxoid);
00628     
00629 
00630  protected:
00631   Index(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AttributeComponent(_db, _dataspace, 1) {}
00632   Index(const eyedb::Struct *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
00633   Index(const Index *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
00634 
00635  private:
00636   void initialize(eyedb::Database *_db);
00637 
00638  public: /* restricted */
00639   Index(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00640   Index(const Index *, eyedb::Bool = eyedb::False);
00641   Index(const eyedb::Class *, eyedb::Data);
00642 };
00643 
00644 class HashIndex : public Index {
00645 
00646  public:
00647   HashIndex(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00648   HashIndex(const HashIndex& x);
00649 
00650   virtual eyedb::Object *clone() const {return new HashIndex(*this);};
00651 
00652   HashIndex& operator=(const HashIndex& x);
00653 
00654   virtual HashIndex *asHashIndex() {return this;}
00655   virtual const HashIndex *asHashIndex() const {return this;}
00656 
00657   eyedb::Status setHashMethod(BEMethod_C*);
00658   BEMethod_C*getHashMethod(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00659   const BEMethod_C*getHashMethod(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00660   eyedb::Oid getHashMethodOid(eyedb::Status * = 0) const;
00661   eyedb::Status setHashMethodOid(const eyedb::Oid &);
00662 
00663   eyedb::Status setKeyCount(eyedblib::int32 );
00664   eyedblib::int32 getKeyCount(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00665   virtual ~HashIndex() {garbageRealize();}
00666   // HashIndex User Part
00667 
00668     HashIndex(Database *, Class *, const char *attrpath,
00669        Bool propagate, Bool is_string,
00670        const Dataspace * = 0, int key_count = 0,
00671        BEMethod_C * = 0,
00672        const int *impl_hints = 0, int impl_hints_cnt = 0);
00673     HashIndex(Database *, Class *, const char *attrpath,
00674        Bool propagate, Bool is_string,
00675        const IndexImpl *idximpl);
00676     static Status make(Database *, Class *, const char *attrpath,
00677          Bool propagate, Bool is_string,
00678          const char *hints, HashIndex *&);
00679     Status setImplementation(const IndexImpl *);
00680     Status getImplementation(IndexImpl *&, Bool remote = False) const;
00681     virtual AttributeComponent *xclone(Database *, const Class *);
00682     Status check(Class *) const;
00683     Status make(Class *);
00684     Status realize(const RecMode* = NoRecurs);
00685     Status remove(const RecMode* = NoRecurs);
00686     Status s_trace(FILE *, Bool, unsigned int flags = 0) const;
00687     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
00688     Bool compareHashMethod(HashIndex *idx);
00689     const char *genName() const;
00690     virtual Status report(eyedbsm::DbHandle *sedbh, const Oid &idxoid);
00691     
00692 
00693  protected:
00694   HashIndex(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : Index(_db, _dataspace, 1) {}
00695   HashIndex(const eyedb::Struct *x, eyedb::Bool share, int) : Index(x, share, 1) {}
00696   HashIndex(const HashIndex *x, eyedb::Bool share, int) : Index(x, share, 1) {}
00697 
00698  private:
00699   void initialize(eyedb::Database *_db);
00700 
00701  public: /* restricted */
00702   HashIndex(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00703   HashIndex(const HashIndex *, eyedb::Bool = eyedb::False);
00704   HashIndex(const eyedb::Class *, eyedb::Data);
00705 };
00706 
00707 class BTreeIndex : public Index {
00708 
00709  public:
00710   BTreeIndex(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00711   BTreeIndex(const BTreeIndex& x);
00712 
00713   virtual eyedb::Object *clone() const {return new BTreeIndex(*this);};
00714 
00715   BTreeIndex& operator=(const BTreeIndex& x);
00716 
00717   virtual BTreeIndex *asBTreeIndex() {return this;}
00718   virtual const BTreeIndex *asBTreeIndex() const {return this;}
00719 
00720   eyedb::Status setDegree(eyedblib::int32 );
00721   eyedblib::int32 getDegree(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00722   virtual ~BTreeIndex() {garbageRealize();}
00723   // BTreeIndex User Part
00724 
00725     BTreeIndex(Database *, Class *,
00726         const char *attrpath, Bool propagate, Bool is_string,
00727         const Dataspace * = 0, int degree = 0,
00728         const int *impl_hints = 0, int impl_hints_cnt = 0);
00729     BTreeIndex(Database *, Class *, const char *pathattr,
00730         Bool propagate, Bool is_string,
00731         const IndexImpl *idximpl);
00732     static Status make(Database *, Class *, const char *attrpath,
00733          Bool propagate, Bool is_string,
00734          const char *hints, BTreeIndex *&);
00735     Status setImplementation(const IndexImpl *);
00736     Status getImplementation(IndexImpl *&, Bool remote = False) const;
00737     virtual AttributeComponent *xclone(Database *, const Class *);
00738     Status check(Class *) const;
00739     Status realize(const RecMode* = NoRecurs);
00740     Status remove(const RecMode* = NoRecurs);
00741     Status s_trace(FILE *, Bool, unsigned int flags = 0) const;
00742     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
00743     const char *genName() const;
00744     virtual Status report(eyedbsm::DbHandle *sedbh, const Oid &idxoid);
00745     
00746 
00747  protected:
00748   BTreeIndex(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : Index(_db, _dataspace, 1) {}
00749   BTreeIndex(const eyedb::Struct *x, eyedb::Bool share, int) : Index(x, share, 1) {}
00750   BTreeIndex(const BTreeIndex *x, eyedb::Bool share, int) : Index(x, share, 1) {}
00751 
00752  private:
00753   void initialize(eyedb::Database *_db);
00754 
00755  public: /* restricted */
00756   BTreeIndex(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00757   BTreeIndex(const BTreeIndex *, eyedb::Bool = eyedb::False);
00758   BTreeIndex(const eyedb::Class *, eyedb::Data);
00759 };
00760 
00761 class CollAttrImpl : public AttributeComponent {
00762 
00763  public:
00764   CollAttrImpl(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00765   CollAttrImpl(const CollAttrImpl& x);
00766 
00767   virtual eyedb::Object *clone() const {return new CollAttrImpl(*this);};
00768 
00769   CollAttrImpl& operator=(const CollAttrImpl& x);
00770 
00771   virtual CollAttrImpl *asCollAttrImpl() {return this;}
00772   virtual const CollAttrImpl *asCollAttrImpl() const {return this;}
00773 
00774   eyedb::Status setIdxtype(eyedblib::int32 );
00775   eyedblib::int32 getIdxtype(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00776 
00777   eyedb::Status setDspid(eyedblib::int16 );
00778   eyedblib::int16 getDspid(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00779 
00780   eyedb::Status setKeyCountOrDegree(eyedblib::int32 );
00781   eyedblib::int32 getKeyCountOrDegree(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00782 
00783   eyedb::Status setHashMethod(BEMethod_C*);
00784   BEMethod_C*getHashMethod(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00785   const BEMethod_C*getHashMethod(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00786   eyedb::Oid getHashMethodOid(eyedb::Status * = 0) const;
00787   eyedb::Status setHashMethodOid(const eyedb::Oid &);
00788 
00789   eyedb::Status setImplHints(unsigned int a0, eyedblib::int32 );
00790   eyedb::Status setImplHintsCount(unsigned int a0);
00791   eyedblib::int32 getImplHints(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00792   unsigned int getImplHintsCount(eyedb::Status * = 0) const;
00793   virtual ~CollAttrImpl() {garbageRealize();}
00794   // CollAttrImpl User Part
00795 
00796     CollAttrImpl(Database *, Class *, const char *attrpath,
00797    Bool propagate, const Dataspace * = 0,
00798    IndexImpl::Type = IndexImpl::Hash,
00799    int key_count_or_degree = 0,
00800    BEMethod_C * = 0,
00801    const int *impl_hints = 0, int impl_hints_cnt = 0);
00802     CollAttrImpl(Database *, Class *, const char *attrpath,
00803    Bool propagate, const IndexImpl *idximpl);
00804 
00805     Status makeDataspace(Database *db, const Dataspace *&) const;
00806     static Status make(Database *, Class *, const char *attrpath,
00807          Bool propagate,
00808          IndexImpl::Type, const char *hints,
00809          CollAttrImpl *&);
00810     Status getImplementation(Database *, const IndexImpl *&);
00811     virtual AttributeComponent *xclone(Database *, const Class *);
00812     Status realize(const RecMode* = NoRecurs);
00813     Status remove(const RecMode* = NoRecurs);
00814     Status s_trace(FILE *, Bool, unsigned int flags = 0) const;
00815     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
00816     const char *genName() const;
00817     int getInd() const;
00818 
00819     void userInitialize();
00820     void userCopy(const Object &);
00821     void userGarbage();
00822 
00823     const Dataspace *dsp;
00824     IndexImpl *idximpl;
00825     
00826 
00827  protected:
00828   CollAttrImpl(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AttributeComponent(_db, _dataspace, 1) {}
00829   CollAttrImpl(const eyedb::Struct *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
00830   CollAttrImpl(const CollAttrImpl *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
00831 
00832  private:
00833   void initialize(eyedb::Database *_db);
00834 
00835  public: /* restricted */
00836   CollAttrImpl(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00837   CollAttrImpl(const CollAttrImpl *, eyedb::Bool = eyedb::False);
00838   CollAttrImpl(const eyedb::Class *, eyedb::Data);
00839 };
00840 
00841 class ArgType : public eyedb::Struct {
00842 
00843  public:
00844   ArgType(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00845   ArgType(const ArgType& x);
00846 
00847   virtual eyedb::Object *clone() const {return new ArgType(*this);};
00848 
00849   ArgType& operator=(const ArgType& x);
00850 
00851   virtual ArgType *asArgType() {return this;}
00852   virtual const ArgType *asArgType() const {return this;}
00853 
00854   eyedb::Status setType(ArgType_Type , eyedb::Bool _check_value = eyedb::True);
00855   ArgType_Type getType(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00856 
00857   eyedb::Status setClname(const std::string &);
00858   eyedb::Status setClname(unsigned int a0, char );
00859   std::string getClname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00860   char getClname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00861   virtual ~ArgType() {garbageRealize();}
00862   // ArgType User Part
00863 
00864     Bool operator==(const ArgType &) const;
00865 
00866     Bool operator!=(const ArgType &) const;
00867     static ArgType *make(Schema *m, const char *s);
00868     static int getBasicType(const char *s);
00869     void declare(FILE *, Schema *, const char *name);
00870     void init(FILE *, Schema *, const char *prefix, const char *name,
00871        const char *indent);
00872     void ret(FILE *, Schema *, const char *prefix, const char *name);
00873     const char *getCType(Schema *) const;
00874     void getCPrefix(FILE *fd, Schema *, const char *prefix,
00875       const char *name, Bool fullcast) const;
00876     
00877 
00878  protected:
00879   ArgType(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00880   ArgType(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00881   ArgType(const ArgType *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00882 
00883  private:
00884   void initialize(eyedb::Database *_db);
00885 
00886  public: /* restricted */
00887   ArgType(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00888   ArgType(const ArgType *, eyedb::Bool = eyedb::False);
00889   ArgType(const eyedb::Class *, eyedb::Data);
00890 };
00891 
00892 class Signature : public eyedb::Struct {
00893 
00894  public:
00895   Signature(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00896   Signature(const Signature& x);
00897 
00898   virtual eyedb::Object *clone() const {return new Signature(*this);};
00899 
00900   Signature& operator=(const Signature& x);
00901 
00902   virtual Signature *asSignature() {return this;}
00903   virtual const Signature *asSignature() const {return this;}
00904 
00905   eyedb::Status setRettype(ArgType*);
00906   ArgType*getRettype(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00907   const ArgType*getRettype(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00908 
00909   eyedb::Status setNargs(eyedblib::int32 );
00910   eyedblib::int32 getNargs(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00911 
00912   eyedb::Status setTypes(unsigned int a0, ArgType*);
00913   eyedb::Status setTypesCount(unsigned int a0);
00914   ArgType*getTypes(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00915   const ArgType*getTypes(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00916   unsigned int getTypesCount(eyedb::Status * = 0) const;
00917   virtual ~Signature() {garbageRealize();}
00918   // Signature User Part
00919 
00920     Bool operator ==(const Signature &) const;
00921     Bool operator !=(const Signature &) const;
00922     const char *getArg(int i);
00923     static const char *getPrefix(const char *prefix, int i);
00924     static Bool isVoid(const ArgType *type);
00925     void listArgs(FILE *, Schema *);
00926     void declArgs(FILE *, Schema *);
00927     void initArgs(FILE *, Schema *, const char *prefix, const char *preret,
00928     const char *indent);
00929     void setArgs(FILE *, Schema *, int type, const char *prefix,
00930    const char *preret, const char *indent);
00931     void retArgs(FILE *, Schema *, const char *prefix, const char *preret,
00932    const char *indent);
00933     
00934 
00935  protected:
00936   Signature(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00937   Signature(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00938   Signature(const Signature *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00939 
00940  private:
00941   void initialize(eyedb::Database *_db);
00942 
00943  public: /* restricted */
00944   Signature(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00945   Signature(const Signature *, eyedb::Bool = eyedb::False);
00946   Signature(const eyedb::Class *, eyedb::Data);
00947 };
00948 
00949 class Executable : public eyedb::Struct {
00950 
00951  public:
00952   Executable(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00953   Executable(const Executable& x);
00954 
00955   virtual eyedb::Object *clone() const {return new Executable(*this);};
00956 
00957   Executable& operator=(const Executable& x);
00958 
00959   virtual Executable *asExecutable() {return this;}
00960   virtual const Executable *asExecutable() const {return this;}
00961 
00962   eyedb::Status setExname(const std::string &);
00963   eyedb::Status setExname(unsigned int a0, char );
00964   std::string getExname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00965   char getExname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00966 
00967   eyedb::Status setLang(ExecutableLang , eyedb::Bool _check_value = eyedb::True);
00968   ExecutableLang getLang(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00969 
00970   eyedb::Status setLoc(ExecutableLocalisation , eyedb::Bool _check_value = eyedb::True);
00971   ExecutableLocalisation getLoc(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00972 
00973   eyedb::Status setSign(Signature*);
00974   Signature*getSign(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
00975   const Signature*getSign(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00976 
00977   eyedb::Status setIntname(const std::string &);
00978   eyedb::Status setIntname(unsigned int a0, char );
00979   std::string getIntname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00980   char getIntname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00981 
00982   eyedb::Status setExtrefBody(const std::string &);
00983   eyedb::Status setExtrefBody(unsigned int a0, char );
00984   std::string getExtrefBody(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00985   char getExtrefBody(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
00986   virtual ~Executable() {garbageRealize();}
00987   // Executable User Part
00988 
00989     void initExec(const char *exname,
00990     ExecutableLang lang,
00991     Bool isSystem,
00992     ExecutableLocalisation loc,
00993     Signature *sign, Class * = 0);
00994     static const char *makeInternalName(const char *exname,
00995      const Signature *sign,
00996      Bool isClassMethod,
00997      const char *clname = 0);
00998     const char *_getPrototype(const Class *, Bool scope) const;
00999     static const char *makeExtRef(const char *extref);
01000     static const char *getSOTag();
01001     static const char *getSOFile(const char *extref);
01002     static void *_dlopen(const char *extref);
01003     int isStaticExec() const;
01004     void *dl;
01005     void userInitialize();
01006     void userCopy(const Object &);
01007     virtual Status execCheck();
01008     Status checkRealize(const char *, const char *, void **);
01009     static Status checkRealize(const char *extref, const char *intname,
01010           void **pdl, void **pcsym);
01011     
01012 
01013  protected:
01014   Executable(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
01015   Executable(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01016   Executable(const Executable *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01017 
01018  private:
01019   void initialize(eyedb::Database *_db);
01020 
01021  public: /* restricted */
01022   Executable(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01023   Executable(const Executable *, eyedb::Bool = eyedb::False);
01024   Executable(const eyedb::Class *, eyedb::Data);
01025 };
01026 
01027 class AgregatClassExecutable : public AgregatClassComponent {
01028 
01029  public:
01030   AgregatClassExecutable(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01031   AgregatClassExecutable(const AgregatClassExecutable& x);
01032 
01033   virtual eyedb::Object *clone() const {return new AgregatClassExecutable(*this);};
01034 
01035   AgregatClassExecutable& operator=(const AgregatClassExecutable& x);
01036 
01037   virtual AgregatClassExecutable *asAgregatClassExecutable() {return this;}
01038   virtual const AgregatClassExecutable *asAgregatClassExecutable() const {return this;}
01039   virtual Method *asMethod() {return (Method *)0;}
01040   virtual const Method *asMethod() const {return (const Method *)0;}
01041   virtual FEMethod *asFEMethod() {return (FEMethod *)0;}
01042   virtual const FEMethod *asFEMethod() const {return (const FEMethod *)0;}
01043   virtual FEMethod_C *asFEMethod_C() {return (FEMethod_C *)0;}
01044   virtual const FEMethod_C *asFEMethod_C() const {return (const FEMethod_C *)0;}
01045   virtual BEMethod *asBEMethod() {return (BEMethod *)0;}
01046   virtual const BEMethod *asBEMethod() const {return (const BEMethod *)0;}
01047   virtual BEMethod_C *asBEMethod_C() {return (BEMethod_C *)0;}
01048   virtual const BEMethod_C *asBEMethod_C() const {return (const BEMethod_C *)0;}
01049   virtual BEMethod_OQL *asBEMethod_OQL() {return (BEMethod_OQL *)0;}
01050   virtual const BEMethod_OQL *asBEMethod_OQL() const {return (const BEMethod_OQL *)0;}
01051   virtual Trigger *asTrigger() {return (Trigger *)0;}
01052   virtual const Trigger *asTrigger() const {return (const Trigger *)0;}
01053 
01054   eyedb::Status setEx(Executable*);
01055   Executable*getEx(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
01056   const Executable*getEx(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01057   virtual ~AgregatClassExecutable() {garbageRealize();}
01058 
01059  protected:
01060   AgregatClassExecutable(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AgregatClassComponent(_db, _dataspace, 1) {}
01061   AgregatClassExecutable(const eyedb::Struct *x, eyedb::Bool share, int) : AgregatClassComponent(x, share, 1) {}
01062   AgregatClassExecutable(const AgregatClassExecutable *x, eyedb::Bool share, int) : AgregatClassComponent(x, share, 1) {}
01063 
01064  private:
01065   void initialize(eyedb::Database *_db);
01066 
01067  public: /* restricted */
01068   AgregatClassExecutable(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01069   AgregatClassExecutable(const AgregatClassExecutable *, eyedb::Bool = eyedb::False);
01070   AgregatClassExecutable(const eyedb::Class *, eyedb::Data);
01071 };
01072 
01073 class Method : public AgregatClassExecutable {
01074 
01075  public:
01076   Method(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01077   Method(const Method& x);
01078 
01079   virtual eyedb::Object *clone() const {return new Method(*this);};
01080 
01081   Method& operator=(const Method& x);
01082 
01083   virtual Method *asMethod() {return this;}
01084   virtual const Method *asMethod() const {return this;}
01085   virtual FEMethod *asFEMethod() {return (FEMethod *)0;}
01086   virtual const FEMethod *asFEMethod() const {return (const FEMethod *)0;}
01087   virtual FEMethod_C *asFEMethod_C() {return (FEMethod_C *)0;}
01088   virtual const FEMethod_C *asFEMethod_C() const {return (const FEMethod_C *)0;}
01089   virtual BEMethod *asBEMethod() {return (BEMethod *)0;}
01090   virtual const BEMethod *asBEMethod() const {return (const BEMethod *)0;}
01091   virtual BEMethod_C *asBEMethod_C() {return (BEMethod_C *)0;}
01092   virtual const BEMethod_C *asBEMethod_C() const {return (const BEMethod_C *)0;}
01093   virtual BEMethod_OQL *asBEMethod_OQL() {return (BEMethod_OQL *)0;}
01094   virtual const BEMethod_OQL *asBEMethod_OQL() const {return (const BEMethod_OQL *)0;}
01095   virtual ~Method() {garbageRealize();}
01096   // Method User Part
01097 
01098     virtual Status applyTo(Database *, Object *, ArgArray &,
01099       Argument &retarg, Bool checkArgs);
01100     Status realize(const RecMode* = NoRecurs);
01101     Status remove(const RecMode* = NoRecurs);
01102 
01103     static Status get(Database *, Class *, const char *name,
01104         const Signature *, Bool isClassMethod,
01105         Method * &);
01106 
01107     static Status getSignature(Database *, Class *,
01108           const char *sign_str, Signature *&,
01109           char *&fname);
01110 
01111     static Status get(Database *, Class *,
01112         const char *sign_str, Bool isClassMethod,
01113         Method * &);
01114 
01115     const char *getPrototype(Bool scope = True) const;
01116 
01117     Status check(Class *) const;
01118     Bool isInherit() const;
01119     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
01120     int getInd() const;
01121     virtual Status execCheck();
01122     
01123 
01124  protected:
01125   Method(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AgregatClassExecutable(_db, _dataspace, 1) {}
01126   Method(const eyedb::Struct *x, eyedb::Bool share, int) : AgregatClassExecutable(x, share, 1) {}
01127   Method(const Method *x, eyedb::Bool share, int) : AgregatClassExecutable(x, share, 1) {}
01128 
01129  private:
01130   void initialize(eyedb::Database *_db);
01131 
01132  public: /* restricted */
01133   Method(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01134   Method(const Method *, eyedb::Bool = eyedb::False);
01135   Method(const eyedb::Class *, eyedb::Data);
01136 };
01137 
01138 class FEMethod : public Method {
01139 
01140  public:
01141   FEMethod(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01142   FEMethod(const FEMethod& x);
01143 
01144   virtual eyedb::Object *clone() const {return new FEMethod(*this);};
01145 
01146   FEMethod& operator=(const FEMethod& x);
01147 
01148   virtual FEMethod *asFEMethod() {return this;}
01149   virtual const FEMethod *asFEMethod() const {return this;}
01150   virtual FEMethod_C *asFEMethod_C() {return (FEMethod_C *)0;}
01151   virtual const FEMethod_C *asFEMethod_C() const {return (const FEMethod_C *)0;}
01152   virtual ~FEMethod() {garbageRealize();}
01153 
01154  protected:
01155   FEMethod(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : Method(_db, _dataspace, 1) {}
01156   FEMethod(const eyedb::Struct *x, eyedb::Bool share, int) : Method(x, share, 1) {}
01157   FEMethod(const FEMethod *x, eyedb::Bool share, int) : Method(x, share, 1) {}
01158 
01159  private:
01160   void initialize(eyedb::Database *_db);
01161 
01162  public: /* restricted */
01163   FEMethod(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01164   FEMethod(const FEMethod *, eyedb::Bool = eyedb::False);
01165   FEMethod(const eyedb::Class *, eyedb::Data);
01166 };
01167 
01168 class FEMethod_C : public FEMethod {
01169 
01170  public:
01171   FEMethod_C(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01172   FEMethod_C(const FEMethod_C& x);
01173 
01174   virtual eyedb::Object *clone() const {return new FEMethod_C(*this);};
01175 
01176   FEMethod_C& operator=(const FEMethod_C& x);
01177 
01178   virtual FEMethod_C *asFEMethod_C() {return this;}
01179   virtual const FEMethod_C *asFEMethod_C() const {return this;}
01180   virtual ~FEMethod_C() {garbageRealize();}
01181   // FEMethod_C User Part
01182 
01183     Status (*csym)(Database *, FEMethod_C *, Object *,
01184      ArgArray &array, Argument &retarg);
01185     FEMethod_C(Database *, Class *, const char *name,
01186         Signature *, Bool isClassMethod,
01187         Bool isSystem, const char *extref);
01188     Status execCheck();
01189     Status applyTo(Database *, Object *, ArgArray &, Argument &retarg, Bool checkArgs);
01190     void userInitialize();
01191     void userCopy(const Object &);
01192     
01193 
01194  protected:
01195   FEMethod_C(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : FEMethod(_db, _dataspace, 1) {}
01196   FEMethod_C(const eyedb::Struct *x, eyedb::Bool share, int) : FEMethod(x, share, 1) {}
01197   FEMethod_C(const FEMethod_C *x, eyedb::Bool share, int) : FEMethod(x, share, 1) {}
01198 
01199  private:
01200   void initialize(eyedb::Database *_db);
01201 
01202  public: /* restricted */
01203   FEMethod_C(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01204   FEMethod_C(const FEMethod_C *, eyedb::Bool = eyedb::False);
01205   FEMethod_C(const eyedb::Class *, eyedb::Data);
01206 };
01207 
01208 class BEMethod : public Method {
01209 
01210  public:
01211   BEMethod(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01212   BEMethod(const BEMethod& x);
01213 
01214   virtual eyedb::Object *clone() const {return new BEMethod(*this);};
01215 
01216   BEMethod& operator=(const BEMethod& x);
01217 
01218   virtual BEMethod *asBEMethod() {return this;}
01219   virtual const BEMethod *asBEMethod() const {return this;}
01220   virtual BEMethod_C *asBEMethod_C() {return (BEMethod_C *)0;}
01221   virtual const BEMethod_C *asBEMethod_C() const {return (const BEMethod_C *)0;}
01222   virtual BEMethod_OQL *asBEMethod_OQL() {return (BEMethod_OQL *)0;}
01223   virtual const BEMethod_OQL *asBEMethod_OQL() const {return (const BEMethod_OQL *)0;}
01224   virtual ~BEMethod() {garbageRealize();}
01225 
01226  protected:
01227   BEMethod(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : Method(_db, _dataspace, 1) {}
01228   BEMethod(const eyedb::Struct *x, eyedb::Bool share, int) : Method(x, share, 1) {}
01229   BEMethod(const BEMethod *x, eyedb::Bool share, int) : Method(x, share, 1) {}
01230 
01231  private:
01232   void initialize(eyedb::Database *_db);
01233 
01234  public: /* restricted */
01235   BEMethod(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01236   BEMethod(const BEMethod *, eyedb::Bool = eyedb::False);
01237   BEMethod(const eyedb::Class *, eyedb::Data);
01238 };
01239 
01240 class BEMethod_C : public BEMethod {
01241 
01242  public:
01243   BEMethod_C(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01244   BEMethod_C(const BEMethod_C& x);
01245 
01246   virtual eyedb::Object *clone() const {return new BEMethod_C(*this);};
01247 
01248   BEMethod_C& operator=(const BEMethod_C& x);
01249 
01250   virtual BEMethod_C *asBEMethod_C() {return this;}
01251   virtual const BEMethod_C *asBEMethod_C() const {return this;}
01252   virtual ~BEMethod_C() {garbageRealize();}
01253   // BEMethod_C User Part
01254 
01255     Status (*csym)(Database *, BEMethod *, Object *,
01256      ArgArray &array, Argument &retarg);
01257     BEMethod_C(Database *, Class *, const char *name,
01258         Signature *, Bool isClassMethod,
01259         Bool isSystem, const char *extref);
01260     Status execCheck();
01261     Status applyTo(Database *, Object *, ArgArray &, Argument &retarg, Bool checkArgs);
01262     
01263 
01264  protected:
01265   BEMethod_C(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : BEMethod(_db, _dataspace, 1) {}
01266   BEMethod_C(const eyedb::Struct *x, eyedb::Bool share, int) : BEMethod(x, share, 1) {}
01267   BEMethod_C(const BEMethod_C *x, eyedb::Bool share, int) : BEMethod(x, share, 1) {}
01268 
01269  private:
01270   void initialize(eyedb::Database *_db);
01271 
01272  public: /* restricted */
01273   BEMethod_C(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01274   BEMethod_C(const BEMethod_C *, eyedb::Bool = eyedb::False);
01275   BEMethod_C(const eyedb::Class *, eyedb::Data);
01276 };
01277 
01278 class BEMethod_OQL : public BEMethod {
01279 
01280  public:
01281   BEMethod_OQL(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01282   BEMethod_OQL(const BEMethod_OQL& x);
01283 
01284   virtual eyedb::Object *clone() const {return new BEMethod_OQL(*this);};
01285 
01286   BEMethod_OQL& operator=(const BEMethod_OQL& x);
01287 
01288   virtual BEMethod_OQL *asBEMethod_OQL() {return this;}
01289   virtual const BEMethod_OQL *asBEMethod_OQL() const {return this;}
01290   virtual ~BEMethod_OQL() {garbageRealize();}
01291   // BEMethod_OQL User Part
01292 
01293     BEMethod_OQL(Database *, Class *, const char *name,
01294    Signature *, Bool isClassMethod,
01295    Bool isSystem, const char *body);
01296 
01297     Status execCheck();
01298     Status setBody(const char *);
01299     Status applyTo(Database *, Object *, ArgArray &,
01300      Argument &retarg, Bool checkArgs);
01301 
01302     static std::string makeExtrefBody(const Class *cls, const char *oql,
01303           const char *fname,
01304           char *typnames[],
01305           char *varnames[],
01306           unsigned int param_cnt,
01307           std::string &oqlConstruct);
01308     Status runtimeInit();
01309 
01310     Bool isRTInitialized;
01311     char **varnames;
01312     int param_cnt;
01313     char *funcname;
01314     char *body;
01315     char *fullBody;
01316     char *tmpbuf;
01317     void *entry;
01318 
01319     void userInitialize();
01320     void userGarbage();
01321     void userCopy(const Object &);
01322     
01323 
01324  protected:
01325   BEMethod_OQL(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : BEMethod(_db, _dataspace, 1) {}
01326   BEMethod_OQL(const eyedb::Struct *x, eyedb::Bool share, int) : BEMethod(x, share, 1) {}
01327   BEMethod_OQL(const BEMethod_OQL *x, eyedb::Bool share, int) : BEMethod(x, share, 1) {}
01328 
01329  private:
01330   void initialize(eyedb::Database *_db);
01331 
01332  public: /* restricted */
01333   BEMethod_OQL(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01334   BEMethod_OQL(const BEMethod_OQL *, eyedb::Bool = eyedb::False);
01335   BEMethod_OQL(const eyedb::Class *, eyedb::Data);
01336 };
01337 
01338 class Trigger : public AgregatClassExecutable {
01339 
01340  public:
01341   Trigger(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01342   Trigger(const Trigger& x);
01343 
01344   virtual eyedb::Object *clone() const {return new Trigger(*this);};
01345 
01346   Trigger& operator=(const Trigger& x);
01347 
01348   virtual Trigger *asTrigger() {return this;}
01349   virtual const Trigger *asTrigger() const {return this;}
01350 
01351   eyedb::Status setType(TriggerType , eyedb::Bool _check_value = eyedb::True);
01352   TriggerType getType(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01353 
01354   eyedb::Status setLight(eyedblib::int32 );
01355   eyedblib::int32 getLight(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01356 
01357   eyedb::Status setSuffix(const std::string &);
01358   eyedb::Status setSuffix(unsigned int a0, char );
01359   std::string getSuffix(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01360   char getSuffix(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01361   virtual ~Trigger() {garbageRealize();}
01362   // Trigger User Part
01363 
01364     Trigger(Database *, Class *, TriggerType,
01365      ExecutableLang, Bool isSystem, const char *suffix,
01366      Bool light, const char *extref);
01367     Status (*csym)(TriggerType, Database *, const Oid &,
01368      Object *);
01369     Status apply(const Oid &, Object *);
01370     Status realize(const RecMode* = NoRecurs);
01371     Status remove(const RecMode* = NoRecurs);
01372     const char *getPrototype(Bool scope = True) const;
01373     const char *getCSym() const;
01374     static const char *getStrTriggerType(TriggerType);
01375     Bool isInherit() const;
01376     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
01377     int getInd() const;
01378 
01379     static std::string makeExtrefBody(const Class *cls, const char *oql,
01380           const char *fname,
01381           std::string &oqlConstruct);
01382     Status runtimeInit();
01383 
01384     Bool isRTInitialized;
01385     char *funcname;
01386     char *body;
01387     char *fullBody;
01388     char *tmpbuf;
01389     void *entry;
01390 
01391     void userInitialize();
01392     void userGarbage();
01393     void userCopy(const Object &);
01394     
01395 
01396  protected:
01397   Trigger(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AgregatClassExecutable(_db, _dataspace, 1) {}
01398   Trigger(const eyedb::Struct *x, eyedb::Bool share, int) : AgregatClassExecutable(x, share, 1) {}
01399   Trigger(const Trigger *x, eyedb::Bool share, int) : AgregatClassExecutable(x, share, 1) {}
01400 
01401  private:
01402   void initialize(eyedb::Database *_db);
01403 
01404  public: /* restricted */
01405   Trigger(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01406   Trigger(const Trigger *, eyedb::Bool = eyedb::False);
01407   Trigger(const eyedb::Class *, eyedb::Data);
01408 };
01409 
01410 class UniqueConstraint : public AttributeComponent {
01411 
01412  public:
01413   UniqueConstraint(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01414   UniqueConstraint(const UniqueConstraint& x);
01415 
01416   virtual eyedb::Object *clone() const {return new UniqueConstraint(*this);};
01417 
01418   UniqueConstraint& operator=(const UniqueConstraint& x);
01419 
01420   virtual UniqueConstraint *asUniqueConstraint() {return this;}
01421   virtual const UniqueConstraint *asUniqueConstraint() const {return this;}
01422   virtual ~UniqueConstraint() {garbageRealize();}
01423   // UniqueConstraint User Part
01424 
01425     UniqueConstraint(Database *, Class *, const char *attrpath,
01426        Bool propagate);
01427     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
01428     Status realize(const RecMode* = NoRecurs);
01429     Status remove(const RecMode* = NoRecurs);
01430     virtual AttributeComponent *xclone(Database *, const Class *);
01431     const char *genName() const;
01432     int getInd() const;
01433     
01434 
01435  protected:
01436   UniqueConstraint(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AttributeComponent(_db, _dataspace, 1) {}
01437   UniqueConstraint(const eyedb::Struct *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
01438   UniqueConstraint(const UniqueConstraint *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
01439 
01440  private:
01441   void initialize(eyedb::Database *_db);
01442 
01443  public: /* restricted */
01444   UniqueConstraint(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01445   UniqueConstraint(const UniqueConstraint *, eyedb::Bool = eyedb::False);
01446   UniqueConstraint(const eyedb::Class *, eyedb::Data);
01447 };
01448 
01449 class NotNullConstraint : public AttributeComponent {
01450 
01451  public:
01452   NotNullConstraint(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01453   NotNullConstraint(const NotNullConstraint& x);
01454 
01455   virtual eyedb::Object *clone() const {return new NotNullConstraint(*this);};
01456 
01457   NotNullConstraint& operator=(const NotNullConstraint& x);
01458 
01459   virtual NotNullConstraint *asNotNullConstraint() {return this;}
01460   virtual const NotNullConstraint *asNotNullConstraint() const {return this;}
01461   virtual ~NotNullConstraint() {garbageRealize();}
01462   // NotNullConstraint User Part
01463 
01464     NotNullConstraint(Database *, Class *, const char *attrpath,
01465         Bool propagate);
01466     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
01467     Status realize(const RecMode* = NoRecurs);
01468     Status remove(const RecMode* = NoRecurs);
01469     virtual AttributeComponent *xclone(Database *, const Class *);
01470     const char *genName() const;
01471     int getInd() const;
01472     
01473 
01474  protected:
01475   NotNullConstraint(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AttributeComponent(_db, _dataspace, 1) {}
01476   NotNullConstraint(const eyedb::Struct *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
01477   NotNullConstraint(const NotNullConstraint *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
01478 
01479  private:
01480   void initialize(eyedb::Database *_db);
01481 
01482  public: /* restricted */
01483   NotNullConstraint(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01484   NotNullConstraint(const NotNullConstraint *, eyedb::Bool = eyedb::False);
01485   NotNullConstraint(const eyedb::Class *, eyedb::Data);
01486 };
01487 
01488 class CardinalityDescription : public eyedb::Struct {
01489 
01490  public:
01491   CardinalityDescription(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01492   CardinalityDescription(const CardinalityDescription& x);
01493 
01494   virtual eyedb::Object *clone() const {return new CardinalityDescription(*this);};
01495 
01496   CardinalityDescription& operator=(const CardinalityDescription& x);
01497 
01498   virtual CardinalityDescription *asCardinalityDescription() {return this;}
01499   virtual const CardinalityDescription *asCardinalityDescription() const {return this;}
01500 
01501   eyedb::Status setBottom(eyedblib::int32 );
01502   eyedblib::int32 getBottom(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01503 
01504   eyedb::Status setBottomExcl(eyedblib::int32 );
01505   eyedblib::int32 getBottomExcl(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01506 
01507   eyedb::Status setTop(eyedblib::int32 );
01508   eyedblib::int32 getTop(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01509 
01510   eyedb::Status setTopExcl(eyedblib::int32 );
01511   eyedblib::int32 getTopExcl(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01512   virtual ~CardinalityDescription() {garbageRealize();}
01513   // CardinalityDescription User Part
01514 
01515     const char *getString(Bool = True) const;
01516     Bool compare(CardinalityDescription *);
01517     
01518 
01519  protected:
01520   CardinalityDescription(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
01521   CardinalityDescription(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01522   CardinalityDescription(const CardinalityDescription *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01523 
01524  private:
01525   void initialize(eyedb::Database *_db);
01526 
01527  public: /* restricted */
01528   CardinalityDescription(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01529   CardinalityDescription(const CardinalityDescription *, eyedb::Bool = eyedb::False);
01530   CardinalityDescription(const eyedb::Class *, eyedb::Data);
01531 };
01532 
01533 class CardinalityConstraint : public AgregatClassComponent {
01534 
01535  public:
01536   CardinalityConstraint(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01537   CardinalityConstraint(const CardinalityConstraint& x);
01538 
01539   virtual eyedb::Object *clone() const {return new CardinalityConstraint(*this);};
01540 
01541   CardinalityConstraint& operator=(const CardinalityConstraint& x);
01542 
01543   virtual CardinalityConstraint *asCardinalityConstraint() {return this;}
01544   virtual const CardinalityConstraint *asCardinalityConstraint() const {return this;}
01545 
01546   eyedb::Status setAttrname(const std::string &);
01547   eyedb::Status setAttrname(unsigned int a0, char );
01548   std::string getAttrname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01549   char getAttrname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01550 
01551   eyedb::Status setCardDesc(CardinalityDescription*);
01552   CardinalityDescription*getCardDesc(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
01553   const CardinalityDescription*getCardDesc(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01554   virtual ~CardinalityConstraint() {garbageRealize();}
01555   // CardinalityConstraint User Part
01556 
01557     CardinalityConstraint(Database *, Class *,
01558      const char *attrname, int, int, int, int);
01559     Status check(Class *) const;
01560     const char *genName() const;
01561     Bool isInherit() const;
01562     Status make(Class *);
01563     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
01564     int getInd() const;
01565     static int maxint;
01566     
01567 
01568  protected:
01569   CardinalityConstraint(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AgregatClassComponent(_db, _dataspace, 1) {}
01570   CardinalityConstraint(const eyedb::Struct *x, eyedb::Bool share, int) : AgregatClassComponent(x, share, 1) {}
01571   CardinalityConstraint(const CardinalityConstraint *x, eyedb::Bool share, int) : AgregatClassComponent(x, share, 1) {}
01572 
01573  private:
01574   void initialize(eyedb::Database *_db);
01575 
01576  public: /* restricted */
01577   CardinalityConstraint(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01578   CardinalityConstraint(const CardinalityConstraint *, eyedb::Bool = eyedb::False);
01579   CardinalityConstraint(const eyedb::Class *, eyedb::Data);
01580 };
01581 
01582 class CardinalityConstraint_Test : public AttributeComponent {
01583 
01584  public:
01585   CardinalityConstraint_Test(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01586   CardinalityConstraint_Test(const CardinalityConstraint_Test& x);
01587 
01588   virtual eyedb::Object *clone() const {return new CardinalityConstraint_Test(*this);};
01589 
01590   CardinalityConstraint_Test& operator=(const CardinalityConstraint_Test& x);
01591 
01592   virtual CardinalityConstraint_Test *asCardinalityConstraint_Test() {return this;}
01593   virtual const CardinalityConstraint_Test *asCardinalityConstraint_Test() const {return this;}
01594 
01595   eyedb::Status setCardDesc(CardinalityDescription*);
01596   CardinalityDescription*getCardDesc(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
01597   const CardinalityDescription*getCardDesc(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01598   virtual ~CardinalityConstraint_Test() {garbageRealize();}
01599   // CardinalityConstraint_Test User Part
01600 
01601     CardinalityConstraint_Test(Database *, Class *,
01602           const char *attrpath,
01603           int, int, int, int);
01604     Status realize(const RecMode* = NoRecurs);
01605     Status remove(const RecMode* = NoRecurs);
01606     const char *genName() const;
01607     Status m_trace(FILE *, int, unsigned int, const RecMode *) const;
01608     static int maxint;
01609     int getInd() const;
01610     
01611 
01612  protected:
01613   CardinalityConstraint_Test(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : AttributeComponent(_db, _dataspace, 1) {}
01614   CardinalityConstraint_Test(const eyedb::Struct *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
01615   CardinalityConstraint_Test(const CardinalityConstraint_Test *x, eyedb::Bool share, int) : AttributeComponent(x, share, 1) {}
01616 
01617  private:
01618   void initialize(eyedb::Database *_db);
01619 
01620  public: /* restricted */
01621   CardinalityConstraint_Test(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01622   CardinalityConstraint_Test(const CardinalityConstraint_Test *, eyedb::Bool = eyedb::False);
01623   CardinalityConstraint_Test(const eyedb::Class *, eyedb::Data);
01624 };
01625 
01626 class ProtectionUser : public eyedb::Struct {
01627 
01628  public:
01629   ProtectionUser(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01630   ProtectionUser(const ProtectionUser& x);
01631 
01632   virtual eyedb::Object *clone() const {return new ProtectionUser(*this);};
01633 
01634   ProtectionUser& operator=(const ProtectionUser& x);
01635 
01636   virtual ProtectionUser *asProtectionUser() {return this;}
01637   virtual const ProtectionUser *asProtectionUser() const {return this;}
01638 
01639   eyedb::Status setUser(eyedb::Object*);
01640   eyedb::Object*getUser(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
01641   const eyedb::Object*getUser(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01642   eyedb::Oid getUserOid(eyedb::Status * = 0) const;
01643   eyedb::Status setUserOid(const eyedb::Oid &);
01644 
01645   eyedb::Status setMode(ProtectionMode , eyedb::Bool _check_value = eyedb::True);
01646   ProtectionMode getMode(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01647   virtual ~ProtectionUser() {garbageRealize();}
01648 
01649  protected:
01650   ProtectionUser(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
01651   ProtectionUser(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01652   ProtectionUser(const ProtectionUser *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01653 
01654  private:
01655   void initialize(eyedb::Database *_db);
01656 
01657  public: /* restricted */
01658   ProtectionUser(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01659   ProtectionUser(const ProtectionUser *, eyedb::Bool = eyedb::False);
01660   ProtectionUser(const eyedb::Class *, eyedb::Data);
01661 };
01662 
01663 class Protection : public eyedb::Struct {
01664 
01665  public:
01666   Protection(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01667   Protection(const Protection& x);
01668 
01669   virtual eyedb::Object *clone() const {return new Protection(*this);};
01670 
01671   Protection& operator=(const Protection& x);
01672 
01673   virtual Protection *asProtection() {return this;}
01674   virtual const Protection *asProtection() const {return this;}
01675 
01676   eyedb::Status setName(const std::string &);
01677   eyedb::Status setName(unsigned int a0, char );
01678   std::string getName(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01679   char getName(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01680 
01681   eyedb::Status setPusers(unsigned int a0, ProtectionUser*);
01682   eyedb::Status setPusersCount(unsigned int a0);
01683   ProtectionUser*getPusers(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
01684   const ProtectionUser*getPusers(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01685   unsigned int getPusersCount(eyedb::Status * = 0) const;
01686 
01687   eyedb::Status setPoid(eyedb::Oid );
01688   eyedb::Oid getPoid(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01689   virtual ~Protection() {garbageRealize();}
01690   // Protection User Part
01691 
01692     Status realize(const RecMode* = NoRecurs);
01693     Status remove(const RecMode* = NoRecurs);
01694     
01695 
01696  protected:
01697   Protection(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
01698   Protection(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01699   Protection(const Protection *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01700 
01701  private:
01702   void initialize(eyedb::Database *_db);
01703 
01704  public: /* restricted */
01705   Protection(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01706   Protection(const Protection *, eyedb::Bool = eyedb::False);
01707   Protection(const eyedb::Class *, eyedb::Data);
01708 };
01709 
01710 class UnreadableObject : public eyedb::Struct {
01711 
01712  public:
01713   UnreadableObject(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01714   UnreadableObject(const UnreadableObject& x);
01715 
01716   virtual eyedb::Object *clone() const {return new UnreadableObject(*this);};
01717 
01718   UnreadableObject& operator=(const UnreadableObject& x);
01719 
01720   virtual UnreadableObject *asUnreadableObject() {return this;}
01721   virtual const UnreadableObject *asUnreadableObject() const {return this;}
01722   virtual ~UnreadableObject() {garbageRealize();}
01723   // UnreadableObject User Part
01724 
01725     Status trace_realize(FILE*, int, unsigned int, const RecMode *) const;
01726     static Bool isUnreadableObject(const Object *);
01727     static Bool isUnreadableObject(const Class *);
01728     
01729 
01730  protected:
01731   UnreadableObject(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
01732   UnreadableObject(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01733   UnreadableObject(const UnreadableObject *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01734 
01735  private:
01736   void initialize(eyedb::Database *_db);
01737 
01738  public: /* restricted */
01739   UnreadableObject(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01740   UnreadableObject(const UnreadableObject *, eyedb::Bool = eyedb::False);
01741   UnreadableObject(const eyedb::Class *, eyedb::Data);
01742 };
01743 
01744 class ClassConversion : public eyedb::Struct {
01745 
01746  public:
01747   ClassConversion(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
01748   ClassConversion(const ClassConversion& x);
01749 
01750   virtual eyedb::Object *clone() const {return new ClassConversion(*this);};
01751 
01752   ClassConversion& operator=(const ClassConversion& x);
01753 
01754   virtual ClassConversion *asClassConversion() {return this;}
01755   virtual const ClassConversion *asClassConversion() const {return this;}
01756 
01757   eyedb::Status setUpdtype(ClassUpdateType , eyedb::Bool _check_value = eyedb::True);
01758   ClassUpdateType getUpdtype(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01759 
01760   eyedb::Status setCnvtype(AttributeConvertType , eyedb::Bool _check_value = eyedb::True);
01761   AttributeConvertType getCnvtype(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01762 
01763   eyedb::Status setClsname(const std::string &);
01764   eyedb::Status setClsname(unsigned int a0, char );
01765   std::string getClsname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01766   char getClsname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01767 
01768   eyedb::Status setAttrname(const std::string &);
01769   eyedb::Status setAttrname(unsigned int a0, char );
01770   std::string getAttrname(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01771   char getAttrname(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01772 
01773   eyedb::Status setAttrnum(eyedblib::int32 );
01774   eyedblib::int32 getAttrnum(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01775 
01776   eyedb::Status setOidO(eyedb::Oid );
01777   eyedb::Oid getOidO(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01778 
01779   eyedb::Status setOidN(eyedb::Oid );
01780   eyedb::Oid getOidN(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01781 
01782   eyedb::Status setRoidO(eyedb::Oid );
01783   eyedb::Oid getRoidO(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01784 
01785   eyedb::Status setSync(eyedblib::int32 );
01786   eyedblib::int32 getSync(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01787 
01788   eyedb::Status setWithCheck(eyedblib::int32 );
01789   eyedblib::int32 getWithCheck(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01790 
01791   eyedb::Status setSrcDim(eyedblib::int32 );
01792   eyedblib::int32 getSrcDim(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01793 
01794   eyedb::Status setDestDim(eyedblib::int32 );
01795   eyedblib::int32 getDestDim(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01796 
01797   eyedb::Status setOffsetO(eyedblib::int32 );
01798   eyedblib::int32 getOffsetO(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01799 
01800   eyedb::Status setOffsetN(eyedblib::int32 );
01801   eyedblib::int32 getOffsetN(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01802 
01803   eyedb::Status setSizeO(eyedblib::int32 );
01804   eyedblib::int32 getSizeO(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01805 
01806   eyedb::Status setSizeN(eyedblib::int32 );
01807   eyedblib::int32 getSizeN(eyedb::Bool *isnull = 0, eyedb::Status * = 0)  const;
01808 
01809   eyedb::Status setCnvMth(BEMethod_C*);
01810   BEMethod_C*getCnvMth(eyedb::Bool *isnull = 0, eyedb::Status * = 0) ;
01811   const BEMethod_C*getCnvMth(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
01812   eyedb::Oid getCnvMthOid(eyedb::Status * = 0) const;
01813   eyedb::Status setCnvMthOid(const eyedb::Oid &);
01814   virtual ~ClassConversion() {garbageRealize();}
01815   // ClassConversion User Part
01816 
01817     struct Context {
01818       const Class *cls;
01819       ObjectArray obj_arr;
01820       Context *next;
01821       Context();
01822       ~Context();
01823     };
01824 
01825     const Class *cls_;
01826     const Attribute *attr_;
01827     static Status getClass_(Database *, const Oid &ocloid,
01828        const Class *&,
01829        ClassConversion::Context *&,
01830        Bool class_to_class = False);
01831     static Status convert(Database *, const ClassConversion::Context *,
01832      Data in_idr, Size in_size);
01833     Status convert(Database *db, Data in_idr, Size &in_size);
01834     static Size computeSize(ClassConversion::Context *conv_ctx,
01835        Size start_size);
01836     void computeSize(Size &cur_size);
01837 
01838     static void init();
01839     static void _release();
01840 
01841     void userInitialize();
01842     void userCopy(const Object &);
01843     void userGarbage();
01844     
01845 
01846  protected:
01847   ClassConversion(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
01848   ClassConversion(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01849   ClassConversion(const ClassConversion *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
01850 
01851  private:
01852   void initialize(eyedb::Database *_db);
01853 
01854  public: /* restricted */
01855   ClassConversion(const eyedb::Struct *, eyedb::Bool = eyedb::False);
01856   ClassConversion(const ClassConversion *, eyedb::Bool = eyedb::False);
01857   ClassConversion(const eyedb::Class *, eyedb::Data);
01858 };
01859 
01860 
01861 extern eyedb::Object *sysclsMakeObject(eyedb::Object *, eyedb::Bool=eyedb::True);
01862 extern eyedb::Bool syscls_set_oid_check(eyedb::Bool);
01863 extern eyedb::Bool syscls_get_oid_check();
01864 
01865 extern eyedb::EnumClass *IndexType_Class;
01866 extern eyedb::EnumClass *ExecutableLang_Class;
01867 extern eyedb::EnumClass *ArgType_Type_Class;
01868 extern eyedb::EnumClass *ExecutableLocalisation_Class;
01869 extern eyedb::EnumClass *ExecutableType_Class;
01870 extern eyedb::EnumClass *TriggerType_Class;
01871 extern eyedb::EnumClass *ProtectionMode_Class;
01872 extern eyedb::EnumClass *ClassUpdateType_Class;
01873 extern eyedb::EnumClass *AttributeConvertType_Class;
01874 extern eyedb::StructClass *AttributeComponent_Class;
01875 extern eyedb::StructClass *AttributeComponentSet_Class;
01876 extern eyedb::StructClass *ClassComponent_Class;
01877 extern eyedb::StructClass *AgregatClassComponent_Class;
01878 extern eyedb::StructClass *ClassVariable_Class;
01879 extern eyedb::StructClass *Index_Class;
01880 extern eyedb::StructClass *HashIndex_Class;
01881 extern eyedb::StructClass *BTreeIndex_Class;
01882 extern eyedb::StructClass *CollAttrImpl_Class;
01883 extern eyedb::StructClass *ArgType_Class;
01884 extern eyedb::StructClass *Signature_Class;
01885 extern eyedb::StructClass *Executable_Class;
01886 extern eyedb::StructClass *AgregatClassExecutable_Class;
01887 extern eyedb::StructClass *Method_Class;
01888 extern eyedb::StructClass *FEMethod_Class;
01889 extern eyedb::StructClass *FEMethod_C_Class;
01890 extern eyedb::StructClass *BEMethod_Class;
01891 extern eyedb::StructClass *BEMethod_C_Class;
01892 extern eyedb::StructClass *BEMethod_OQL_Class;
01893 extern eyedb::StructClass *Trigger_Class;
01894 extern eyedb::StructClass *UniqueConstraint_Class;
01895 extern eyedb::StructClass *NotNullConstraint_Class;
01896 extern eyedb::StructClass *CardinalityDescription_Class;
01897 extern eyedb::StructClass *CardinalityConstraint_Class;
01898 extern eyedb::StructClass *CardinalityConstraint_Test_Class;
01899 extern eyedb::StructClass *ProtectionUser_Class;
01900 extern eyedb::StructClass *Protection_Class;
01901 extern eyedb::StructClass *UnreadableObject_Class;
01902 extern eyedb::StructClass *ClassConversion_Class;
01903 
01904 
01905 }
01906 
01907 #endif

Generated on Mon Dec 22 18:16:10 2008 for eyedb by  doxygen 1.5.3