Provided by: libbobcat-dev_6.03.02-2_amd64 bug

NAME

       FBB::Eoi - std::streambuf class offering an eoi manipulator

SYNOPSIS

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

DESCRIPTION

       The  class  Eoi  inherits from std::streambuf and may therefore be used as a base class of
       classes specializing std::streambuf. It is particularly useful  for  classes  implementing
       output  operations,  as  it can be used to specify the `true end’ of the generated output.
       E.g., an std::istream in object may insert its content  into  a  std::ostream  out  object
       using  the  familiar  out << in.rdbuf() expression, but that doesn’t allow out to conclude
       that it has received all of its information.  Sometimes additional actions are required to
       complete the output (this happens with, e.g., EncryptBuf objects (cf. encryptbuf(3bobcat))
       where after encrypting all input padding characters may have to be added to the  encrypted
       document). If out is initialized with the address of an EncryptBuf std::streambuf then the
       true end of the input can be indicated by inserting the  eoi  manipulator.  The  resulting
       expression  becomes  std::cout  << in.rdbuf() << eoi, and the manipulator ensures that the
       correct padding is handled.

NAMESPACE

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

INHERITS FROM

       std::streambuf

PROTECTED CONSTRUCTOR

       o      Eoi():
              Analogously to std::streambuf only a default protected constructor is available.

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

MEMBER FUNCTIONS

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

VIRTUAL MEMBER FUNCTION

       o      virtual void eoi_():
              The  virtual  member  function  eoi_  is a private member that can be overridden by
              derived classes. By default it performs no actions.

MANIPULATOR

       o      std::ostream &FBB::eoi(std::ostream &out):
              The eoi manipulator can be inserted into the ostream using  a  streambuf  which  is
              inherited  from  FBB::EoiBuf  to stop further insertions into the ostream. If it is
              inserted into a plain std::ostream nothing happens.

              eoi can also be called as a function, receiving the stream that uses an FBB::EoiBuf
              as  its  streambuf.  By default the eoi manipulator performs no actions. To use the
              manipulator in a class derived from EoiBuf the following approach can be used:

                  1. define a tt(bool d_eoi) data member, initialized to tt(false);
                  2. define a tt(void eoi_() override) member;
                  3. tt(eoi_) returns if tt(d_eoi == true), otherwise:
                  4. it sets tt(d_eoi) to tt(true) and performs the actions normally
                      performed by the class’s destructor;
                  5. the class’s destructor calls tt(eoi_()).

EXAMPLE

       See the example provided in the osymcryptstream(3bobcat) man-page

FILES

       bobcat/eoi - defines the class interface

SEE ALSO

       bobcat(7), eoibuf(3bobcat)

BUGS

       None Reported.

BOBCAT PROJECT FILES

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

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

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

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

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

       o      libbobcat1-dev_6.03.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).