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 #include "eyedb_p.h"
00026 #include <iostream>
00027
00028 namespace eyedb {
00029
00030 UnionClass::UnionClass(const char *s, Class *p) :
00031 AgregatClass(s, p)
00032 {
00033 parent = (p ? p : Union_Class);
00034 setClass(UnionClass_Class);
00035 type = _UnionClass_Type;
00036 }
00037
00038 UnionClass::UnionClass(const char *s, const Oid *poid) :
00039 AgregatClass(s, poid)
00040 {
00041 parent = 0;
00042 setClass(UnionClass_Class);
00043 type = _UnionClass_Type;
00044 }
00045
00046 UnionClass::UnionClass(Database *_db, const char *s,
00047 Class *p) : AgregatClass(_db, s, p)
00048 {
00049 parent = (p ? p : Union_Class);
00050 setClass(UnionClass_Class);
00051 type = _UnionClass_Type;
00052 }
00053
00054 UnionClass::UnionClass(Database *_db, const char *s,
00055 const Oid *poid) : AgregatClass(_db, s, poid)
00056 {
00057 parent = 0;
00058 setClass(UnionClass_Class);
00059 type = _UnionClass_Type;
00060 }
00061
00062 Status
00063 UnionClass::loadComplete(const Class *cl)
00064 {
00065 assert(cl->asUnionClass());
00066 Status s = Class::loadComplete(cl);
00067 if (s) return s;
00068 return Success;
00069 }
00070
00071 Object *UnionClass::newObj(Database *_db) const
00072 {
00073 if (!idr_objsz)
00074 return 0;
00075
00076 Union *t = new Union(_db);
00077
00078 ObjectPeer::make(t, this, 0, _Union_Type, idr_objsz,
00079 idr_psize, idr_vsize);
00080 newObjRealize(t);
00081 return t;
00082 }
00083
00084 Object *UnionClass::newObj(Data data, Bool _copy) const
00085 {
00086 if (!idr_objsz)
00087 return 0;
00088
00089 Union *t = new Union();
00090
00091 ObjectPeer::make(t, this, data, _Union_Type, idr_objsz,
00092 idr_psize, idr_vsize, _copy);
00093 newObjRealize(t);
00094 return t;
00095 }
00096
00097 }