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

OS::UnixPipe Class Reference

#include <UnixPipe.h>

Inheritance diagram for OS::UnixPipe:

Inheritance graph
[legend]
Collaboration diagram for OS::UnixPipe:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual StringclassName (void) const
 Answer receiver class name.
virtual void close (void)
virtual void closeInput (void)
virtual void closeOutput (void)
virtual Core::FileAccessorinputAccessor (void)
virtual Core::FileAccessoroutputAccessor (void)
virtual int readInto (ByteArray *buffer)
virtual int readInto (ByteArray *buffer, long startIndex, long count)
virtual int writeFrom (ByteArray *buffer)
virtual int writeFrom (ByteArray *buffer, long startIndex, long count)
virtual void seekTo (long position)
virtual ExternalReadStreamreadStream (void)
virtual ExternalWriteStreamwriteStream (void)

Static Public Member Functions

static UnixPipeopenPair (void)

Protected Member Functions

 UnixPipe (Core::FileAccessor *in, Core::FileAccessor *out)

Protected Attributes

Core::FileAccessorinput
Core::FileAccessoroutput

Constructor & Destructor Documentation

OS::UnixPipe::UnixPipe Core::FileAccessor in,
Core::FileAccessor out
[protected]
 

Definition at line 39 of file UnixPipe.cc.

References input, and output.

Referenced by openPair().

00040 {
00041     input = in;
00042     output = out;
00043 }


Member Function Documentation

String * OS::UnixPipe::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::IOAccessor.

Definition at line 46 of file UnixPipe.cc.

00047 {
00048     return new String("UnixPipe");
00049 }

void OS::UnixPipe::close void   )  [virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 65 of file UnixPipe.cc.

References closeInput(), and closeOutput().

00066 {
00067     closeInput();
00068     closeOutput();
00069 }

void OS::UnixPipe::closeInput void   )  [virtual]
 

Definition at line 71 of file UnixPipe.cc.

References Core::FileAccessor::close(), and input.

Referenced by close().

00072 {
00073     input->close();
00074 }

void OS::UnixPipe::closeOutput void   )  [virtual]
 

Definition at line 76 of file UnixPipe.cc.

References Core::FileAccessor::close(), and output.

Referenced by close().

00077 {
00078     output->close();
00079 }

Core::FileAccessor * OS::UnixPipe::inputAccessor void   )  [virtual]
 

Definition at line 82 of file UnixPipe.cc.

References input.

00083 {
00084     return input;
00085 }

UnixPipe * OS::UnixPipe::openPair void   )  [static]
 

Definition at line 52 of file UnixPipe.cc.

References UnixPipe().

00053 {
00054     int fds[2];
00055 
00056     if (pipe(fds) < 0) {
00057         perror(__PRETTY_FUNCTION__);
00058         (new Error(new String("Cannot create pipe"),
00059                    new String(__PRETTY_FUNCTION__)))->raise();
00060     }
00061     return new UnixPipe(new FileAccessor(fds[1]), new FileAccessor(fds[0]));
00062 }

Core::FileAccessor * OS::UnixPipe::outputAccessor void   )  [virtual]
 

Definition at line 87 of file UnixPipe.cc.

References output.

00088 {
00089     return output;
00090 }

int OS::UnixPipe::readInto ByteArray buffer,
long  startIndex,
long  count
[virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 93 of file UnixPipe.cc.

References output, and Core::FileAccessor::readInto().

00094 {
00095     output->readInto(buffer, startIndex, count);
00096 }

virtual int OS::UnixPipe::readInto ByteArray buffer  )  [inline, virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 62 of file UnixPipe.h.

00063       { return IOAccessor::readInto(buffer); }

ExternalReadStream * OS::UnixPipe::readStream void   )  [virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 110 of file UnixPipe.cc.

References output, and Core::IOAccessor::readStream().

00111 {
00112     return output->readStream();
00113 }

void OS::UnixPipe::seekTo long  position  )  [virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 104 of file UnixPipe.cc.

References Core::Object::shouldNotImplement().

00105 {
00106     shouldNotImplement(__PRETTY_FUNCTION__);
00107 }

int OS::UnixPipe::writeFrom ByteArray buffer,
long  startIndex,
long  count
[virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 98 of file UnixPipe.cc.

References input, and Core::FileAccessor::writeFrom().

00099 {
00100     input->writeFrom(buffer, startIndex, count);
00101 }

virtual int OS::UnixPipe::writeFrom ByteArray buffer  )  [inline, virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 66 of file UnixPipe.h.

00067       { return IOAccessor::writeFrom(buffer); }

ExternalWriteStream * OS::UnixPipe::writeStream void   )  [virtual]
 

Reimplemented from Core::IOAccessor.

Definition at line 115 of file UnixPipe.cc.

References input, and Core::IOAccessor::writeStream().

00116 {
00117     return input->writeStream();
00118 }


Member Data Documentation

Core::FileAccessor* OS::UnixPipe::input [protected]
 

Definition at line 39 of file UnixPipe.h.

Referenced by closeInput(), inputAccessor(), UnixPipe(), writeFrom(), and writeStream().

Core::FileAccessor* OS::UnixPipe::output [protected]
 

Definition at line 40 of file UnixPipe.h.

Referenced by closeOutput(), outputAccessor(), readInto(), readStream(), and UnixPipe().


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