This interface is used to interact with the distributed database. More...
#include <idatabase.h>
Public Types | |
enum | Garbage_collection_priority { PRIORITY_LOW = 0 , PRIORITY_MEDIUM = 1 , PRIORITY_HIGH = 2 , PRIORITY_FORCE_32_BIT = 0xffffffffU } |
Priorities for synchronous garbage collection runs. More... | |
![]() | |
using | Self = Interface_declare< id1, ... > |
Own type. More... | |
using | IID = Uuid_t< id1, ... > |
Declares the interface ID (IID) of this interface. More... | |
![]() | |
using | IID = Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> |
Declares the interface ID (IID) of this interface. More... | |
Public Member Functions | |
virtual IScope * | get_global_scope () const =0 |
Returns the global scope which is the root of a tree of scopes. More... | |
virtual IScope * | create_scope (IScope *parent, Uint8 privacy_level=0, bool temp=false)=0 |
Creates a new unnamed scope. More... | |
virtual IScope * | create_or_get_named_scope (const char *name, IScope *parent=nullptr, Uint8 privacy_level=0)=0 |
Creates a new named scope (or retrieves an existing one). More... | |
virtual IScope * | get_scope (const char *id) const =0 |
Looks up a scope by ID. More... | |
virtual IScope * | get_named_scope (const char *name) const =0 |
Looks up a scope by name. More... | |
virtual Sint32 | remove_scope (const char *id) const =0 |
Removes a scope with the specified ID. More... | |
virtual void | garbage_collection (Garbage_collection_priority priority=PRIORITY_MEDIUM)=0 |
Triggers a synchronous garbage collection run. More... | |
virtual void | lock (Uint32 lock_id)=0 |
This operation is not supported. More... | |
virtual Sint32 | unlock (Uint32 lock_id)=0 |
This operation is not supported. More... | |
![]() | |
virtual Uint32 | retain () const =0 |
Increments the reference count. More... | |
virtual Uint32 | release () const =0 |
Decrements the reference count. More... | |
virtual const IInterface * | get_interface (const Uuid &interface_id) const =0 |
Acquires a const interface from another. More... | |
template<class T> | |
const T * | get_interface () const |
Acquires a const interface from another. More... | |
virtual IInterface * | get_interface (const Uuid &interface_id)=0 |
Acquires a mutable interface from another. More... | |
template<class T> | |
T * | get_interface () |
Acquires a mutable interface from another. More... | |
virtual Uuid | get_iid () const =0 |
Returns the interface ID of the most derived interface. More... | |
Additional Inherited Members | |
![]() | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
![]() | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface. More... | |
This interface is used to interact with the distributed database.
Priorities for synchronous garbage collection runs.
|
pure virtual |
Creates a new named scope (or retrieves an existing one).
name | The name of the new scope. If there is no scope with that name, it will be created with the given parent scope and privacy level. Otherwise, if the given parent scope and privacy level match the properties of an existing scope with that name, then that scope will be returned. If there is a mismatch, neither a scope will be created nor returned, and the method returns nullptr . |
parent | The parent scope for this scope. The value nullptr represents the global scope. |
privacy_level | The privacy level of the scope, which must be higher than the privacy level of the parent scope. The privacy level of the global scope is 0 (and the global scope is the only scope with privacy level 0). The default value of 0 indicates the privacy level of the parent scope plus 1. |
nullptr
in case of errors.
|
pure virtual |
Creates a new unnamed scope.
parent | The parent scope for this scope. The value nullptr represents the global scope. |
privacy_level | The privacy level of the scope, which must be higher than the privacy level of the parent scope. The privacy level of the global scope is 0 (and the global scope is the only scope with privacy level 0). The default value of 0 indicates the privacy level of the parent scope plus 1. |
temp | Unused. |
nullptr
in case of errors.
|
pure virtual |
Triggers a synchronous garbage collection run.
The method sweeps through the entire database and removes all database elements which have been marked for removal and are no longer referenced. Note that it is not possible to remove database elements if there are open transactions in which such an element is still referenced.
To mark an element for removal use mi::neuraylib::ITransaction::remove().
priority | The intended priority of the synchronous garbage collection run. The MDL SDK does not support different priorities, and the synchronous garbage collection always runs at highest priority. |
|
pure virtual |
Returns the global scope which is the root of a tree of scopes.
|
pure virtual |
Looks up a scope by name.
name | The name of the scope |
nullptr
if no such scope exists.
|
pure virtual |
Looks up a scope by ID.
id | The ID of the scope as returned by mi::neuraylib::IScope::get_id(). |
nullptr
if no such scope exists.
|
pure virtual |
This operation is not supported.
|
pure virtual |
Removes a scope with the specified ID.
Note that scopes are reference counted. The actual removal will not happen before all elements referencing the scope have been released, e.g., child scopes, transactions, database elements, including handles to the scope itself. Even when all these conditions are met, scope removal might actually happen at a later point in time, depending on the timing of past and current transactions, even in unrelated scopes.
It is not possible to remove the global scope.
id | The ID of the scope as returned by mi::neuraylib::IScope::get_id(). |