Provided by: libbobcat-dev_3.19.01-1ubuntu1_amd64 

NAME
FBB::MultiStreambuf - Selectively writes multiple streams
SYNOPSIS
#include <bobcat/multistreambuf>
Linking option: -lbobcat
DESCRIPTION
The FBB::MultiStreambuf class is a specialization of std::streambuf. It can be used to write selectvely
to multiple std::ostreams. Each std::ostream that is associated with an FBB::MultiStreambuf is given a
mode-tag indicating whether the stream should always be used when information is inserted into the
FBB::MultiStreambuf, just once, or not at all. Each of the stream’s mode-tags may be set to any of the
defined tag-values.
When the address of a FBB::MultiStreambuf is used to initialize a std::ostream the constructed
std::ostream becomes an output-multiplexer: by inserting information into the std::ostream object, all
std::ostream objects added to its FBB::MultiStreambuf buffer which have an active mode will receive that
information.
An FBB::MultiStreambuf object should be outlived by all active streams that are associated with it.
No assumptions should be made about the order in which the std::ostream objects that are associated with
the FBB::MultiStreambuf objects are visited when information is inserted.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the
namespace FBB.
INHERITS FROM
std::streambuf
ENUMERATION
In the Mode enumeration the following values are defined:
o OFF:
A std::ostream having this mode will not be used when information is inserted into an
FBB::MultiStreambuf
o ON:
A std::ostream having this mode will be used when information is inserted into an
FBB::MultiStreambuf
o ONCE:
A std::ostream having this mode will be used once, until the next flushing operation, when
information is inserted into an FBB::MultiStreambuf
o RESET:
A std::ostream having this mode will not be used when information is inserted into an
FBB::MultiStreambuf. At a flush operation all ONCE modes will be set to RESET
TYPES
The following subtypes are defined in the class FBB:MultiStreambuf:
o iterator:
This is a synonym of std::vector<stream>::iterator
o const_iterator:
This is a synonym of std::vector<stream>::const_iterator
NESTED CLASS
The class FBB::MultiStreambuf::stream is defined as a nested class of FBB::MultiStreambuf. It offers the
following constructor and public members:
o stream(std::ostream &os, Mode mode = ON):
The constructor stores a std::ostream object, and associates a Mode value with it.
o void setMode(Mode mode):
This member is used to redefine the stream’s Mode value.
o void mode() const:
This member returns the stream’s Mode value.
o operator std::ostream &():
This member returns the stream’s std::ostream.
CONSTRUCTORS
o MultiStreambuf():
The default constructor creates a FBB::MultiStreambuf object which contains no associated
std::ostream objects.
o MultiStreambuf(std::ostream &os, Mode mode = ON):
This constructor creates a FBB::MultiStreambuf object which is immediately associated with the
std::ostream specified as its first argument.
o MultiStreambuf(std::vector<MultiStreambuf::stream> const &osvector):
This constructor creates a FBB::MultiStreambuf object which is immediately associated with all
std::ostream objects that are stored in the MultiStreambuf::stream elements of the specified
vector. The copy constructor is available.
MEMBER FUNCTIONS
All members of std::ostringstream and std::exception are available, as FBB::MultiStreambuf inherits from
these classes.
o iterator begin():
This member returns an iterator to the first stream element that is stored in a
FBB::MultiStreambuf object.
o const_iterator begin():
This member returns an iterator to the first (unmodifiable) stream element that is stored in a
FBB::MultiStreambuf object.
o iterator end():
This member returns an iterator pointing beyond the last stream element that is stored in a
FBB::MultiStreambuf object.
o iterator end():
This member returns an iterator pointing beyond the last (unmodifiable) stream element that is
stored in a FBB::MultiStreambuf object.
o void insert(std::ostream &os, Mode mode = ON):
This member adds the specified std::ostream using the specified Mode to the current set of stream
objects.
o void insert(std::vector<stream> const &os):
This member adds all stream objects stored in the os vector to the current set of stream objects.
o void void setOnce():
This member will reset all the RESET Mode values of the stored stream objects to ONCE.
PROTECTED MEMBER FUNCTION
The member listed in this section implements the tasks of the comparably named virtual function in the
class’s private interface. This separates the redefinable interface from the user-interface. The class
MultiStreamBuf can, in accordance with Liskov’s Substitution Principle, be used as a std:streambuf; but
it also offers a facility for classes deriving from MultiStreamBuf. This facility is listed here.
o int pSync():
The contents of the MultiStreamBuf’s internal buffer is written to each of the std::ostream
objects to which the MultiStreamBuf object has access.
EXAMPLE
#include <iostream>
#include <fstream>
#include <bobcat/multistreambuf>
using namespace std;
using namespace FBB;
int main()
{
MultiStreambuf msb(cout);
ostream os(&msb);
ofstream out("out");
msb.insert(out, MultiStreambuf::ONCE);
os << "This is on cout and out" << endl;
os << "This is on cout only" << endl;
msb.setOnce();
os << "This is on cout and out" << endl;
os << "This is on cout only" << endl;
return 0;
}
FILES
bobcat/multistreambuf - defines the class interface
SEE ALSO
bobcat(7)
BUGS
None Reported.
DISTRIBUTION FILES
o bobcat_3.19.01-x.dsc: detached signature;
o bobcat_3.19.01-x.tar.gz: source archive;
o bobcat_3.19.01-x_i386.changes: change log;
o libbobcat1_3.19.01-x_*.deb: debian package holding the libraries;
o libbobcat1-dev_3.19.01-x_*.deb: debian package holding the libraries, headers and manual pages;
o http://sourceforge.net/projects/bobcat: public archive location;
BOBCAT
Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.
COPYRIGHT
This is free software, distributed under the terms of the GNU General Public License (GPL).
AUTHOR
Frank B. Brokken (f.b.brokken@rug.nl).
libbobcat-dev_3.19.01-x.tar.gz 2005-2013 FBB::MultiStreambuf(3bobcat)