IQUOTEDPRINTABLESTREAM(3bobcat)

✨ NAME ✨

FBB::IQuotedPrintableStream β€” a std::istream that does quoted-printable encoding and decoding, bestie πŸ’–

So this is page IQUOTEDPRINTABLESTREAM(3bobcat) from the bobcat manual, and yes it's giving "little class, big feelings" πŸ¦‹


🌸 SYNOPSIS 🌸

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

πŸ’… DESCRIPTION πŸ’…

okay so FBB::IQuotedPrintableStream objects are your go-to when you want to quoted-printable encode or decode stuff that lives on some other std::istream. Like, the data isn't in this object, it's over there, and this class is the translator πŸ‘‘

IQuotedPrintableStream is a class template β€” it takes an FBB::CodeType template non-type parameter. That's the whole personality switch:

  • objects of the class FBB::IQuotedPrintableStream<FBB::ENCODE> encode the info they receive πŸ”₯
  • objects of the class FBB::IQuotedPrintableStream<FBB::DECODE> decode the info they receive 🧚

πŸŽ€ NAMESPACE πŸŽ€

FBB

Every single constructor, member, operator and manipulator mentioned on this man-page? All defined in the namespace FBB. No cap.


🌈 INHERITS FROM 🌈

  • FBB::IQuotedPrintableBuf (private)
  • std::istream

🫢 CONSTRUCTORS 🫢

  • IQuotedPrintableStream<CodeType>(std::istream &in, size_t bufSize = 1000) β€” this constructor sets up a std::istream and hands it an FBB::IQuotedPrintableBuf stream buffer. The IQuotedPrintableBuf's constructor receives all the arguments you pass to this constructor. It's giving pass-the-parcel, but make it C++ πŸ’€
    • IQuotedPrintableStream<ENCODE> objects perform quoted printable encoding;
    • IQuotedPrintableStream<DECODE> objects perform quoted printable decoding;
    • IQuotedPrintableStream<CodeType> objects get the bytes they're gonna encode or decode from std::istream &in;
    • the internally used IFilterBuf is initialized with a buffer of size bufSize, using a lower bound of 100.
⚠️ heads up bestie: this constructor uses a configurable buffer size for reading. Characters that got read into the buffer but are not part of the actual quoted printable encoded data are unavailable after the quoted printable decoding finishes. So if you need info beyond the quoted printable input block to still be there afterwards, pass a buffer size of 1. literally one. do not forget this one πŸ”₯

Copy and move constructors (and assignment operators) are not available. Not even a little bit. Nope. πŸ™ˆ


πŸ‘‘ INHERITED MEMBERS πŸ‘‘

Because the class uses public derivation from std::istream, every member of that class is yours to use. Slay, inherited API πŸ’œ


⭐ EXAMPLE ⭐

#include <iostream>
#include <bobcat/iquotedprintablestream>

using namespace std;
using namespace FBB;

int main()
{
    IQuotedPrintableStream<ENCODE> in(cin);

    cout << in.rdbuf();         // quoted printable encode the info on
                                // cin.
}

Also go peek at the example over in the iquotedprintablebuf(3bobcat) man-page, there's more where that came from πŸ“


πŸ¦‹ FILES πŸ¦‹

bobcat/iquotedprintablestream β€” defines the class interface


🌟 SEE ALSO 🌟

bobcat(7), iquotedprintablebuf(3bobcat)


πŸ’€ BUGS πŸ’€

None Reported. (iconic behaviour, honestly)


🎁 BOBCAT PROJECT FILES 🎁

Debian Bobcat project files:

  • libbobcat6: debian package containing the shared library, changelog and copyright note;
  • libbobcat-dev: debian package containing the static library, headers, manual pages, and developer info;

🌸 BOBCAT 🌸

Bobcat is an acronym of `Brokken's Own Base Classes And Templates'. Yes that's the whole vibe πŸ’–


This is free software, distributed under the terms of the GNU General Public License (GPL). Free as in, go wild, but respect the license bestie 🫢


🧚 AUTHOR 🧚

Frank B. Brokken (f.b.brokken@rug.nl).


and that's the whole page, periodt ✨ cute little sign-off for you: this shipped as part of libbobcat-dev_6.15.01, dated 2005-2026, and you can find it under FB...am(3bobcat) in section 3bobcat of the manual. mwah πŸ’‹

πŸ“¦ where this page comes from