FBB::Errno objects may be thrown in exceptions. As they are also
std::ostringstream objects, information may be inserted into them.
Facilitities are offered to insert information into, and to throw anonymous
FBB::Errno objects.
Errno exceptions may be thrown by several Bobcat classes. These
classes are
Arg,
ArgConfig,
BigInt,
Cidr,
ClientSocket,
CmdFinder,
CmdFinderBase,
ConfigFile,
DateTime,
DecryptBuf,
DigestBuf,
EncryptBuf,
Fork,
GetHostent,
Glob,
HMacBuf,
Hostname,
InetAddress,
level,
LocalClientSocket,
LocalServerSocket,
LocalSocketBase,
Log,
MailHeaders,
Mbuf,
Milter,
Mstream,
OFoldStream,
OFoldStreambuf,
OneKey,
Pattern,
Pipe,
Process,
Redirector,
Selector,
ServerSocket,
SocketBase,
Stat,
TempStream,
User,
Xpointer
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
std::ostringstream, std::exception
CONSTRUCTORS
Errno():
This constructor stores the current system errno value and its textual
interpretation. No textual errno conversion is stored if errno equals
0.
Errno(char const *prefix):
This constructor stores the current system errno value. To this, the
textual interpretation of errno is added unless errno equals 0. If, in
this situation, prefix is a non-empty string, the text : is first
appended to the prefix.
Errno(int errnr, char const *text = 0):
This constructor stores the provided errnr value, and the text
text. The text argument may be omitted or empty, in which case no text
will be prefixed to any additionally inserted information. With this version
of FBB::Errno, no : is added to a non-empty text argument.
The copy constructor is available.
MEMBER FUNCTIONS
All members of std::ostringstream and std::exception are
available, as FBB::Errno inherits from these classes.
char const *why() const:
Returns the initialized and inserted text. No separators are inserted
by the FBB::Errno object between the initializatin text and any text
inserted later. If separators are required, the user of the FBB::Errno
object must insert these explicitly. The same text is returned by char
const *what() const, which is part of std::exception's interface.
int which() const:
Returns the internally stored errno value: either the system-errno
value, or the value provided by the third constructor.
OVERLOADED OPERATORS
Errno const &operator<<(Errno const &in, Type const &t):
This overloaded insertion operator can be used to insert values of any
type that can also be inserted into an ostringstream object. It is
implemented as a template, with the generic Type representing the type of
the value to be inserted.
The overloaded assignment operator is not available.
STATIC MEMBERS
The following convenience functions can be used for controlled opening of
std::istream, std::ostream and std::fstream objects. If opening fails
an FBB::Errno(1) exception is thrown containing a short message stating
that the named stream could not be opened. If the stream was already open it
is closed first.
static void open(std::ifstream &in, std::string const &name,
std::ios::openmode mode = std::ios::in):
Convenience function opening the object ifstream in refers to.
static void open(std::ofstream &out, std::string const &name,
std::ios::openmode mode = std::ios::out):
Convenience function opening (creating) the object ofstream out
refers to.
static void open(std::fstream &out, std::string const &name,
std::ios::openmode mode):
Convenience function opening the object fstream out
refers to.
EXAMPLE
The following example shows the normal use of the manipulators:
if (exceptionalCondition)
throw FBB::Errno(1, "Failure") << ": Exceptional condition occurred";
FILES
bobcat/errno - defines the class interface
SEE ALSO
bobcat(7)
BUGS
None Reported.
DISTRIBUTION FILES
bobcat_3.01.00-x.dsc: detached signature;
bobcat_3.01.00-x.tar.gz: source archive;
bobcat_3.01.00-x_i386.changes: change log;
libbobcat1_3.01.00-x_*.deb: debian package holding the
libraries;
libbobcat1-dev_3.01.00-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).