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
291class IDatabase : public
292 mi::base::Interface_declare<0x814ae637,0xde35,0x4870,0x8e,0x5b,0x7e,0x28,0x9d,0x30,0xfb,0x82>
293{
294public:
299 virtual IScope* get_global_scope() const = 0;
300
325 virtual IScope* create_scope( IScope* parent, Uint8 privacy_level = 0, bool temp = false) = 0;
326
347 const char* name, IScope* parent = 0, Uint8 privacy_level = 0) = 0;
348
353 virtual IScope* get_scope( const char* id) const = 0;
354
363 virtual IScope* get_named_scope( const char* name) const = 0;
364
381 virtual Sint32 remove_scope( const char* id) const = 0;
382
385
390
395
400
401 // Undocumented, for alignment only.
402 PRIORITY_FORCE_32_BIT = 0xffffffffU
403 };
404
421
443 virtual void lock( Uint32 lock_id) = 0;
444
457 virtual Sint32 unlock( Uint32 lock_id) = 0;
458};
459
461 // end group mi_neuray_database_access
463
464} // namespace neuraylib
465
466} // namespace mi
467
468#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:293
Garbage_collection_priority
Priorities for synchronous garbage collection runs.
Definition: idatabase.h:384
@ PRIORITY_MEDIUM
Medium priority for synchronous garbage collection runs.
Definition: idatabase.h:394
@ PRIORITY_HIGH
High priority for synchronous garbage collection runs.
Definition: idatabase.h:399
@ PRIORITY_LOW
Low priority for synchronous garbage collection runs.
Definition: idatabase.h:389
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
This operation is not supported.
virtual Sint32 remove_scope(const char *id) const =0
This operation is not supported.
virtual IScope * create_or_get_named_scope(const char *name, IScope *parent=0, Uint8 privacy_level=0)=0
This operation is not supported.
virtual Sint32 unlock(Uint32 lock_id)=0
This operation is not supported.
virtual IScope * get_named_scope(const char *name) const =0
This operation is not supported.
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:48
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:65
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