Data sources and sinks
The interface to DPIPortC<DataT> is fairly simple. There is a
function `bool IsGetReady()' to test if any data is immediately
available. `bool IsGetEOS()', tests if the end of the stream has been
reached. Finally there is `bool Get(DataT &buf)' which retrieves data
from the stream. It returns false if for whatever reason it fails.
The interface to DPOPortC<DataT> is fairly simple. `bool
IsPutReady()' tests if a stream is ready to accept data and `bool
Put(const DataT &dat)' to send it.
There are several implementations of input and output in AMMA. These
include ones that use the standard C++ istream and ostream. There is
a binary version of these operators, BinIStreamC and BinOStreamC,
for a more compact (machine independent) representation. In addition
there are numerous type-specific formats which will be discussed in section
Typical examples of such routines are DPOFileC<> and DPIFileC<>
which use the standard C++ stream class and operators, `operator»
(istream &,ClassT &x)' and `operator« (ostream &,const ClassT
&x)' to load and save a set of objects to a file. These are
described in most C++ text books, so we will not go into any detail here.