Provided by: libbobcat-dev_3.19.01-1ubuntu1_amd64 bug

NAME

       FBB::IOStreambuf - streambuf allowing input and output operations

SYNOPSIS

       #include <bobcat/iostreambuf>
       Linking option: -lbobcat

DESCRIPTION

       This  class  implements  a  specialization  of  the  std::streambuf  class, allowing input
       operations from and output operations to different files. It is intended  to  be  used  in
       combination with FBB::IOStream, thus allowing all stream-based input and output operations
       using the same object without the need to  use  seek-operations.  Using  an  FBB::IOStream
       object  it  is,  e.g., possible to construct two-way communications using pipes, much like
       the facilities offered by sockets.

       If the streams that will be associated with the IOStreambuf object support  seeking,  then
       the  IOStreambuf will do so to. Seeking might also be availble for a single stream (either
       the std::istream or the std::ostream).

       When the IOStreambuf object goes out of  scope,  its  associated  std::ostream  object  is
       flushed.

NAMESPACE

       FBB
       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are
       defined in the namespace FBB.

INHERITS FROM

       std::streambuf

CONSTRUCTORS

       o      IOStreambuf():
              The default constructor results in a IOStreambuf object that cannot be  immediately
              used. Its member open() must be called first.

       o      IOStreambuf(std::istream &in, std::ostream &out):
              This  constructor  associates  the  IOStreambuf  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 IOStreambuf() should
              outlive the IOStreambuf object.  Copy and move constructors is not available.

MEMBER FUNCTIONS

       All members of std::streambuf are  available,  as  FBB::IOStreambuf  inherits  from  these
       classes.

       o      void open(std::istream &in, std::ostream &out):
              This  member  (re)associates  the  IOStreambuf  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 IOStreambuf() should
              outlive the IOStreambuf object. If this member is called for an IOStreambuf  object
              already associated with an std::ostream object, the already associated std::ostream
              object is flushed before setting up the new association.

VIRTUAL PROTECTED MEMBER FUNCTIONS

       The  following  std::streambuf  member  functions  should  only   be   called   when   the
       FBB::Streambuf object is associated with std::istream and std::ostream objects (i.e., they
       should not be called between the construction of a default FBB:IOStreambuf  object  and  a
       subsequent call of IOStreambuf::open()):

       The  members  listed  in  this  section  implement  the  tasks of comparably named virtual
       function in the class’s private interface. This separates the redefinable  interface  from
       the  user-interface.  The  class IOStreamBuf can, in accordance with Liskov’s Substitution
       Principle, be used as a std:streambuf; but it also offers facilities for classes  deriving
       from IOStreamBuf. These facilities are listed here.

       o      pos_type pSeekoff(off_type offset, std::ios::seekdir way, std::ios::openmode mode =
              std::ios::in | std::ios::out):
              With seekable streams, repositions the associated std::istream or  std::ostream  is
              repositioned to offset offset, relative to way.

       o      pos_type   pSeekpos(off_type  offset,  std::ios::openmode  mode  =  std::ios::in  |
              std::ios::out):
              With seekable streams, repositions the associated std::istream or  std::ostream  is
              repositioned to offset offset, relative to the beginning of the stream.

       o      int pSync():
              This member flushes the associated std::ostream object.

       o      std::streamsize pXsputn(char const *buffer, std::streamsize n):
              This  member  inserts  n  characters  from  buffer into the associated std::ostream
              stream.

EXAMPLE

       See the example provided with process(3bobcat).

FILES

       bobcat/iostreambuf - defines the class interface

SEE ALSO

       bobcat(7), iostream(3bobcat), process(3bobcat)

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).