MDL SDK API nvidia_logo_transpbg.gif Up
iscope.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2022 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_ISCOPE_H
8#define MI_NEURAYLIB_ISCOPE_H
9
11
13
14namespace mi {
15
16namespace neuraylib {
17
47class IScope : public
48 mi::base::Interface_declare<0x578df0c5,0xab97,0x460a,0xb5,0x0a,0x2c,0xf8,0x54,0x22,0x31,0xb9>
49{
50public:
62
75 template<class T>
77 {
78 ITransaction* ptr_itransaction = create_transaction();
79 if ( !ptr_itransaction)
80 return 0;
81 T* ptr_T = static_cast<T*>( ptr_itransaction->get_interface( typename T::IID()));
82 ptr_itransaction->release();
83 return ptr_T;
84 }
85
91 virtual const char* get_id() const = 0;
92
100 virtual Uint8 get_privacy_level() const = 0;
101
105 virtual const char* get_name() const = 0;
106
110 virtual IScope* get_parent() const = 0;
111};
112 // end group mi_neuray_database_access
114
115} // namespace neuraylib
116
117} // namespace mi
118
119#endif // MI_NEURAYLIB_ISCOPE_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
A scope is the context which determines the visibility of database elements.
Definition: iscope.h:49
virtual const char * get_id() const =0
Returns the ID of the scope.
virtual ITransaction * create_transaction()=0
Creates a new transaction associated with this scope.
virtual const char * get_name() const =0
Returns the name of the scope.
virtual IScope * get_parent() const =0
Returns the parent scope.
T * create_transaction()
Creates a new transaction associated with this scope.
Definition: iscope.h:76
virtual Uint8 get_privacy_level() const =0
Returns the privacy level of the scope.
A transaction provides a consistent view on the database.
Definition: itransaction.h:84
virtual const IInterface * get_interface(const Uuid &interface_id) const =0
Acquires a const interface from another.
virtual Uint32 release() const =0
Decrements the reference count.
unsigned char Uint8
8-bit unsigned integer.
Definition: types.h:45
Mixin class template for deriving new interface declarations.
Database transactions.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5