OHexStreambuf is a specialization of FBB::OFilterStreambuf
inserting all the characters it receives to a destination file as 2-character
wide hexadecimal values. Optionally a maximum linelength can be specified.
Note that all information received by an OHexStreambuf object is inserted
as (a series of) hexadecimal values, not only plain characters. E.g., when
inserting the value 123 the characters '1', '2' and '3' are
successively inserted and so this will result in the string 313233 being
inserted into the destination stream.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
FBB::OFilterStreambuf
CONSTRUCTOR
OFoldStreambuf(std::ostream &stream, size_t width = 0):
The hexadecimal characters produced by the OFoldStreambuf object will
be inserted into stream. Optionally the maximum line width (in number of
characters) may be specified using width. The (default) value 0 indicates
that no line breaks are requested.
The destructor writes any buffered information to the destination stream
and will then flushes the destination stream.
MEMBER FUNCTIONS
All members of FBB::OFilterStreambuf, in particular its out() and
open() members are available, as FBB::OHexStreambuf inherits from
this class.
size_t size() const:
This member returns the next column offset where the next
hexadecimal character will appear. If a maximum line length is requested and
size() does not return 0 then the last line inserted was not terminated by
a '\n' character. See also the example below.
This member's return value is undefined if no maximum line length was
requested.
STATIC MEMBER
std::string text2bin(std::string const &in):
This static member can be used to convert a series of hexadecimal
characters generated by a OHexStreambuf object back to their binary
form. E.g, when called as OHexStreambuf::text2bin("736d616c6c206976") then
the returned std::string will contain 8 characters, having respectively
the binary values 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x69, and 0x76.
This function does not verify whether its argument is properly
formed. A properly formed argument consists of an even number of hexadecimal
number characters ('0' until '9', 'a' until 'f' (or uppercase)). For
improperly formed arguments the return value is undefined.
EXAMPLE
#include <iostream>
#include <bobcat/ohexstreambuf>
using namespace std;
using namespace FBB;
int main()
{
OHexStreambuf ohex(cout, 40);
ostream out(&ohex);
out << cin.rdbuf();
if (ohex.size())
cout << '\n';
}
FILES
bobcat/ohexstreambuf - defines the class interface
SEE ALSO
bobcat(7), ofilterstreambuf(3bobcat)
BUGS
None Reported.
DISTRIBUTION FILES
bobcat_2.08.01-x.dsc: detached signature;
bobcat_2.08.01-x.tar.gz: source archive;
bobcat_2.08.01-x_i386.changes: change log;
libbobcat1_2.08.01-x_*.deb: debian package holding the
libraries;
libbobcat1-dev_2.08.01-x_*.deb: debian package holding the
libraries, headers and manual pages;
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).