00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <stdarg.h>
00018
00019 #import "OFObject.h"
00020 #import "OFString.h"
00021
00022 @class OFDataArray;
00023
00033 @interface OFStream: OFObject
00034 {
00035 char *cache;
00036 char *wBuffer;
00037 size_t cacheLen, wBufferLen;
00038 BOOL buffersWrites;
00039 BOOL isBlocking;
00040 }
00041
00042 #ifdef OF_HAVE_PROPERTIES
00043 @property (assign, setter=setBlocking:) BOOL isBlocking;
00044 #endif
00045
00051 - (BOOL)isAtEndOfStream;
00052
00061 - (size_t)readNBytes: (size_t)size
00062 intoBuffer: (char*)buf;
00063
00077 - (void)readExactlyNBytes: (size_t)size
00078 intoBuffer: (char*)buf;
00079
00088 - (uint8_t)readInt8;
00089
00098 - (uint16_t)readBigEndianInt16;
00099
00108 - (uint32_t)readBigEndianInt32;
00109
00118 - (uint64_t)readBigEndianInt64;
00119
00128 - (uint16_t)readLittleEndianInt16;
00129
00138 - (uint32_t)readLittleEndianInt32;
00139
00148 - (uint64_t)readLittleEndianInt64;
00149
00161 - (OFDataArray*)readDataArrayWithItemSize: (size_t)itemsize
00162 andNItems: (size_t)nitems;
00163
00168 - (OFDataArray*)readDataArrayTillEndOfStream;
00169
00176 - (OFString*)readLine;
00177
00186 - (OFString*)readLineWithEncoding: (of_string_encoding_t)encoding;
00187
00195 - (OFString*)readTillDelimiter: (OFString*)delimiter;
00196
00205 - (OFString*)readTillDelimiter: (OFString*)delimiter
00206 withEncoding: (of_string_encoding_t)encoding;
00207
00211 - (BOOL)buffersWrites;
00212
00218 - (void)setBuffersWrites: (BOOL)enable;
00219
00223 - (void)flushWriteBuffer;
00224
00232 - (size_t)writeNBytes: (size_t)size
00233 fromBuffer: (const char*)buf;
00234
00240 - (void)writeInt8: (uint8_t)int8;
00241
00247 - (void)writeBigEndianInt16: (uint16_t)int16;
00248
00254 - (void)writeBigEndianInt32: (uint32_t)int32;
00255
00261 - (void)writeBigEndianInt64: (uint64_t)int64;
00262
00268 - (void)writeLittleEndianInt16: (uint16_t)int16;
00269
00275 - (void)writeLittleEndianInt32: (uint32_t)int32;
00276
00282 - (void)writeLittleEndianInt64: (uint64_t)int64;
00283
00290 - (size_t)writeDataArray: (OFDataArray*)dataarray;
00291
00298 - (size_t)writeString: (OFString*)str;
00299
00306 - (size_t)writeLine: (OFString*)str;
00307
00314 - (size_t)writeFormat: (OFString*)fmt, ...;
00315
00323 - (size_t)writeFormat: (OFString*)fmt
00324 withArguments: (va_list)args;
00325
00329 - (size_t)pendingBytes;
00330
00334 - (BOOL)isBlocking;
00335
00344 - (void)setBlocking: (BOOL)enable;
00345
00349 - (int)fileDescriptor;
00350
00354 - (void)close;
00355 @end