00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _EYEDB_COLL_ARRAY_CLASS_H
00026 #define _EYEDB_COLL_ARRAY_CLASS_H
00027
00028 namespace eyedb {
00029
00038 class CollArrayClass : public CollectionClass {
00039
00040
00041
00042
00043 public:
00044 static CollectionClass *make(Class *, Bool, int, Status &);
00045
00051 CollArrayClass(Class *coll_class, Bool isref);
00052
00058 CollArrayClass(Class *coll_class, int dim);
00059
00064 CollArrayClass(const CollArrayClass &cl);
00065
00071 CollArrayClass& operator=(const CollArrayClass &cl);
00072
00077 virtual const char *getPrefix() const {return "array";}
00078
00083 virtual const char *getCSuffix() const {return "CollArray";}
00084
00089 virtual Object *clone() const {return new CollArrayClass(*this);}
00090
00095 virtual CollArrayClass *asCollArrayClass() {return this;}
00096
00101 virtual const CollArrayClass *asCollArrayClass() const {return this;}
00102
00108 Object *newObj(Database *db = NULL) const;
00109
00116 Object *newObj(Data data, Bool copy = True) const;
00117
00118
00119
00120
00121 public:
00122 CollArrayClass(const Oid&, const char *);
00123 };
00124
00125 class CollArrayClassPtr : public CollectionClassPtr {
00126
00127 public:
00128 CollArrayClassPtr(CollArrayClass *o = 0) : CollectionClassPtr(o) { }
00129
00130 CollArrayClass *getCollArrayClass() {return dynamic_cast<CollArrayClass *>(o);}
00131 const CollArrayClass *getCollArrayClass() const {return dynamic_cast<CollArrayClass *>(o);}
00132
00133 CollArrayClass *operator->() {return dynamic_cast<CollArrayClass *>(o);}
00134 const CollArrayClass *operator->() const {return dynamic_cast<CollArrayClass *>(o);}
00135 };
00136
00137 typedef std::vector<CollArrayClassPtr> CollArrayClassPtrVector;
00138
00143 }
00144
00145 #endif
00146