FBB::IOStream - Combines std::istream and std::ostream features
Contents
Bobcat
Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.
Bobcat Project Files
o https://fbb-git.gitlab.io/bobcat/: gitlab project page;
Debian Bobcat project files:
o libbobcat6: debian package containing the shared library, changelog and copyright note;
o libbobcat-dev: debian package containing the static library, headers, manual pages, and developer
info;
Bugs
None Reported.
Constructors
o IOStream():
The default constructor constructs an empty FBB::IOStream objects. It should not be used before
its open member (see below) was called.
o 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
Copy and move constructors (and assignment operators) are not available.
Copyright
This is free software, distributed under the terms of the GNU General Public License (GPL).
Description
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.
Example
See the example provided with process(3bobcat).
Files
bobcat/iostream - defines the class interface
Inherits From
FBB::IOBuf (private inheritance),
std::istream,
std::ostreamMember 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.
o voidopen(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.
o voidclear():
This member clears the error states of the associated std::istream and std::ostream objects.
Name
FBB::IOStream - Combines std::istream and std::ostream features
Namespace
FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the
namespace FBB.
See Also
bobcat(7), ifdstream(3bobcat), iobuf(3bobcat), ofdstream(3bobcat), process(3bobcat)
Synopsis
#include<bobcat/iostream>
Linking option: -lbobcat