.TH "FBB::IOStream" "3bobcat" "2005\-2020" "libbobcat\-dev_5\&.07\&.00" "std::istream and std::ostream" .PP .SH "NAME" FBB::IOStream \- Combines std::istream and std::ostream features .PP .SH "SYNOPSIS" \fB#include \fP .br Linking option: \fI\-lbobcat\fP .PP .SH "DESCRIPTION" .PP This class combines the features of the \fBstd::istream\fP and \fBstd::ostream\fP classes\&. The \fBstd::istream\fP and \fBstd::ostream\fP may be physically different streams\&. \fBFBB:IOStream\fP objects may, e\&.g\&., be associated with streams wrapped around \fIpipes\fP (see, e\&.g\&., \fBFBB::IfdStream\fP and \fBFBB::OFdStream\fP), to construct bi\-directional pipes\&. .PP .SH "NAMESPACE" \fBFBB\fP .br All constructors, members, operators and manipulators, mentioned in this man\-page, are defined in the namespace \fBFBB\fP\&. .PP .SH "INHERITS FROM" \fBFBB::IOBuf\fP (private inheritance), .br \fBstd::istream\fP, .br \fBstd::ostream\fP .PP .SH "CONSTRUCTORS" .IP o \fBIOStream()\fP: .br The default constructor constructs an empty \fBFBB::IOStream\fP objects\&. It should not be used before its \fIopen\fP member (see below) was called\&. .IP o \fBIOStream(std::istream &in, std::ostream &out)\fP: .br This constructor associates the \fBIOStream\fP object with a \fIstd::istream\fP and a \fIstd::ostream\fP\&. All output operations will be passed on to the \fIstd::ostream\fP, all input operations to the \fIstd::istream\fP\&. The streams passed to \fIIOStream\fP should outlive the \fBIOStream\fP object\&. This constructor performs the actions of the default constructor and then calls the \fIIOStream::open\fP member .PP Copy and move constructors (and assignment operators) are not available\&. .PP .SH "MEMBER FUNCTIONS" All members of \fIstd::istream\fP and \fIstd::ostream\fP are available, as \fBFBB::IOStream\fP inherits from these classes\&. Furthermore, when switching between \fIstd::istream\fP and \fIstd::ostream\fP operations, no intermediate \fIseekg()\fP or \fIseekp()\fP operation will normally be required, since the base classes will normally be associated with physically different streams\&. .IP o \fBvoid open(std::istream &in, std::ostream &out)\fP: .br This member (re)associates the \fBIOStream\fP object with a \fIstd::istream\fP and a \fIstd::ostream\fP\&. All output operations will be passed on to the \fIstd::ostream\fP, all input operations to the \fIstd::istream\fP\&. The streams passed to \fIIOStream()\fP should outlive the \fBIOStream\fP object\&. If this member is called for an \fBIOStream\fP object already associated with an \fIstd::ostream\fP object, the already associated \fIstd::ostream\fP object is flushed before setting up the new association\&. .IP o \fBvoid clear()\fP: .br This member clears the error states of the associated \fIstd::istream\fP and \fIstd::ostream\fP objects\&. .PP .SH "EXAMPLE" See the example provided with \fBprocess\fP(3bobcat)\&. .PP .SH "FILES" \fIbobcat/iostream\fP \- defines the class interface .PP .SH "SEE ALSO" \fBbobcat\fP(7), \fBifdstream\fP(3bobcat), \fBiobuf\fP(3bobcat), \fBofdstream\fP(3bobcat), \fBprocess\fP(3bobcat) .PP .SH "BUGS" None Reported\&. .PP .SH "BOBCAT PROJECT FILES" .PP .IP o \fIhttps://fbb\-git\&.gitlab\&.io/bobcat/\fP: gitlab project page; .IP o \fIbobcat_5\&.07\&.00\-x\&.dsc\fP: detached signature; .IP o \fIbobcat_5\&.07\&.00\-x\&.tar\&.gz\fP: source archive; .IP o \fIbobcat_5\&.07\&.00\-x_i386\&.changes\fP: change log; .IP o \fIlibbobcat1_5\&.07\&.00\-x_*\&.deb\fP: debian package containing the libraries; .IP o \fIlibbobcat1\-dev_5\&.07\&.00\-x_*\&.deb\fP: debian package containing the libraries, headers and manual pages; .PP .SH "BOBCAT" Bobcat is an acronym of `Brokken\(cq\&s Own Base Classes And Templates\(cq\&\&. .PP .SH "COPYRIGHT" This is free software, distributed under the terms of the GNU General Public License (GPL)\&. .PP .SH "AUTHOR" Frank B\&. Brokken (\fBf\&.b\&.brokken@rug\&.nl\fP)\&. .PP