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
00021 @class OFString;
00022 @class OFDataArray;
00023
00033 @interface OFStream: OFObject
00034 {
00035 @public
00036 char *cache;
00037 @protected
00038 char *wBuffer;
00039 size_t cacheLen, wBufferLen;
00040 BOOL buffersWrites;
00041 BOOL isBlocking;
00042 }
00043
00044 #ifdef OF_HAVE_PROPERTIES
00045 @property (assign, setter=setBlocking:) BOOL isBlocking;
00046 #endif
00047
00053 - (BOOL)isAtEndOfStream;
00054
00063 - (size_t)readNBytes: (size_t)size
00064 intoBuffer: (char*)buf;
00065
00079 - (void)readExactlyNBytes: (size_t)size
00080 intoBuffer: (char*)buf;
00081
00090 - (uint8_t)readInt8;
00091
00100 - (uint16_t)readBigEndianInt16;
00101
00110 - (uint32_t)readBigEndianInt32;
00111
00120 - (uint64_t)readBigEndianInt64;
00121
00130 - (uint16_t)readLittleEndianInt16;
00131
00140 - (uint32_t)readLittleEndianInt32;
00141
00150 - (uint64_t)readLittleEndianInt64;
00151
00163 - (OFDataArray*)readDataArrayWithItemSize: (size_t)itemsize
00164 andNItems: (size_t)nitems;
00165
00170 - (OFDataArray*)readDataArrayTillEndOfStream;
00171
00178 - (OFString*)readLine;
00179
00188 - (OFString*)readLineWithEncoding: (enum of_string_encoding)encoding;
00189
00197 - (OFString*)readTillDelimiter: (OFString*)delimiter;
00198
00207 - (OFString*)readTillDelimiter: (OFString*)delimiter
00208 withEncoding: (enum of_string_encoding)encoding;
00209
00213 - (BOOL)buffersWrites;
00214
00220 - (void)setBuffersWrites: (BOOL)enable;
00221
00225 - (void)flushWriteBuffer;
00226
00234 - (size_t)writeNBytes: (size_t)size
00235 fromBuffer: (const char*)buf;
00236
00242 - (void)writeInt8: (uint8_t)int8;
00243
00249 - (void)writeBigEndianInt16: (uint16_t)int16;
00250
00256 - (void)writeBigEndianInt32: (uint32_t)int32;
00257
00263 - (void)writeBigEndianInt64: (uint64_t)int64;
00264
00270 - (void)writeLittleEndianInt16: (uint16_t)int16;
00271
00277 - (void)writeLittleEndianInt32: (uint32_t)int32;
00278
00284 - (void)writeLittleEndianInt64: (uint64_t)int64;
00285
00292 - (size_t)writeDataArray: (OFDataArray*)dataarray;
00293
00300 - (size_t)writeString: (OFString*)str;
00301
00308 - (size_t)writeLine: (OFString*)str;
00309
00316 - (size_t)writeFormat: (OFString*)fmt, ...;
00317
00325 - (size_t)writeFormat: (OFString*)fmt
00326 withArguments: (va_list)args;
00327
00331 - (BOOL)isBlocking;
00332
00341 - (void)setBlocking: (BOOL)enable;
00342
00346 - (int)fileDescriptor;
00347
00351 - (void)close;
00352 @end