MDL SDK API nvidia_logo_transpbg.gif Up
idatabase.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IDATABASE_H
8#define MI_NEURAYLIB_IDATABASE_H
9
11
12namespace mi {
13
14namespace neuraylib {
15
16class IScope;
17
287class IDatabase : public
288 mi::base::Interface_declare<0x814ae637,0xde35,0x4870,0x8e,0x5b,0x7e,0x28,0x9d,0x30,0xfb,0x82>
289{
290public:
295 virtual IScope* get_global_scope() const = 0;
296
317 virtual IScope* create_scope( IScope* parent, Uint8 privacy_level = 0, bool temp = false) = 0;
318
335 const char* name, IScope* parent = 0, Uint8 privacy_level = 0) = 0;
336
341 virtual IScope* get_scope( const char* id) const = 0;
342
347 virtual IScope* get_named_scope( const char* name) const = 0;
348
361 virtual Sint32 remove_scope( const char* id) const = 0;
362
365
370
375
380
381 // Undocumented, for alignment only.
382 PRIORITY_FORCE_32_BIT = 0xffffffffU
383 };
384
401
423 virtual void lock( Uint32 lock_id) = 0;
424
437 virtual Sint32 unlock( Uint32 lock_id) = 0;
438};
439
441 // end group mi_neuray_database_access
443
444} // namespace neuraylib
445
446} // namespace mi
447
448#endif // MI_NEURAYLIB_IDATABASE_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
This interface is used to interact with the distributed database.
Definition: idatabase.h:289
Garbage_collection_priority
Priorities for synchronous garbage collection runs.
Definition: idatabase.h:364
@ PRIORITY_MEDIUM
Medium priority for synchronous garbage collection runs.
Definition: idatabase.h:374
@ PRIORITY_HIGH
High priority for synchronous garbage collection runs.
Definition: idatabase.h:379
@ PRIORITY_LOW
Low priority for synchronous garbage collection runs.
Definition: idatabase.h:369
virtual IScope * get_scope(const char *id) const =0
Looks up and returns a scope with a given ID.
virtual void lock(Uint32 lock_id)=0
This operation is not supported.
virtual void garbage_collection(Garbage_collection_priority priority=PRIORITY_MEDIUM)=0
Triggers a synchronous garbage collection run.
virtual IScope * create_scope(IScope *parent, Uint8 privacy_level=0, bool temp=false)=0
Creates a new optionally temporary scope at the given privacy level with the given parent scope ID.
virtual Sint32 remove_scope(const char *id) const =0
Removes a scope with the specified ID.
virtual IScope * create_or_get_named_scope(const char *name, IScope *parent=0, Uint8 privacy_level=0)=0
Creates or retrieves a new named scope at the given privacy level with the given parent scope ID.
virtual Sint32 unlock(Uint32 lock_id)=0
This operation is not supported.
virtual IScope * get_named_scope(const char *name) const =0
Looks up and returns a scope with a given name.
virtual IScope * get_global_scope() const =0
Returns the global scope which is the root of a tree of scopes.
A scope is the context which determines the visibility of database elements.
Definition: iscope.h:44
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:58
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
unsigned char Uint8
8-bit unsigned integer.
Definition: types.h:47
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5