FBB::IQuotedPrintableStreambuf(3bobcat)

QuotedPrintable converting Stream Buffer
(libbobcat-dev_4.08.03-x.tar.gz)

2005-2018

NAME

FBB::IQuotedPrintableStreambuf - Input Filtering stream buffer doing quoted printable conversions

SYNOPSIS

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

DESCRIPTION

The information made available by IQuotedPrintableStreambuf objects is either quoted-printable encoded or decoded. The information to convert is read by IQuotedPrintableStreambuf objects via std::istream objects.

The class IQuotedPrintableStreambuf is a class template, using a FBB::CryptType template non-type parameter. Objects of the class FBB::IQuotedPrintableStreambuf<FBB::ENCODE> encode the information they receive, objects of the class FBB::IQuotedPrintableStreambuf<FBB::DECODE> decode the information they receive. See also section ENUMERATION below.

Quoted-printable encoding is sometimes used in e-mail attachments (See also https://en.wikipedia.org/wiki/Quoted-printable and https://www.ietf.org/rfc/rfc2045.txt (section 6.7)). Its main characteristics are:


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 IQuotedPrintableStreambuf inherits from this class.

Overloaded move and/or copy assignment operators are not available.

ENUMERATION

IQuotedPrintableStreambuf objects either encode or decode quoted-printable information. IQuotedPrintableStreambuf objects of the class FBB::IQuotedPrintableStreambuf<FBB::ENCODE> encode the data they receive, IQuotedPrintableStreambuf objects of the class FBB::IQuotedPrintableStreambuf<FBB::DECODE> decode the data they receive.

The values ENCODE and DECODE are defined in the enum CryptType, defined in the FBB namespace.

CONSTRUCTOR

Copy- and move constructors are not available.

EXAMPLE

The example shows the construction of IQuotedPrintableStreambuf<ENCODE> objects encode which are used to initialize a std::istream object. The information read from this istream is quoted-printable encoded.

IQuotedPrintableStreambuf<DECODE> objects read quoted-printable encoded information from std::istream objects, decoding the information.

The std::istream din object is initialized with the IQuotedPrintableStreambuf<DECODE> 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/iquotedprintablestreambuf>

using namespace std;
using namespace FBB;

int main(int argc, char **argv)
{
    if (argc == 1)
    {
        cout << "Usage: " << argv[0] << " [edb] < infile > outfile\n"
                    "to quoted printable -e-ncode, -d-ecode or -b-oth\n";
        return 0;
    }

    switch (argv[1][0])
    {
        case 'e':
        {
            IQuotedPrintableStreambuf<ENCODE> encode(cin);
            istream ein(&encode);
            cout << ein.rdbuf();
        }
        break;

        case 'd':
        {
            IQuotedPrintableStreambuf<DECODE> decode(cin);
            istream din(&decode);
            cout << din.rdbuf();
        }
        break;
    
        case 'b':
        {
            IQuotedPrintableStreambuf<ENCODE> encode(cin);
            istream ein(&encode);

            IQuotedPrintableStreambuf<DECODE> decode(ein);
            istream din(&decode);
            cout << din.rdbuf();
        }
        break;
    }
}

FILES

bobcat/iquotedprintablestreambuf - defines the class interface

SEE ALSO

bobcat(7), isymcryptstreambuf(3bobcat), iquotedprintablestream(3bobcat), ifilterstreambuf(3bobcat), ofilterstreambuf(3bobcat), std::streambuf.

BUGS

None reported.

DISTRIBUTION FILES

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