71 r_Object(
unsigned short objType )
throw(r_Error);
77 r_Object(
const r_Object&,
unsigned short objType=0 ) throw(r_Error);
88 inline
void mark_modified();
91 void* operator new(
size_t size );
94 void* operator new(
size_t size, r_Database *database, const
char* type_name = 0 );
97 void* operator new(
size_t size, const
char* type_name );
100 void operator delete(
void* obj_ptr );
103 inline
void set_type_by_name( const
char* name ) throw(r_Error);
115 inline
void set_type_structure( const
char* name ) throw(r_Error);
119 inline const
char* get_type_name() const;
122 inline const
char* get_type_structure() const;
125 inline const r_OId& get_oid() const;
128 const
r_Type* get_type_schema();
130 void set_type_schema(const
r_Type* type) throw (r_Error);
137 enum ObjectStatus { no_status, deleted, created, modified, read,
transient };
148 enum ObjectType { no_object, persistent_object, transient_object };
153 virtual void insert_obj_into_db()=0;
155 virtual void insert_obj_into_db(
const char* )=0;
157 virtual void update_obj_in_db();
159 virtual void load_obj_from_db();
161 void delete_obj_from_db();
165 void initialize_oid(
const r_OId& initOId );
169 virtual void r_activate()
174 virtual void r_deactivate();
178 int test_status( ObjectStatus status );
180 inline ObjectStatus get_status()
const;
184 inline void set_object_name(
const char* name )
throw(r_Error);
186 inline const char* get_object_name()
const;
190 void*
operator new(
size_t size, r_Database *database, ObjectStatus status,
const r_OId& oid );
197 int test_type( ObjectType type );
206 char* type_structure;
212 unsigned short internal_obj_type;
216 ObjectStatus object_status;
219 ObjectType object_type;
225 static ObjectType next_object_type;
228 static ObjectStatus next_object_status;
231 static char* next_object_type_name;
234 static r_OId next_object_oid;
237 static ObjectType last_object_type;
240 #include "rasodmg/object.icc"