@@ -14,10 +14,11 @@ #include #include #import "OFStream.h" #import "OFString.h" +#import "OFDataArray.h" #import "OFExceptions.h" #import "macros.h" @implementation OFStream - init @@ -81,10 +82,34 @@ intoBuffer: (char*)buf { @throw [OFNotImplementedException newWithClass: isa selector: _cmd]; } + +- (OFDataArray*)readDataArrayTillEndOfStream +{ + OFDataArray *a; + char *buf; + + a = [OFDataArray dataArrayWithItemSize: 1]; + buf = [self allocMemoryWithSize: of_pagesize]; + + @try { + while (![self atEndOfStream]) { + size_t size; + + size = [self readNBytes: of_pagesize + intoBuffer: buf]; + [a addNItems: size + fromCArray: buf]; + } + } @finally { + [self freeMemory: buf]; + } + + return a; +} - (OFString*)readLine { return [self readLineWithEncoding: OF_STRING_ENCODING_UTF_8]; }