NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ireader_writer_base.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_IREADER_WRITER_BASE_H
9 #define MI_NEURAYLIB_IREADER_WRITER_BASE_H
10 
12 #include <mi/neuraylib/version.h>
13 
14 namespace mi {
15 
16 namespace neuraylib {
17 
18 class IStream_position;
19 
24 class IReader_writer_base :
73  public base::Interface_declare<0x919370c2,0x2bb4,0x40db,0x81,0xff,0xd3,0x1c,0x52,0x10,0x54,0x64>
74 {
75 public:
78  virtual Sint32 get_error_number() const = 0;
79 
82  virtual const char* get_error_message() const = 0;
83 
86  virtual bool eof() const = 0;
87 
89  virtual Sint32 get_file_descriptor() const = 0;
90 
92 
93 
95  virtual bool supports_recorded_access() const = 0;
96 
98  virtual const IStream_position* tell_position() const = 0;
99 
104  virtual bool seek_position( const IStream_position* stream_position) = 0;
105 
109  virtual bool rewind() = 0;
110 
112 
114 
116  virtual bool supports_absolute_access() const = 0;
117 
120  virtual Sint64 tell_absolute() const = 0;
121 
126  virtual bool seek_absolute(Sint64 pos) = 0;
127 
130  virtual Sint64 get_file_size() const = 0;
131 
134  virtual bool seek_end() = 0;
135 
137 };
138  // end group mi_neuray_impexp
140 
141 } // namespace neuraylib
142 
143 #ifdef MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
144 using neuraylib::IReader_writer_base;
145 using neuraylib::IStream_position;
146 #endif // MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
147 
148 } // namespace mi
149 
150 #endif // MI_NEURAYLIB_IREADER_WRITER_BASE_H