PObject Class
OCCI provides object navigational calls that enable applications to perform any of the following on objects:
-
Creating, accessing, locking, deleting, copying, and flushing objects
-
Getting references to the objects
This class enables the type definer to specify when a class can have persistent or transient instances. Instances of classes derived from PObject are either persistent or transient. For example, class A that is persistent-capable inherits from the PObject class:
class A : PObject { ... }
The only methods valid on a NULL PObject are setName(), isNull(), and operator=().
Some methods, such as lock(), apply only for persistent instances, not for transient instances.
Table 13-31 Enumerated Values Used by PObject Class
| Attribute | Options |
|---|---|
LockOption |
|
UnpinOption |
|
Table 13-32 Summary of PObject Methods
| Method | Summary |
|---|---|
|
|
|
|
Flushes a modified persistent object to the database server. |
|
|
Returns the connection from which the |
|
|
Returns a reference to a given persistent object. |
|
|
Returns the Oracle AI Database typename for this class. |
|
|
Tests whether the persistent object is locked. |
|
|
Tests whether the object is |
|
|
Lock a persistent object on the database server. The default mode is to wait for the lock if not available. |
|
|
Marks a persistent object as deleted. |
|
|
Marks a persistent object as modified or dirty. |
|
|
Assigns one |
|
|
Remove the persistent object from the application cache only. |
|
|
Creates a new persistent / transient instance. |
|
|
Pins an object. |
|
|
Sets the object value to |
|
|
Unmarks an object as dirty. |
|
|
Unpins an object. In the default mode, the pin count of the object is decremented by one. |
- PObject()
- flush()
- getConnection()
- getRef()
- getSQLTypeName()
- isLocked()
- isNull()
- lock()
- markDelete()
- markModified()
- operator=()
- operator delete()
- operator new()
- pin()
- setNull()
- unmark()
- unpin()
Parent topic: OCCI Application Programming Interface
PObject()
PObject class constructor.
| Syntax | Description |
|---|---|
PObject(); |
Creates a |
PObject( const PObject &obj); |
Creates a copy of |
| Parameter | Description |
|---|---|
obj |
The source object. |
Parent topic: PObject Class
flush()
This method flushes a modified persistent object to the database server.
Syntax
void flush();
Parent topic: PObject Class
getConnection()
Returns the connection from which the persistent object was instantiated.
Syntax
const Connection *getConnection() const;
Parent topic: PObject Class
getRef()
This method returns a reference to the persistent object.
Syntax
RefAny getRef() const;
Parent topic: PObject Class
getSQLTypeName()
Returns the Oracle AI Database typename for this class.
Syntax
string getSQLTypeName() const;
Parent topic: PObject Class
isLocked()
This method test whether the persistent object is locked. If the persistent object is locked, then TRUE is returned; otherwise, FALSE is returned.
Syntax
bool isLocked() const;
Parent topic: PObject Class
isNull()
This method tests whether the persistent object is NULL. If the persistent object is NULL, then TRUE is returned; otherwise, FALSE is returned.
Syntax
bool isNull() const;
Parent topic: PObject Class
lock()
Locks a persistent object on the database server.
Syntax
void lock( PObject::LockOption lock_option);
| Parameter | Description |
|---|---|
lock_option |
Locking options; see Table 13-31. |
Parent topic: PObject Class
markDelete()
This method marks a persistent object as deleted.
Syntax
void markDelete();
Parent topic: PObject Class
markModified()
This method marks a persistent object as modified or dirty.
Syntax
void mark_Modified();
Parent topic: PObject Class
operator=()
This method assigns the value of a persistent object this PObject object. The nature (transient or persistent) of the object is maintained. NULL information is copied from the source instance.
Syntax
PObject& operator=( const PObject& obj);
| Parameter | Description |
|---|---|
obj |
The object from which the assigned value is obtained. |
Parent topic: PObject Class
operator delete()
Deletes a persistent or transient object. The delete operator on a persistent object removes the object from the application cache only. To delete the object from the database server, invoke the markDelete() method.
Syntax
void operator delete( void *obj, size_t size);
| Parameter | Description |
|---|---|
obj |
The pointer to object to be deleted |
size |
(Optional) Size is implicitly obtained from the object |
Parent topic: PObject Class
operator new()
This method creates a new object. A persistent object is created if the connection and table name are provided. Otherwise, a transient object is created.
| Syntax | Description |
|---|---|
void *operator new( size_t size); |
Creates a default new object, with a size specification only |
void *operator new( size_t size, const Connection *conn, const string& tableName, const char *typeName); |
Used for creating transient objects when client side characterset is multibyte. |
void *operator new( size_t size, const Connection *conn, const string& tableName, const string& typeName, const string& schTableName="", const string& schTypeName=""); |
Used for creating persistent objects when client side characterset is multibyte. |
void *operator new( size_t size, const Connection *conn, const UString& tableName, const UString& typeName, const UString& schTableName="", const UString& schTypeName=""); |
Used for creating persistent objects when client side characterset is unicode (UTF16). |
| Parameter | Description |
|---|---|
size |
size of the object |
conn |
The connection to the database in which the persistent object is to be created. |
tableName |
The name of the table in the database server. |
typeName |
The SQL type name corresponding to this C++ class. The format is |
schTableName |
The schema table name. |
schTypeName |
The schema type name. |
Parent topic: PObject Class
pin()
This method pins the object and increments the pin count by one. If the object is pinned, it is not freed by the cache even if there are no references to this object instance.
Syntax
void pin();
Parent topic: PObject Class
setNull()
This method sets the object value to NULL.
Syntax
void setNull();
Parent topic: PObject Class
unmark()
This method unmarks a persistent object as modified or deleted.
Syntax
void unmark();
Parent topic: PObject Class
unpin()
This method unpins a persistent object. In the default mode, the pin count of the object is decremented by one. When this method is invoked with OCCI_PINCOUNT_RESET, the pin count of the object is reset. If the pin count is reset, this method invalidates all the references (Refs) pointing to this object. The cache sets the object eligible to be freed, if necessary, reclaiming memory.
Syntax
void unpin( UnpinOption mode=OCCI_PINCOUNT_DECR);
| Parameter | Description |
|---|---|
mode |
Specifies whether the |
Parent topic: PObject Class