NAME¶
FBB::OHexStreambuf - Writes characters written to an ostream as hex values
SYNOPSIS¶
#include <bobcat/ohexstreambuf>
Linking option:
-lbobcat
DESCRIPTION¶
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¶
- o
- 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.
- o
- 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.
PROTECTED MEMBER FUNCTION¶
The member listed in this section implements the tasks of the comparably named
virtual function in the class’s private interface. This separates the
redefinable interface from the user-interface. The class
OHexStreambuf
can, in accordance with Liskov’s Substitution Principle, be used as a
std:streambuf; but it also offers a facility for classes deriving from
OHexStreambuf. This facility is listed here.
- o
- int pSync():
The contents of the OHexStreambuf’s internal buffer is
flushed.
STATIC MEMBER¶
- o
- 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¶
- 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).