ByteSink.h

Classes

ByteSink -- Class for write-only access to data in a given format. (full description)

class ByteSink: virtual public BaseSinkSource

Interface

Public Members
ByteSink()
ByteSink (TypeIO* typeIO, Bool takeOver=False)
ByteSink (const ByteSink& sink)
ByteSink& operator= (const ByteSink& sink)
~ByteSink()
ByteSink& operator<< (Bool value)
ByteSink& operator<< (Char value)
ByteSink& operator<< (uChar value)
ByteSink& operator<< (Short value)
ByteSink& operator<< (uShort value)
ByteSink& operator<< (Int value)
ByteSink& operator<< (uInt value)
ByteSink& operator<< (Int64 value)
ByteSink& operator<< (uInt64 value)
ByteSink& operator<< (Float value)
ByteSink& operator<< (Double value)
ByteSink& operator<< (const Complex& value)
ByteSink& operator<< (const DComplex& value)
ByteSink& operator<< (const String& value)
ByteSink& operator<< (const Char* value)
void write (uInt nvalues, const Bool* value)
void write (uInt nvalues, const Char* value)
void write (uInt nvalues, const uChar* value)
void write (uInt nvalues, const Short* value)
void write (uInt nvalues, const uShort* value)
void write (uInt nvalues, const Int* value)
void write (uInt nvalues, const uInt* value)
void write (uInt nvalues, const Int64* value)
void write (uInt nvalues, const uInt64* value)
void write (uInt nvalues, const Float* value)
void write (uInt nvalues, const Double* value)
void write (uInt nvalues, const Complex* value)
void write (uInt nvalues, const DComplex* value)
void write (uInt nvalues, const String* value)

Description

Review Status

Reviewed By:
Friso Olnon
Date Reviewed:
1996/11/06
Programs:
Tests:

Prerequisite

Etymology

A sink is the place where bytes are written to.

Synopsis

ByteSink provides write-only access to a typed byte stream in the AIPS++ IO framework. The base class BaseSinkSource contains common functions like seek.

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).
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).

Note that in general ByteSink will only be used for write-only streams like sockets or pipes. Class ByteSinkSource is the obvious choice for read/write streams.

Example

    // Construct the correct output stream.
    MemoryIO memio;
    CanonicalIO canio (&memio);
    ByteSink sink (&canio);
    // Write data.
    Int vali;
    sink << vali << True;

Motivation

This class makes it possible to deny read-access to an IO stream.

Member Description

ByteSink()

Default constructor. This creates an invalid object, but is present for convenience.

ByteSink (TypeIO* typeIO, Bool takeOver=False)

Construct from given TypeIO object. The constructor does not copy the object, but only keeps a pointer to it. If takeOver is true the this class will delete the supplied pointer. Otherwise the caller is responsible for this.

ByteSink (const ByteSink& sink)

The copy constructor uses reference semantics

ByteSink& operator= (const ByteSink& sink)

The assignment operator uses reference semantics

~ByteSink()

destructor

ByteSink& operator<< (Bool value)
ByteSink& operator<< (Char value)
ByteSink& operator<< (uChar value)
ByteSink& operator<< (Short value)
ByteSink& operator<< (uShort value)
ByteSink& operator<< (Int value)
ByteSink& operator<< (uInt value)
ByteSink& operator<< (Int64 value)
ByteSink& operator<< (uInt64 value)
ByteSink& operator<< (Float value)
ByteSink& operator<< (Double value)
ByteSink& operator<< (const Complex& value)
ByteSink& operator<< (const DComplex& value)
ByteSink& operator<< (const String& value)
ByteSink& operator<< (const Char* value)

These functions write one value of the given type. If this function does not succeed, an exception will be thrown.

void write (uInt nvalues, const Bool* value)
void write (uInt nvalues, const Char* value)
void write (uInt nvalues, const uChar* value)
void write (uInt nvalues, const Short* value)
void write (uInt nvalues, const uShort* value)
void write (uInt nvalues, const Int* value)
void write (uInt nvalues, const uInt* value)
void write (uInt nvalues, const Int64* value)
void write (uInt nvalues, const uInt64* value)
void write (uInt nvalues, const Float* value)
void write (uInt nvalues, const Double* value)
void write (uInt nvalues, const Complex* value)
void write (uInt nvalues, const DComplex* value)
void write (uInt nvalues, const String* value)

These functions write multiple values of the given type. If this function does not succeed, an exception will be thrown.