Provided by: libbobcat-dev_4.08.02-2build1_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 available 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_4.08.02-x.dsc: detached signature;

       o      bobcat_4.08.02-x.tar.gz: source archive;

       o      bobcat_4.08.02-x_i386.changes: change log;

       o      libbobcat1_4.08.02-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_4.08.02-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).