NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
iserializer.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_ISERIALIZER_H
9 #define MI_NEURAYLIB_ISERIALIZER_H
10 
12 
13 namespace mi {
14 
15 class ISerializer;
16 class IDeserializer;
17 
29 class ISerializable :
35  public base::Interface_declare<0x7a70f2fb,0x1b27,0x416f,0xaa,0x21,0x16,0xc7,0xb4,0xd4,0x1f,0xfc>
36 {
37 public:
45  virtual base::Uuid get_class_id() const = 0;
46 
51  virtual void serialize(
52  ISerializer* serializer) const = 0;
53 
58  virtual void deserialize(
59  IDeserializer* deserializer) = 0;
60 };
61 
70 class ISerializer :
71  public base::Interface_declare<0xdcf5a659,0x2b06,0x436b,0x82,0x55,0x36,0x9d,0xbd,0xe7,0x42,0xb1>
72 {
73 public:
77  virtual bool serialize( const ISerializable* serializable) = 0;
78 
83  virtual bool write( const bool* value, Size count = 1) = 0;
84 
90  virtual bool write( const Uint8* value, Size count = 1) = 0;
91 
96  virtual bool write( const Uint16* value, Size count = 1) = 0;
97 
102  virtual bool write( const Uint32* value, Size count = 1) = 0;
103 
108  virtual bool write( const Uint64* value, Size count = 1) = 0;
109 
114  virtual bool write( const Sint8* value, Size count = 1) = 0;
115 
120  virtual bool write( const Sint16* value, Size count = 1) = 0;
121 
126  virtual bool write( const Sint32* value, Size count = 1) = 0;
127 
132  virtual bool write( const Sint64* value, Size count = 1) = 0;
133 
138  virtual bool write( const Float32* value, Size count = 1) = 0;
139 
144  virtual bool write( const Float64* value, Size count = 1) = 0;
145 
151  virtual void reserve( Size capacity) = 0;
152 };
153  // end group mi_neuray_plugins
155 
156 } // namespace mi
157 
158 #endif // MI_NEURAYLIB_ISERIALIZER_H