00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef NIODEVICE_H
00023 #define NIODEVICE_H
00024
00029 #include "ndefs.h"
00030 #include "nobject.h"
00031 #include "ndatastream.h"
00032
00033
00037 class DllDeclSpec NIODevice: public NObject {
00038 public:
00043 enum Mode {
00044 NotOpen = 1,
00045 ReadOnly = 2,
00046 ReadWrite = 4,
00047 Append = 8,
00048 Truncate = 16,
00049 };
00050
00054 NIODevice(void);
00055
00059 virtual ~NIODevice();
00060
00065 virtual void open(Mode mode) = 0;
00066
00070 virtual void closeDevice(void) = 0;
00071
00076 void setReadBufferSize(nuint32 size);
00077
00082 nuint32 getReadBufferSize(void) const;
00083
00084
00090 virtual nint32 read(NDataStream *buffer) = 0;
00091
00098 virtual nint32 read(NDataStream *buffer, nuint32 bytes) = 0;
00099
00105 virtual nint32 readLine(NDataStream *buffer) = 0;
00106
00114 virtual nint32 write(const NDataStream &data, nuint32 bytes = 0) = 0;
00115
00116 protected:
00117 nuint32 m_readBufferSize;
00118 };
00119
00120 #endif // NIODEVICE_H