Provided by: libbobcat-dev_6.02.02-1_amd64
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.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).