NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ideserializer.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_IDESERIALIZER_H
9 #define MI_NEURAYLIB_IDESERIALIZER_H
10 
13 
14 namespace mi {
15 
20 class IDeserializer :
29  public base::Interface_declare<0x7052258a,0x579b,0x4861,0x9c,0x12,0x5f,0x02,0x9c,0x86,0xfb,0xce>
30 {
31 public:
35  virtual ISerializable* deserialize() = 0;
36 
47  template <class T>
49  {
50  ISerializable* ptr_iserializable = deserialize();
51  if ( !ptr_iserializable)
52  return 0;
53  T* ptr_T = static_cast<T*>( ptr_iserializable->get_interface( typename T::IID()));
54  ptr_iserializable->release();
55  return ptr_T;
56  }
57 
62  virtual bool read( bool* value, Size count = 1) = 0;
63 
68  virtual bool read( Uint8* value, Size count = 1) = 0;
69 
74  virtual bool read( Uint16* value, Size count = 1) = 0;
75 
80  virtual bool read( Uint32* value, Size count = 1) = 0;
81 
86  virtual bool read( Uint64* value, Size count = 1) = 0;
87 
92  virtual bool read( Sint8* value, Size count = 1) = 0;
93 
98  virtual bool read( Sint16* value, Size count = 1) = 0;
99 
104  virtual bool read( Sint32* value, Size count = 1) = 0;
105 
110  virtual bool read( Sint64* value, Size count = 1) = 0;
111 
116  virtual bool read( Float32* value, Size count = 1) = 0;
117 
122  virtual bool read( Float64* value, Size count = 1) = 0;
123 };
124  // end group mi_neuray_plugins
126 
127 } // namespace mi
128 
129 #endif // MI_NEURAYLIB_IDESERIALIZER_H