Provided by: libbobcat-dev_2.20.01-1_amd64 bug

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_2.20.01-x.dsc: detached signature;

       o      bobcat_2.20.01-x.tar.gz: source archive;

       o      bobcat_2.20.01-x_i386.changes: change log;

       o      libbobcat1_2.20.01-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_2.20.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).