TypeIO.h
Classes
- TypeIO -- Abstract base class for IO of data in a type-dependent format (full description)
Interface
- Public Members
- explicit TypeIO (ByteIO* byteIO, Bool takeOver=False)
- virtual ~TypeIO()
- const ByteIO& byteIO() const
- ByteIO& byteIO()
- virtual uInt write (uInt nvalues, const Bool* value)
- virtual uInt write (uInt nvalues, const Char* value) = 0
- virtual uInt write (uInt nvalues, const uChar* value) = 0
- virtual uInt write (uInt nvalues, const Short* value) = 0
- virtual uInt write (uInt nvalues, const uShort* value) = 0
- virtual uInt write (uInt nvalues, const Int* value) = 0
- virtual uInt write (uInt nvalues, const uInt* value) = 0
- virtual uInt write (uInt nvalues, const Int64* value) = 0
- virtual uInt write (uInt nvalues, const uInt64* value) = 0
- virtual uInt write (uInt nvalues, const Float* value) = 0
- virtual uInt write (uInt nvalues, const Double* value) = 0
- virtual uInt write (uInt nvalues, const Complex* value)
- virtual uInt write (uInt nvalues, const DComplex* value)
- virtual uInt write (uInt nvalues, const String* value)
- virtual uInt read (uInt nvalues, Bool* value)
- virtual uInt read (uInt nvalues, Char* value) = 0
- virtual uInt read (uInt nvalues, uChar* value) = 0
- virtual uInt read (uInt nvalues, Short* value) = 0
- virtual uInt read (uInt nvalues, uShort* value) = 0
- virtual uInt read (uInt nvalues, Int* value) = 0
- virtual uInt read (uInt nvalues, uInt* value) = 0
- virtual uInt read (uInt nvalues, Int64* value) = 0
- virtual uInt read (uInt nvalues, uInt64* value) = 0
- virtual uInt read (uInt nvalues, Float* value) = 0
- virtual uInt read (uInt nvalues, Double* value) = 0
- virtual uInt read (uInt nvalues, Complex* value)
- virtual uInt read (uInt nvalues, DComplex* value)
- virtual uInt read (uInt nvalues, String* value)
- Int64 seek (Int64 offset, ByteIO::SeekOption = ByteIO::Begin)
- Int64 seek (Int offset, ByteIO::SeekOption = ByteIO::Begin)
- Bool isReadable() const
- Bool isWritable() const
- Bool isSeekable() const
- Protected Members
- TypeIO (const TypeIO& TypeIO)
- TypeIO& operator= (const TypeIO& typeIO)
Review Status
- Reviewed By:
- Friso Olnon
- Date Reviewed:
- 1996/11/06
- Programs:
- Tests:
Prerequisite
- ByteIO class and derived classes
Synopsis
This class is the abstract base class for doing IO in a type-dependent
way. Derived from it are classes like
CanonicalIO doing the actual formatting of the data.
The TypeIO classes convert the data to/from the given format
using the static conversion functions in the classes like
CanonicalConversion.
The data is written to or read from the ByteIO
object given when constructing the TypeIO object.
TypeIO declares the virtual functions read and write to read/write
one or more values of a given data type. Usually the derived classes
have to implement these functions. An exception are the functions
handling Bool, complex and String values. These functions have a
default implementation in this base class. However, if needed
they can be overwritten in derived classes.
Motivation
The base class is needed for polymorphic type-dependent IO.
Furthermore the common functionality can be implemented here.
Member Description
explicit TypeIO (ByteIO* byteIO, Bool takeOver=False)
Constructor.
The read/write functions will use the given ByteIO object
as the data store.
Functions to return a reference to the ByteIO class.
virtual uInt write (uInt nvalues, const Bool* value)
virtual uInt write (uInt nvalues, const Char* value) = 0
virtual uInt write (uInt nvalues, const uChar* value) = 0
virtual uInt write (uInt nvalues, const Short* value) = 0
virtual uInt write (uInt nvalues, const uShort* value) = 0
virtual uInt write (uInt nvalues, const Int* value) = 0
virtual uInt write (uInt nvalues, const uInt* value) = 0
virtual uInt write (uInt nvalues, const Int64* value) = 0
virtual uInt write (uInt nvalues, const uInt64* value) = 0
virtual uInt write (uInt nvalues, const Float* value) = 0
virtual uInt write (uInt nvalues, const Double* value) = 0
virtual uInt write (uInt nvalues, const Complex* value)
virtual uInt write (uInt nvalues, const DComplex* value)
virtual uInt write (uInt nvalues, const String* value)
Convert the values and write them to the ByteIO object.
By default Bools are stored as bits, Complex as 2 floats,
DComplex as 2 doubles and String as a length (uInt) and chars.
If it does not succeed an exception will be thrown.
virtual uInt read (uInt nvalues, Bool* value)
virtual uInt read (uInt nvalues, Char* value) = 0
virtual uInt read (uInt nvalues, uChar* value) = 0
virtual uInt read (uInt nvalues, Short* value) = 0
virtual uInt read (uInt nvalues, uShort* value) = 0
virtual uInt read (uInt nvalues, Int* value) = 0
virtual uInt read (uInt nvalues, uInt* value) = 0
virtual uInt read (uInt nvalues, Int64* value) = 0
virtual uInt read (uInt nvalues, uInt64* value) = 0
virtual uInt read (uInt nvalues, Float* value) = 0
virtual uInt read (uInt nvalues, Double* value) = 0
virtual uInt read (uInt nvalues, Complex* value)
virtual uInt read (uInt nvalues, DComplex* value)
virtual uInt read (uInt nvalues, String* value)
Read the values from the ByteIO object and convert them.
By default Bools are stored as bits, Complex as 2 floats,
DComplex as 2 doubles and String as a length (uInt) and chars.
If it does not succeed an exception will be thrown.
Int64 seek (Int64 offset, ByteIO::SeekOption = ByteIO::Begin)
Int64 seek (Int offset, ByteIO::SeekOption = ByteIO::Begin)
This function sets the position on the given offset.
The seek option defines from which file position the seek is done.
-1 is returned if not seekable.
Is the TypeIO stream readable?
Is the TypeIO stream writable?
Is the TypeIO stream seekable?
TypeIO (const TypeIO& TypeIO)
The copy constructor uses reference semantics
TypeIO& operator= (const TypeIO& typeIO)
The assignment operator uses reference semantics