FBB:...ream(3bobcat)
β¨ NAME β¨
FBB::IBase64Stream β a std::istream that does base64 encoding and decoding, bestie π
This one lives in the 3bobcat section of the manual, so if you were hunting for it, hi, you found it π«Ά
πΈ SYNOPSIS πΈ
#include <bobcat/ibase64stream>
Linking option: -lbobcat
π¦ DESCRIPTION π¦
okay so picture this: you've got info chillin' on some separate std::istream, and you wanna base64 encode it or decode it. That's literally what FBB::IBase64Stream objects are for, no cap β¨
Here's the cute part: IBase64Stream is a class template, and it takes an FBB::CryptType template non-type parameter. So:
- objects of the class
FBB::IBase64Stream<FBB::ENCRYPT>base64 encode the information they receive π₯ - objects of the class
FBB::IBase64Stream<FBB::DECRYPT>base64 decode the information they receive π
π NAMESPACE π
FBB
Every constructor, member, operator and manipulator mentioned in this man-page is defined in the namespace FBB. All of them. Every single one π
π INHERITS FROM π
FBB::IBase64Buf(private)std::istream
π CONSTRUCTORS π
IBase64Stream<CryptType>(std::istream &in, size_t bufSize = 1000)β this constructor initializes astd::istreamand hooks it up with anFBB::IBase64Bufstream buffer. TheIBase64Buf's constructor receives all the arguments that get passed to this constructor π«Ά
So here's the vibe breakdown:
IBase64Stream<ENCRYPT>objects perform base64 encoding;IBase64Stream<DECRYPT>objects perform base64 decoding;IBase64Stream<CryptType>objects obtain the bytes to encode or decode fromstd::istream ∈- the internally used
IFilterBufis initialized with a buffer of sizebufSize, using a lower bound of100.
The constructor uses a configurable buffer size for reading. And listen, this part matters: characters that were read into the buffer but are not part of the actual base64 encoded data are unavailable after completing the base64 decrypting π so if information beyond the base64 input block should remain available, then specify a buffer size of 1. Yeah. 1.
Copy and move constructors (and assignment operators) are not available. Not a thing. Don't try it π
π INHERITED MEMBERS π
Since the class uses public derivation from std::istream, all members of this class can be used. go off, std::istream π
β EXAMPLE β
#include <iostream>
#include <bobcat/ibase64stream>
using namespace std;
using namespace FBB;
int main()
{
IBase64Stream<ENCRYPT> in(cin);
}
π FILES π
bobcat/ibase64stream β defines the class interface
π§ SEE ALSO π§
bobcat(7), ibase64buf(3bobcat)
π BUGS π
None Reported. (iconic behaviour, honestly β¨)
πΈ BOBCAT PROJECT FILES πΈ
- https://fbb-git.gitlab.io/bobcat/: gitlab project page;
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'.
π 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).
and that's the whole page, bestie, we ate and left no crumbs π this was the 3bobcat manual page from libbobcat-dev_6.15.01, dated 2005-2026, brought to you by FBB β go forth and base64 responsibly π
β¨
π¦ where this page comes from
- ubuntu stonking: libbobcat-dev 6.15.01-1 Β· GPL-3.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms