ByteSource.h

Classes

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

class ByteSource: virtual public BaseSinkSource

Interface

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

Description

Review Status

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

Prerequisite

Etymology

A source is the place where bytes are read from.

Synopsis

ByteSource provides read-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 read 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 input stream (e.g. file, memory).

Example

    // Construct the correct input stream.
    RegularFileIO filio ("file.name");
    CanonicalIO canio (&filio);
    ByteSource source (&canio);
    // Read data.
    Int vali;
    Bool flag;
    source >> vali >> flag;

Motivation

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

Member Description

ByteSource()

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

ByteSource (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.

ByteSource (const ByteSource& source)

The copy constructor uses reference semantics

ByteSource& operator= (const ByteSource& source)

The assignment operator uses reference semantics

~ByteSource()

destructor

ByteSource& operator>> (Bool& value)
ByteSource& operator>> (Char& value)
ByteSource& operator>> (uChar& value)
ByteSource& operator>> (Short& value)
ByteSource& operator>> (uShort& value)
ByteSource& operator>> (Int& value)
ByteSource& operator>> (uInt& value)
ByteSource& operator>> (Int64& value)
ByteSource& operator>> (uInt64& value)
ByteSource& operator>> (Float& value)
ByteSource& operator>> (Double& value)
ByteSource& operator>> (Complex& value)
ByteSource& operator>> (DComplex& value)
ByteSource& operator>> (String& value)

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

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

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