︙ | | | ︙ | |
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
} buffer;
bool empty = true;
if (_mode != OF_TAR_ARCHIVE_MODE_READ)
@throw [OFInvalidArgumentException exception];
[(OFTarArchiveFileReadStream *)_lastReturnedStream of_skip];
[_lastReturnedStream close];
[_lastReturnedStream release];
_lastReturnedStream = nil;
if (_stream.atEndOfStream)
return nil;
[_stream readIntoBuffer: buffer.c
|
>
|
>
>
>
|
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
} buffer;
bool empty = true;
if (_mode != OF_TAR_ARCHIVE_MODE_READ)
@throw [OFInvalidArgumentException exception];
[(OFTarArchiveFileReadStream *)_lastReturnedStream of_skip];
@try {
[_lastReturnedStream close];
} @catch (OFNotOpenException *e) {
/* Might have already been closed by the user - that's fine. */
}
[_lastReturnedStream release];
_lastReturnedStream = nil;
if (_stream.atEndOfStream)
return nil;
[_stream readIntoBuffer: buffer.c
|
︙ | | | ︙ | |
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
if (_mode != OF_TAR_ARCHIVE_MODE_WRITE &&
_mode != OF_TAR_ARCHIVE_MODE_APPEND)
@throw [OFInvalidArgumentException exception];
pool = objc_autoreleasePoolPush();
[_lastReturnedStream close];
[_lastReturnedStream release];
_lastReturnedStream = nil;
[entry of_writeToStream: _stream
encoding: _encoding];
_lastReturnedStream = [[OFTarArchiveFileWriteStream alloc]
|
>
|
>
>
>
|
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
if (_mode != OF_TAR_ARCHIVE_MODE_WRITE &&
_mode != OF_TAR_ARCHIVE_MODE_APPEND)
@throw [OFInvalidArgumentException exception];
pool = objc_autoreleasePoolPush();
@try {
[_lastReturnedStream close];
} @catch (OFNotOpenException *e) {
/* Might have already been closed by the user - that's fine. */
}
[_lastReturnedStream release];
_lastReturnedStream = nil;
[entry of_writeToStream: _stream
encoding: _encoding];
_lastReturnedStream = [[OFTarArchiveFileWriteStream alloc]
|
︙ | | | ︙ | |
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
}
- (void)close
{
if (_stream == nil)
return;
[_lastReturnedStream close];
[_lastReturnedStream release];
_lastReturnedStream = nil;
if (_mode == OF_TAR_ARCHIVE_MODE_WRITE ||
_mode == OF_TAR_ARCHIVE_MODE_APPEND) {
char buffer[1024];
memset(buffer, '\0', 1024);
|
>
|
>
>
>
|
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
}
- (void)close
{
if (_stream == nil)
return;
@try {
[_lastReturnedStream close];
} @catch (OFNotOpenException *e) {
/* Might have already been closed by the user - that's fine. */
}
[_lastReturnedStream release];
_lastReturnedStream = nil;
if (_mode == OF_TAR_ARCHIVE_MODE_WRITE ||
_mode == OF_TAR_ARCHIVE_MODE_APPEND) {
char buffer[1024];
memset(buffer, '\0', 1024);
|
︙ | | | ︙ | |
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
|
}
return self;
}
- (void)dealloc
{
[self close];
[_entry release];
[super dealloc];
}
- (size_t)lowlevelReadIntoBuffer: (void *)buffer
|
>
|
|
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
|
}
return self;
}
- (void)dealloc
{
if (_stream != nil)
[self close];
[_entry release];
[super dealloc];
}
- (size_t)lowlevelReadIntoBuffer: (void *)buffer
|
︙ | | | ︙ | |
350
351
352
353
354
355
356
357
358
359
360
361
362
363
|
{
return ((id <OFReadyForReadingObserving>)_stream)
.fileDescriptorForReading;
}
- (void)close
{
[self of_skip];
[_stream release];
_stream = nil;
[super close];
}
|
>
>
>
|
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
|
{
return ((id <OFReadyForReadingObserving>)_stream)
.fileDescriptorForReading;
}
- (void)close
{
if (_stream == nil)
@throw [OFNotOpenException exceptionWithObject: self];
[self of_skip];
[_stream release];
_stream = nil;
[super close];
}
|
︙ | | | ︙ | |
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
|
}
return self;
}
- (void)dealloc
{
[self close];
[_entry release];
[super dealloc];
}
- (size_t)lowlevelWriteBuffer: (const void *)buffer
|
>
|
|
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
|
}
return self;
}
- (void)dealloc
{
if (_stream != nil)
[self close];
[_entry release];
[super dealloc];
}
- (size_t)lowlevelWriteBuffer: (const void *)buffer
|
︙ | | | ︙ | |
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
|
{
return ((id <OFReadyForWritingObserving>)_stream)
.fileDescriptorForWriting;
}
- (void)close
{
if (_stream == nil)
return;
uint64_t remainder = 512 - _entry.size % 512;
if (_toWrite > 0)
@throw [OFTruncatedDataException exception];
if (remainder != 512) {
bool wasWriteBuffered = _stream.writeBuffered;
[_stream setWriteBuffered: true];
while (remainder--)
|
>
>
<
|
<
>
>
|
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
|
{
return ((id <OFReadyForWritingObserving>)_stream)
.fileDescriptorForWriting;
}
- (void)close
{
uint64_t remainder;
if (_stream == nil)
@throw [OFNotOpenException exceptionWithObject: self];
if (_toWrite > 0)
@throw [OFTruncatedDataException exception];
remainder = 512 - _entry.size % 512;
if (remainder != 512) {
bool wasWriteBuffered = _stream.writeBuffered;
[_stream setWriteBuffered: true];
while (remainder--)
|
︙ | | | ︙ | |