casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Protected Attributes
casa::BaseSinkSource Class Reference

Shared base class for ByteSink and ByteSource. More...

#include <BaseSinkSource.h>

Inheritance diagram for casa::BaseSinkSource:
casa::ByteSink casa::ByteSource casa::ByteSinkSource casa::ByteSinkSource

List of all members.

Public Member Functions

TypeIOtypeIO ()
 This functions returns a reference to itsTypeIO.
const TypeIOtypeIO () const
Int64 seek (Int64 offset, ByteIO::SeekOption=ByteIO::Begin)
 This function sets the position on the given offset.
Int64 seek (Int offset, ByteIO::SeekOption=ByteIO::Begin)
Bool isReadable () const
 Is the SinkSource readable?
Bool isWritable () const
 Is the SinkSource writable?
Bool isSeekable () const
 Is the SinkSource seekable?
Bool isNull () const
 Is the BaseSinkSource unusable?

Protected Member Functions

 BaseSinkSource ()
 BaseSinkSource (TypeIO *typeIO, Bool takeOver=False)
 Construct using the given TypeIO.
 BaseSinkSource (const BaseSinkSource &BaseSinkSource)
 The copy constructor uses reference semantics.
BaseSinkSourceoperator= (const BaseSinkSource &BaseSinkSource)
 The assignment operator uses reference semantics.
virtual ~BaseSinkSource ()

Protected Attributes

CountedPtr< TypeIOitsTypeIO
 This variable keeps a pointer to a TypeIO.

Detailed Description

Shared base class for ByteSink and ByteSource.

Intended use:

Public interface

Prerequisite

Review Status

Reviewed By:
Friso Olnon
Date Reviewed:
1996/11/06
Test programs:
tByteSink

Synopsis

This class provides the common functionality for the classes ByteSink and ByteSource .

The object is constructed using a typed byte stream. This stream is an instance of a class derived from class TypeIO . This makes it possible to store the data in any format (e.g. CanonicalIO or RawIO). Class CanonicalIO makes it possible to store the data in a canonical (machine-independent) format, so it can be read on any machine and operating system. The canonical format is big-endian IEEE, where a (unsigned) long is stored as 8 bytes. This means that on common 32-bit big-endian machines like SUN and HP only longs have to be converted and that CanonicalIO is as fast as RawIO. Class RawIO stores the data in native format, so the IO-process is faster on especially little-endian machines (PC, DEC-alpha). Note that RawIO can also be used to read bytes and interprete or convert them thereafter (e.g. using the conversion functions in the Conversion Conversion framework.

In its turn TypeIO uses an instance of a class derived from class ByteIO . This makes it possible to use any output stream (e.g. file, memory).

Motivation

The design of the ByteSink and ByteSource classes resembles the design of the iostream classes in the standard library. A shared base class is needed to allow multiple inheritance needed for class ByteSinkSource.

Definition at line 83 of file BaseSinkSource.h.


Constructor & Destructor Documentation

casa::BaseSinkSource::BaseSinkSource ( TypeIO typeIO,
Bool  takeOver = False 
) [protected]

Construct using the given TypeIO.

If takeOver is true the this class will delete the supplied pointer. Otherwise the caller is responsible for this.

casa::BaseSinkSource::BaseSinkSource ( const BaseSinkSource BaseSinkSource) [protected]

The copy constructor uses reference semantics.

virtual casa::BaseSinkSource::~BaseSinkSource ( ) [protected, virtual]

Member Function Documentation

Is the BaseSinkSource unusable?

Is the SinkSource readable?

Is the SinkSource seekable?

Is the SinkSource writable?

BaseSinkSource& casa::BaseSinkSource::operator= ( const BaseSinkSource BaseSinkSource) [protected]

The assignment operator uses reference semantics.

This function sets the position on the given offset.

The seek option defines from which position the seek is done.

This functions returns a reference to itsTypeIO.


Member Data Documentation

This variable keeps a pointer to a TypeIO.

Definition at line 129 of file BaseSinkSource.h.


The documentation for this class was generated from the following file: