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. 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_3.23.01-x.dsc: detached signature;
- o
- bobcat_3.23.01-x.tar.gz: source archive;
- o
- bobcat_3.23.01-x_i386.changes: change log;
- o
- libbobcat1_3.23.01-x_*.deb: debian package holding the
libraries;
- o
- libbobcat1-dev_3.23.01-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).