trusty (3) multistreambuf.3bobcat.gz

Provided by: libbobcat-dev_3.19.01-1ubuntu1_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_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’.

       This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).