NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
idatabase.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // Copyright 1986, 2014 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_IDATABASE_H
9 #define MI_NEURAYLIB_IDATABASE_H
10 
12 
13 namespace mi {
14 
15 namespace neuraylib {
16 
17 class IScope;
18 
29 class IDatabase : public
31  mi::base::Interface_declare<0x814ae637,0xde35,0x4870,0x8e,0x5b,0x7e,0x28,0x9d,0x30,0xfb,0x82>
32 {
33 public:
38  virtual IScope* get_global_scope() const = 0;
39 
60  virtual IScope* create_scope( IScope* parent, Uint8 privacy_level = 0, bool temp = false) = 0;
61 
66  virtual IScope* get_scope( const char* id) const = 0;
67 
78  virtual Sint32 remove_scope( const char* id) const = 0;
79 
97  virtual void lock( Uint32 lock_id) = 0;
98 
107  virtual Sint32 unlock( Uint32 lock_id) = 0;
108 
124  virtual IScope* create_or_get_named_scope(
125  const char* name, IScope* parent = 0, Uint8 privacy_level = 0) = 0;
126 
131  virtual IScope* get_named_scope( const char* name) const = 0;
132 
143  virtual void garbage_collection() = 0;
144 };
145  // end group mi_neuray_database_access
147 
148 } // namespace neuraylib
149 
150 } // namespace mi
151 
152 #endif // MI_NEURAYLIB_IDATABASE_H