34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
typedef BOOL (^of_stream_async_read_line_block_t)(OFStream*, OFString*);
#endif
/**
* \brief A base class for different types of streams.
*
* \warning Even though the OFCopying protocol is implemented, it does
* <i>not</i> return an independent copy of the stream but instead
* retains it. This is so that the stream can be used as a key for a
* dictionary, so context can be associated with a stream. Using a
* stream in more than one thread at the same time is not thread-safe,
* even if copy was called to create one "instance" for every thread!
*
* \warning If you want to subclass this, override _readIntoBuffer:length:,
* _writeBuffer:length: and _isAtEndOfStream, but nothing else, as
* those are are the methods that do the actual work. OFStream uses
|
|
|
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
typedef BOOL (^of_stream_async_read_line_block_t)(OFStream*, OFString*);
#endif
/**
* \brief A base class for different types of streams.
*
* \warning Even though the OFCopying protocol is implemented, it does
* <i>not</i> return an independent copy of the stream, but instead
* retains it. This is so that the stream can be used as a key for a
* dictionary, so context can be associated with a stream. Using a
* stream in more than one thread at the same time is not thread-safe,
* even if copy was called to create one "instance" for every thread!
*
* \warning If you want to subclass this, override _readIntoBuffer:length:,
* _writeBuffer:length: and _isAtEndOfStream, but nothing else, as
* those are are the methods that do the actual work. OFStream uses
|