This class combines the features of the std::istream and
std::ostream classes. The std::istream and std::ostream may be
physically different streams. FBB:IOStream objects may, e.g., be
associated with streams wrapped around pipes (see, e.g.,
FBB::IfdStream and FBB::OFdStream), to construct bi-directional pipes.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
IOStream():
The default constructor constructs an empty FBB::IOStream
objects. It should not be used before its open member (see below) was
called.
IOStream(std::istream &in, std::ostream &out):
This constructor associates the IOStream object with a
std::istream and a std::ostream. All output operations will be passed
on to the std::ostream, all input operations to the std::istream. The
streams passed to IOStream should outlive the IOStream object. This
constructor performs the actions of the default constructor and then calls the
IOStream::open member
De copy constructor is available as well.
MEMBER FUNCTIONS
All members of std::istream and std::ostream are
available, as FBB::IOStream inherits from these classes. Furthermore, when
switching between std::istream and std::ostream operations, no
intermediate seekg() or seekp() operation will normally be required,
since the base classes will normally be associated with physically different
streams.
void open(std::istream &in, std::ostream &out):
This member (re)associates the IOStream object with a
std::istream and a std::ostream. All output operations will be passed
on to the std::ostream, all input operations to the std::istream. The
streams passed to IOStream() should outlive the IOStream object. If
this member is called for an IOStream object already associated with an
std::ostream object, the already associated std::ostream object is
flushed before setting up the new association.
void clear():
This member clears the error states of the associated std::istream
and std::ostream objects.