Provided by: libbobcat-dev_4.08.02-2build1_amd64 

NAME
FBB::IBase64Streambuf - Input Filtering stream buffer doing base64 conversion
SYNOPSIS
#include <bobcat/ibase64streambuf>
Linking option: -lbobcat
DESCRIPTION
The information made available by IBase64Streambuf objects has been subject to base64 encoding or
decoding. The information to be converted is made available to IBase64Streambuf object via std::istream
objects.
The class IBase64Streambuf is a class template, using a FBB::CryptType template non-type parameter.
Objects of the class FBB::IBase64Streambuf<FBB::ENCRYPT> base64 encode the information they receive,
objects of the class FBB::IBase64Streambuf<FBB::DECRYPT> base64 decode the information they receive. See
also section ENUMERATION below.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the
namespace FBB.
INHERITS FROM
FBB::IFilterStreambuf
MEMBER FUNCTIONS
All members of FBB::IFilterStreambuf are available, as IBase64Streambuf inherits from this class.
Overloaded move and/or copy assignment operators are not available.
ENUMERATION
IBase64Streambuf objects either base64 encode or decode information. IBase64Streambuf objects of the
class FBB::IBase64Streambuf<FBB::ENCRYPT> base64 encode the data they receive, IBase64Streambuf objects
of the class FBB::IBase64Streambuf<FBB::DECRYPT> base64 decode the data they receive.
The values ENCRYPT and DECRYPT are defined in the enum CryptType, which is defined in the FBB namespace.
CONSTRUCTOR
o IBase64Streambuf<CryptType>(std::istream &in, size_t bufSize = 1000):
This constructor initializes the streambuf.
- IBase64Streambuf<ENCRYPT> objects perform base64 encoding;
- IBase64Streambuf<DECRYPT> objects perform base64 decoding;
- IBase64Streambuf<CryptType> objects obtain the bytes to encode or decode from std::istream ∈
- The IFilterStreambuf base class is initialized with a buffer of size bufSize, using a lower
bound of 100.
The constructor uses a configurable buffer size for reading. Characters that were read into the
buffer but are not part of the actual base64 encoded data are unavailable after completing the
base64 decrypting. If information beyond the base64 input block should remain available, then
specify a buffer size of 1.
Copy- and move constructors are not available.
EXAMPLE
The example shows the construction of IBase64Streambuf<ENCRYPT> objects encode which are used to
initialize a std::istream object. The information read from this istream is base64 encoded.
IBase64Streambuf<DECRYPT> objects (decode reads base64 encoded information from std::istream objects and
decodes it again).
The std::istream din object is initialized with the IBase64Streambuf<DECRYPT> object, and its contents is
sent to std::cout. The information that is presented at std::cin and that appears at std::cout should be
identical.
#include <iostream>
#include <istream>
#include <bobcat/ibase64streambuf>
using namespace std;
using namespace FBB;
int main(int argc, char **argv)
{
switch (argv[1][0])
{
case ’e’:
{
IBase64Streambuf<ENCRYPT> encode(cin);
istream ein(&encode);
cout << ein.rdbuf();
}
break;
case ’d’:
{
IBase64Streambuf<DECRYPT> decode(cin);
istream din(&decode);
cout << din.rdbuf();
}
break;
case ’b’:
{
IBase64Streambuf<ENCRYPT> encode(cin);
istream ein(&encode);
IBase64Streambuf<DECRYPT> decode(ein);
istream din(&decode);
cout << din.rdbuf();
}
break;
default:
cout << "Usage: " << argv[0] << " [edb] < infile > outfile\n"
"to base64 -e-ncode, -d-ecode or -b-oth\n";
break;
}
}
FILES
bobcat/ibase64streambuf - defines the class interface
SEE ALSO
bobcat(7), isymcryptstreambuf(3bobcat), ibase64stream(3bobcat), ifilterstreambuf(3bobcat),
ofilterstreambuf(3bobcat), std::streambuf.
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).
libbobcat-dev_4.08.02-x.tar.gz 2005-2017 FBB::IBase64Streambuf(3bobcat)