Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

Core::WriteStream Class Reference

#include <WriteStream.h>

Inheritance diagram for Core::WriteStream:

Inheritance graph
[legend]
Collaboration diagram for Core::WriteStream:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 WriteStream (SequenceableCollection *collection)
virtual StringclassName (void) const
 Answer receiver class name.
virtual SequenceableCollectioncontents (void)
 Answer content of the receiver.
virtual void flush (void)
virtual Objectnext (void)
virtual void nextPut (Object *object)
virtual void nextPut (const char object)
virtual bool isReadable (void)
virtual bool isWritable (void)

Constructor & Destructor Documentation

WriteStream::WriteStream SequenceableCollection collection  ) 
 

Definition at line 28 of file WriteStream.cc.

00029   : InternalStream(collection)
00030 {
00031     /* Does nothing */
00032 }


Member Function Documentation

String * WriteStream::className void   )  const [virtual]
 

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 }

SequenceableCollection * WriteStream::contents void   )  [virtual]
 

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 }

void WriteStream::flush void   )  [virtual]
 

Reimplemented from Core::Stream.

Definition at line 47 of file WriteStream.cc.

Referenced by Core::ReadAppendStream::flush().

00048 {
00049     /* Does nothing */
00050 }

bool WriteStream::isReadable void   )  [virtual]
 

Reimplemented from Core::Stream.

Definition at line 67 of file WriteStream.cc.

00068 {
00069     return false;
00070 }

bool WriteStream::isWritable void   )  [virtual]
 

Reimplemented from Core::Stream.

Definition at line 72 of file WriteStream.cc.

00073 {
00074     return true;
00075 }

Object * WriteStream::next void   )  [virtual]
 

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 }

virtual void Core::WriteStream::nextPut const char  object  )  [inline, virtual]
 

Reimplemented from Core::Stream.

Definition at line 47 of file WriteStream.h.

References Core::Stream::nextPut().

00048     { InternalStream::nextPut(object); }

void WriteStream::nextPut Object object  )  [virtual]
 

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 }


The documentation for this class was generated from the following files:
Generated on Mon Nov 27 09:52:08 2006 for Smalltalk like C++ Class Library by  doxygen 1.4.2