Provided by: libbobcat-dev_6.02.02-1_amd64 bug

NAME

       FBB::IOBuf - streambuf allowing input and output operations

SYNOPSIS

       #include <bobcat/iobuf>
       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 IOBuf object  support  seeking,  then  the
       IOBuf  will  do  so  to.  Seeking  might also be available for a single stream (either the
       std::istream or the std::ostream).

       When the IOBuf 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      IOBuf():
              The  default constructor results in a IOBuf object that cannot be immediately used.
              Its member open() must be called first.

       o      IOBuf(std::istream &in, std::ostream &out):
              This  constructor  associates  the  IOBuf  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 IOBuf() should  outlive
              the IOBuf object.

       Copy and move constructors (and assignment operators) are not available.

MEMBER FUNCTIONS

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

       o      void open(std::istream &in, std::ostream &out):
              This member (re)associates the IOBuf 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 IOBuf() should outlive the IOBuf object.
              If  this  member  is  called  for  an  IOBuf  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:IOBuf  object  and  a
       subsequent call of IOBuf::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

       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/iobuf - defines the class interface

SEE ALSO

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

BUGS

       None reported.

BOBCAT PROJECT FILES

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       o      bobcat_6.02.02-x.dsc: detached signature;

       o      bobcat_6.02.02-x.tar.gz: source archive;

       o      bobcat_6.02.02-x_i386.changes: change log;

       o      libbobcat1_6.02.02-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_6.02.02-x_*.deb: debian package containing  the  libraries,  headers
              and manual pages;

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