Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
idatabase.h
Go to the documentation of this file.
1 /***************************************************************************************************
2  * Copyright 2020 NVIDIA Corporation. All rights reserved.
3  **************************************************************************************************/
6 
7 #ifndef MI_NEURAYLIB_IDATABASE_H
8 #define MI_NEURAYLIB_IDATABASE_H
9 
11 
12 namespace mi {
13 
14 namespace neuraylib {
15 
16 class IScope;
17 
28 class IDatabase : public
35  mi::base::Interface_declare<0x814ae637,0xde35,0x4870,0x8e,0x5b,0x7e,0x28,0x9d,0x30,0xfb,0x82>
36 {
37 public:
42  virtual IScope* get_global_scope() const = 0;
43 
68  virtual IScope* create_scope( IScope* parent, Uint8 privacy_level = 0, bool temp = false) = 0;
69 
74  virtual IScope* get_scope( const char* id) const = 0;
75 
90  virtual Sint32 remove_scope( const char* id) const = 0;
91 
113  virtual void lock( Uint32 lock_id) = 0;
114 
127  virtual Sint32 unlock( Uint32 lock_id) = 0;
128 
148  virtual IScope* create_or_get_named_scope(
149  const char* name, IScope* parent = 0, Uint8 privacy_level = 0) = 0;
150 
159  virtual IScope* get_named_scope( const char* name) const = 0;
160 
171  virtual void garbage_collection() = 0;
172 };
173  // end group mi_neuray_database_access
175 
176 } // namespace neuraylib
177 
178 } // namespace mi
179 
180 #endif // MI_NEURAYLIB_IDATABASE_H