#include <WriteStream.h>
Inheritance diagram for Core::WriteStream:
Public Member Functions | |
WriteStream (SequenceableCollection *collection) | |
virtual String * | className (void) const |
Answer receiver class name. | |
virtual SequenceableCollection * | contents (void) |
Answer content of the receiver. | |
virtual void | flush (void) |
virtual Object * | next (void) |
virtual void | nextPut (Object *object) |
virtual void | nextPut (const char object) |
virtual bool | isReadable (void) |
virtual bool | isWritable (void) |
|
Definition at line 28 of file WriteStream.cc. 00029 : InternalStream(collection) 00030 { 00031 /* Does nothing */ 00032 }
|
|
Answer receiver class name. Because there isn't any standard way to obtain class name this method comes to place. Every class should rewrite this method but many didn't (yet). Reimplemented from Core::InternalStream. Definition at line 35 of file WriteStream.cc. 00036 { 00037 return new String("WriteStream"); 00038 }
|
|
Answer content of the receiver. In many cases it doesn't matter if it is ReadStream or WriteStream because they don't do any conversion. I does matter on streams like EncodedStream where some conversion takes place. In that case contents() always answer collection of encoded data (for ex. as it would be written to the disk). To get all data decoded you can use upToEnd() method. Reimplemented from Core::InternalStream. Definition at line 41 of file WriteStream.cc. References Core::PositionableStream::_position, Core::PositionableStream::collection, Core::SequenceableCollection::copy(), and Core::PositionableStream::read_limit. Referenced by Core::Object::printString(). 00042 { 00043 read_limit = (read_limit < _position) ? _position : read_limit; 00044 return dynamic_cast<SequenceableCollection *>(collection->copy(0, _position)); 00045 }
|
|
Reimplemented from Core::Stream. Definition at line 47 of file WriteStream.cc. Referenced by Core::ReadAppendStream::flush(). 00048 {
00049 /* Does nothing */
00050 }
|
|
Reimplemented from Core::Stream. Definition at line 67 of file WriteStream.cc. 00068 { 00069 return false; 00070 }
|
|
Reimplemented from Core::Stream. Definition at line 72 of file WriteStream.cc. 00073 { 00074 return true; 00075 }
|
|
Reimplemented from Core::PositionableStream. Definition at line 52 of file WriteStream.cc. References nil, and Core::Object::shouldNotImplement(). 00053 { 00054 shouldNotImplement(new String(__PRETTY_FUNCTION__)); 00055 return nil; 00056 }
|
|
Reimplemented from Core::Stream. Definition at line 47 of file WriteStream.h. References Core::Stream::nextPut(). 00048 { InternalStream::nextPut(object); }
|
|
Reimplemented from Core::Stream. Definition at line 58 of file WriteStream.cc. References Core::PositionableStream::_position, Core::PositionableStream::collection, Core::InternalStream::pastEndPut(), Core::SequenceableCollection::put(), and Core::PositionableStream::write_limit. Referenced by Core::ReadAppendStream::nextPut(). 00059 { 00060 if (_position == write_limit) 00061 pastEndPut(object); 00062 else 00063 collection->put(_position++, object); 00064 }
|