︙ | | | ︙ | |
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
cache = NULL;
wBuffer = NULL;
return self;
}
- (BOOL)_atEndOfStream
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (size_t)_readNBytes: (size_t)size
intoBuffer: (char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (size_t)_writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (BOOL)atEndOfStream
{
if (cache != NULL)
return NO;
return [self _atEndOfStream];
}
- (size_t)readNBytes: (size_t)size
intoBuffer: (char*)buf
{
if (cache == NULL)
return [self _readNBytes: size
|
|
|
|
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
cache = NULL;
wBuffer = NULL;
return self;
}
- (BOOL)_isAtEndOfStream
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (size_t)_readNBytes: (size_t)size
intoBuffer: (char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (size_t)_writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (BOOL)isAtEndOfStream
{
if (cache != NULL)
return NO;
return [self _isAtEndOfStream];
}
- (size_t)readNBytes: (size_t)size
intoBuffer: (char*)buf
{
if (cache == NULL)
return [self _readNBytes: size
|
︙ | | | ︙ | |
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
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];
}
|
|
|
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
OFDataArray *a;
char *buf;
a = [OFDataArray dataArrayWithItemSize: 1];
buf = [self allocMemoryWithSize: of_pagesize];
@try {
while (![self isAtEndOfStream]) {
size_t size;
size = [self readNBytes: of_pagesize
intoBuffer: buf];
[a addNItems: size
fromCArray: buf];
}
|
︙ | | | ︙ | |
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
}
/* Read until we get a newline or \0 */
tmp = [self allocMemoryWithSize: of_pagesize];
@try {
for (;;) {
if ([self _atEndOfStream]) {
if (cache == NULL)
return nil;
ret_len = cacheLen;
if (ret_len > 0 && cache[ret_len - 1] == '\r')
ret_len--;
|
|
|
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
}
/* Read until we get a newline or \0 */
tmp = [self allocMemoryWithSize: of_pagesize];
@try {
for (;;) {
if ([self _isAtEndOfStream]) {
if (cache == NULL)
return nil;
ret_len = cacheLen;
if (ret_len > 0 && cache[ret_len - 1] == '\r')
ret_len--;
|
︙ | | | ︙ | |
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
|
}
/* Read until we get the delimiter or \0 */
tmp = [self allocMemoryWithSize: of_pagesize];
@try {
for (;;) {
if ([self _atEndOfStream]) {
if (cache == NULL)
return nil;
ret = [OFString stringWithCString: cache
encoding: encoding
length: cacheLen];
|
|
|
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
|
}
/* Read until we get the delimiter or \0 */
tmp = [self allocMemoryWithSize: of_pagesize];
@try {
for (;;) {
if ([self _isAtEndOfStream]) {
if (cache == NULL)
return nil;
ret = [OFString stringWithCString: cache
encoding: encoding
length: cacheLen];
|
︙ | | | ︙ | |
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
|
[self freeMemory: tmp];
}
/* Get rid of a warning, never reached anyway */
assert(0);
}
- (BOOL)bufferWrites
{
return bufferWrites;
}
- (void)setBufferWrites: (BOOL)enable
{
bufferWrites = enable;
}
- (void)flushWriteBuffer
{
if (wBuffer == NULL)
return;
[self _writeNBytes: wBufferLen
fromBuffer: wBuffer];
[self freeMemory: wBuffer];
wBuffer = NULL;
wBufferLen = 0;
}
- (size_t)writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
if (!bufferWrites)
return [self _writeNBytes: size
fromBuffer: buf];
else {
wBuffer = [self resizeMemory: wBuffer
toSize: wBufferLen + size];
memcpy(wBuffer + wBufferLen, buf, size);
wBufferLen += size;
|
|
|
|
|
|
|
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
|
[self freeMemory: tmp];
}
/* Get rid of a warning, never reached anyway */
assert(0);
}
- (BOOL)buffersWrites
{
return buffersWrites;
}
- (void)setBuffersWrites: (BOOL)enable
{
buffersWrites = enable;
}
- (void)flushWriteBuffer
{
if (wBuffer == NULL)
return;
[self _writeNBytes: wBufferLen
fromBuffer: wBuffer];
[self freeMemory: wBuffer];
wBuffer = NULL;
wBufferLen = 0;
}
- (size_t)writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
if (!buffersWrites)
return [self _writeNBytes: size
fromBuffer: buf];
else {
wBuffer = [self resizeMemory: wBuffer
toSize: wBufferLen + size];
memcpy(wBuffer + wBufferLen, buf, size);
wBufferLen += size;
|
︙ | | | ︙ | |