![]() |
rasdaman client API
10.6.3
The Array Analytics Engine: Datacubes at Your Fingertips
|
Through inheritance of this class, the type definer specifies that the subclass is capable of having persistent as well as transient instances. More...
#include <object.hh>
Public Types | |
| enum | ObjectStatus { no_status, deleted, created, modified, read, transient } |
| object life status More... | |
| enum | ObjectType { no_object, persistent_object, transient_object } |
| created - The object was created in the current transaction and has to be stored in the database. More... | |
Public Member Functions | |
| r_Object (r_Transaction *transaction=NULL) | |
| default constructor More... | |
| r_Object (unsigned short objType, r_Transaction *transaction=NULL) | |
| constructor getting objType More... | |
| r_Object (const r_Object &, unsigned short objType=0, r_Transaction *transaction=NULL) | |
objType specifies the type of the object (1=Marray, 2=Collection). More... | |
| virtual | ~r_Object () |
objType specifies the type of the object (1=Marray, 2=Collection). More... | |
| void | mark_modified () |
| mark the object as modified More... | |
| void * | operator new (size_t size) |
| new operator for transient objects More... | |
| void * | operator new (size_t size, r_Database *database, const char *type_name=0) |
| new operator for persistent objects More... | |
| void * | operator new (size_t size, const char *type_name) |
| new operator for transient objects carrying type information More... | |
| void | operator delete (void *obj_ptr) |
| delete operator More... | |
| void | set_type_by_name (const char *name) |
| set object type by name More... | |
| void | set_type_structure (const char *name) |
| With this method a type name has to be given by the user for each object which he wants to make persistent. More... | |
| const char * | get_type_name () const |
| get object type name More... | |
| const char * | get_type_structure () const |
| get object type structure More... | |
| const r_OId & | get_oid () const |
| get oid More... | |
| const r_Type * | get_type_schema () |
| get type schema. returns NULL in case of error More... | |
| void | set_type_schema (const r_Type *type) |
| virtual void | insert_obj_into_db ()=0 |
| inserts an object into the database More... | |
| virtual void | insert_obj_into_db (const char *)=0 |
| inserts an object into a specific collection in the database More... | |
| virtual void | update_obj_in_db () |
| updates an object in database More... | |
| virtual void | load_obj_from_db () |
| load an object from the database More... | |
| void | delete_obj_from_db () |
| deletes an object from the database More... | |
| void | initialize_oid (const r_OId &initOId) |
| initialize oid of the object More... | |
| virtual void | r_activate () |
| it is called when an object comes into transient memory More... | |
| virtual void | r_deactivate () |
| it is called when an object leaves transient memory More... | |
| bool | test_status (ObjectStatus status) |
| test object status returns 1 if it matches More... | |
| ObjectStatus | get_status () const |
| gets the status of the object More... | |
| void | set_object_name (const char *name) |
| set object name. object name should contain only [a-zA-Z0-9_] More... | |
| const char * | get_object_name () const |
| get object name More... | |
| void * | operator new (size_t size, r_Database *database, ObjectStatus status, const r_OId &oid) |
| new operator for activating an object (status = read) More... | |
| r_Transaction * | get_transaction () const |
Protected Member Functions | |
| void | update_transaction () |
| resets to the global r_Transaction::actual_transaction if necessary More... | |
| bool | test_type (ObjectType type) |
| test object type returns 1 if it matches More... | |
Protected Attributes | |
| char * | object_name {0} |
| stores object name if it has one More... | |
| char * | type_name {0} |
| stores object type name if it has one More... | |
| char * | type_structure {0} |
| store type structure as string if it has one More... | |
| r_Type * | type_schema {0} |
| pointer to type schema (built on request) More... | |
| unsigned short | internal_obj_type {0} |
| internal object type (1 marray, 2 collection) More... | |
| r_Transaction * | transaction {NULL} |
| pointer to the transaction this object belongs to. More... | |
Through inheritance of this class, the type definer specifies that the subclass is capable of having persistent as well as transient instances.
Attention: Right now, just the classes r_Set and r_Marray inherit from r_Object which, therefore, are the only persistent capable classes. In fact, just objects of type r_Set<r_Ref<r_Marray<...>>> can be made persitent right now.
| enum r_Object::ObjectType |
created - The object was created in the current transaction and has to be stored in the database.
deleted - The object was deleted. It is still in main memory and in the database. It is going to be removed at the end of the transaction. modified - Object was modified and has to be updated in the database. read - The object was read from the database without modifying it afterwards. transient - The object belongs to a declarative query result. In most cases, it has no persistent counterpart in the db. It is NOT considered in the update phase. object types
| Enumerator | |
|---|---|
| no_object | |
| persistent_object | |
| transient_object | |
| r_Object::r_Object | ( | r_Transaction * | transaction = NULL | ) |
default constructor
| r_Object::r_Object | ( | unsigned short | objType, |
| r_Transaction * | transaction = NULL |
||
| ) |
constructor getting objType
| r_Object::r_Object | ( | const r_Object & | , |
| unsigned short | objType = 0, |
||
| r_Transaction * | transaction = NULL |
||
| ) |
objType specifies the type of the object (1=Marray, 2=Collection).
transaction the transaction object under which this object is registered. Internal casting to void is necesarry due to circural referencing. This is needed for oid allocation and propably dropped in future. copy constructor
|
virtual |
objType specifies the type of the object (1=Marray, 2=Collection).
transaction the transaction object under which this object is registered. Internal casting to void is necesarry due to circural referencing. This is needed for oid allocation and propably dropped in future. virtual destructor
| void r_Object::delete_obj_from_db | ( | ) |
deletes an object from the database
| const char* r_Object::get_object_name | ( | ) | const |
get object name
| const r_OId& r_Object::get_oid | ( | ) | const |
get oid
| ObjectStatus r_Object::get_status | ( | ) | const |
gets the status of the object
| r_Transaction* r_Object::get_transaction | ( | ) | const |
| const char* r_Object::get_type_name | ( | ) | const |
get object type name
| const r_Type* r_Object::get_type_schema | ( | ) |
get type schema. returns NULL in case of error
| const char* r_Object::get_type_structure | ( | ) | const |
get object type structure
| void r_Object::initialize_oid | ( | const r_OId & | initOId | ) |
initialize oid of the object
|
pure virtual |
inserts an object into the database
Implemented in r_GMarray, and r_Collection< T >.
|
pure virtual |
inserts an object into a specific collection in the database
Implemented in r_GMarray, and r_Collection< T >.
|
virtual |
load an object from the database
| void r_Object::mark_modified | ( | ) |
mark the object as modified
| void r_Object::operator delete | ( | void * | obj_ptr | ) |
delete operator
| void* r_Object::operator new | ( | size_t | size | ) |
new operator for transient objects
| void* r_Object::operator new | ( | size_t | size, |
| const char * | type_name | ||
| ) |
new operator for transient objects carrying type information
| void* r_Object::operator new | ( | size_t | size, |
| r_Database * | database, | ||
| const char * | type_name = 0 |
||
| ) |
new operator for persistent objects
| void* r_Object::operator new | ( | size_t | size, |
| r_Database * | database, | ||
| ObjectStatus | status, | ||
| const r_OId & | oid | ||
| ) |
new operator for activating an object (status = read)
|
inlinevirtual |
it is called when an object comes into transient memory
|
virtual |
it is called when an object leaves transient memory
Reimplemented in r_GMarray, and r_Collection< T >.
| void r_Object::set_object_name | ( | const char * | name | ) |
set object name. object name should contain only [a-zA-Z0-9_]
| void r_Object::set_type_by_name | ( | const char * | name | ) |
set object type by name
| void r_Object::set_type_schema | ( | const r_Type * | type | ) |
| void r_Object::set_type_structure | ( | const char * | name | ) |
With this method a type name has to be given by the user for each object which he wants to make persistent.
If an object without a valid type name is made persistent, an error occurs while committing the transaction.
NOTE: This method is updated. Use void* operator new( size_t size, r_Database database, const char type_name ) instead. set object type by name
| bool r_Object::test_status | ( | ObjectStatus | status | ) |
test object status returns 1 if it matches
|
protected |
test object type returns 1 if it matches
|
virtual |
updates an object in database
Reimplemented in r_Collection< T >.
|
protected |
resets to the global r_Transaction::actual_transaction if necessary
|
protected |
internal object type (1 marray, 2 collection)
|
protected |
stores object name if it has one
|
protected |
pointer to the transaction this object belongs to.
Void* to avoid compilation errors caused by cyclic dependencies in the raslib between transaction, database and r_Object
|
protected |
stores object type name if it has one
|
protected |
pointer to type schema (built on request)
|
protected |
store type structure as string if it has one
1.8.17