00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _IODevice_incl_
00020 #define _IODevice_incl_
00021
00022 #include <rel/SmartPtr.h>
00023 #include <stdint.h>
00024
00025 namespace rel
00026 {
00027
00028 class OpaqueValue;
00029
00039 class IODevice
00040 {
00041 public:
00042 typedef int64_t size_type;
00043
00044 IODevice();
00045 virtual ~IODevice();
00046
00050 virtual int getReadDescriptor() const;
00051
00055 virtual bool isDirectAccess() const;
00056
00061 virtual size_type at() const;
00062
00064 virtual bool at(size_type offset);
00065
00066
00067 virtual bool atEnd() const;
00068
00069
00073 virtual size_type writeBytes(const char *data, size_type len);
00074
00078 virtual void flush();
00079
00084 virtual size_type readBytes(char *data, size_type maxLen);
00085
00086
00087
00090 virtual SmartPtr<char*> print();
00091
00092 private:
00093 };
00094
00095
00096 }
00097
00098 #endif
00099
00100