NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
iiray_bridge_client.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // Copyright 1986, 2016 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_IIRAY_BRIDGE_CLIENT_H
9 #define MI_NEURAYLIB_IIRAY_BRIDGE_CLIENT_H
10 
11 #include <mi/base/enums.h>
14 
15 namespace mi {
16 
17 namespace base { class ILogger; }
18 
19 namespace bridge {
20 
25 class IIray_bridge_snapshot_callback : public
29  mi::base::Interface_declare<0xe36efcd1,0xeb3d,0x4c9c,0xbc,0x8d,0xc0,0x28,0xf1,0xe9,0xc7,0xdf,
30  mi::neuraylib::IProgress_callback>
31 {
32 public:
47  virtual void ready( Sint32 error_code, const char* file_name) = 0;
48 };
49 
64  mi::base::Interface_declare<0xe624c597,0x2223,0x441b,0x81,0xf7,0x43,0x48,0xc8,0xfd,0x43,0x1a>
65 {
66 public:
94  virtual Sint32 create_snapshot(
95  neuraylib::ITransaction* transaction,
96  const char* file_name,
98  bool incremental = false) = 0;
99 
112  virtual Sint32 cancel_snapshot() = 0;
113 
129  virtual Sint32 set_option( const char* name, const IData* value) = 0;
130 
138  virtual const IData* get_option( const char* name) const = 0;
139 
154  template<class T>
155  const T* get_option( const char* name) const
156  {
157  const IData* ptr_idata = get_option( name);
158  if ( !ptr_idata)
159  return 0;
160  const T* ptr_T = static_cast<const T*>( ptr_idata->get_interface( typename T::IID()));
161  ptr_idata->release();
162  return ptr_T;
163  }
164 
168  virtual Size get_options_length() const = 0;
169 
177  virtual const char* get_option_name( Size index) const = 0;
178 
186  virtual const char* get_option_type( Size index) const = 0;
187 };
188 
192 class IIray_bridge_client : public
193  mi::base::Interface_declare<0x2e3322ff,0xc7a1,0x4664,0x99,0x6d,0xef,0xd1,0xf2,0x24,0x83,0xa4>
194 {
195 public:
215  virtual Sint32 set_application_url( const char* application_url) = 0;
216 
218  virtual const char* get_application_url() const = 0;
219 
223  virtual Sint32 set_security_token( const char* security_token) = 0;
224 
226  virtual const char* get_security_token() const = 0;
227 
236  neuraylib::ITransaction* transaction, const char* scene_name) = 0;
237 
247 
254 
265  virtual void set_receiving_logger( base::ILogger* logger) = 0;
266 
274  virtual base::ILogger* get_receiving_logger() const = 0;
275 
277  virtual const char* get_bridge_protocol_version() const = 0;
278 };
279  // end group mi_neuray_bridge_client
281 
282 } // namespace bridge
283 
284 } // namespace mi
285 
286 #endif // MI_NEURAYLIB_IIRAY_BRIDGE_CLIENT_H