bobcat






Bobcat − Overview of classes in the Bobcat library





     The classes of the Bobcat library may be used after
including bobcat/classname in sources.

     Generally, programs using the Bobcat library must be at
least linked against the Bobcat library. Refer to section
LINKING for more informatin about linking programs to
required libraries.

     All classes and other elements are defined in the FBB
namespace. For some classes manipulators are available,
which are defined in the FBB namespace. An overview of all
manipulators defined in the FBB namespace is provided by man
−e bobcat manipulators.

     Beyond this section the section CATEGORIES groups
classes that somehow belong together in various categories.

     The following classes and functions are available:

     FBB::Align: Specifies Table(Buf) column and element
alignments.
(Manpage: man −e bobcat align)

     FBB::Arg: Interfaces the command line arguments,
allowing for short− and long options. The class is
implemented as a Singleton.
(Manpage: man −e bobcat arg)

     FBB::ArgConfig: Inherits from Arg and ConfigFile
allowing for options to be specified as command line options
and/or configuration file options.  The class is implemented
as a Singleton.
(Manpage: man −e bobcat argconfig)

     FBB::A2x: Ascii−to−x conversions of any type supporting
extractions from i[string]stream objects.  (Manpage: man −e
bobcat a2x)

     FBB::BigInt: Wrapper class around the openssl BN_
functions for unlimited integer precision arithmetic.
(Manpage: man −e bobcat bigint)

     FBB::binary_search: A modification of the STL
binary_search algorithm returning the location of the
searched value in a sorted series of values.
(Manpage: man −e bobcat binarysearch)











                             ‐2‐


     FBB::BinOps: A series of function templates
implementing binary operators for classes that implement the
matching binary assignment operators themselves.
(Manpage: man −e bobcat binops)

     FBB::BinOpsBase: A class template implementing binary
operators and compound assignment operators for classes that
themselves implement swap members and members implementing
the basic binary operation on objects of their class types
themselves.
(Manpage: man −e bobcat binopsbase)

     FBB::CGI: a class implementing the facilities accessing
the data made available through the Common Gateway
Interface.
(Manpage: man −e bobcat cgi)

     FBB::Cidr: a class testing whether IP4 Internet
addresses belong to address ranges defined by Classless
Inter−Domain Routing (CIDR) address block specifications.
(Manpage: man −e bobcat cidr)

     FBB::ClientSocket: a socket for tcp−communication with
a server.
(Manpage: man −e bobcat clientsocket)

     FBB::CmdFinder: Command−function associations.
(Manpage: man −e bobcat cmdfinder)

     FBB::CmdFinderBase: Base class for CmdFinder.
(Manpage: man −e bobcat cmdfinderbase)

     FBB::ConfigFile: Processing standard configuration
files.
(Manpage: man −e bobcat configfile)

     FBB::CryptBuf: Base class for DecryptBuf and
EncryptBuf.
(Manpage: man −e bobcat cryptbuf)

     FBB::CSV4180: Objects of this class allow for easy
handling of comma−separated values (implements RFC 4180).
(Manpage: man −e bobcat csv4180)

     FBB::DateTime: Manipulations with date and time values.
(Manpage: man −e bobcat datetime)

     FBB::DecryptBuf: Decrypting information.
(Manpage: man −e bobcat decryptbuf)

     FBB::DiffieHellman: Computing shared keys using the
Diffie−Hellman algorithm.
(Manpage: man −e bobcat diffiehellman)










                             ‐3‐


     FBB::DigestBuf: Computing message digests.
(Manpage: man −e bobcat digestbuf)

     FBB::EncryptBuf: Encrypting information.
(Manpage: man −e bobcat encryptbuf)

     FBB::Eoi: std::streambuf offering the eoi manipulator.
(Manpage: man −e bobcat eoi)

     FBB::Eoi: std::streambuf offering the eoi manipulator.
(Manpage: man −e bobcat eoi)

     FBB::EoiBuf: std::streambuf offering the eoi
manipulator and a configurable stream buffer.
(Manpage: man −e bobcat eoibuf)

     FBB::Exception: objects of this class accept ostream
insertions, and are also std::exception objects.
(Manpage: man −e bobcat exception)

     FBB::Exec: Executes child processes not expecting input
and not producing standard output.
(Manpage: man −e bobcat exec)

     FBB::CerrExtractor: Executes child processes not
expecting input but maybe writing its standard error stream.
(Manpage: man −e bobcat cerrextractor)

     FBB::CoutExtractor: Executes child processes not
expecting input but maybe producing standard output.
(Manpage: man −e bobcat coutextractor)

     FBB::Fork: Defines fork(2) as part of a Template
Algorithm Design Pattern.
(Manpage: man −e bobcat fork)

     FBB::GetHostent: Obtains hostent struct from hostname
or −address.
(Manpage: man −e bobcat gethostent)

     FBB::Glob: Obtain a list of files matching a certain
pattern.
(Manpage: man −e bobcat glob)

     FBB::HmacBuf: Computing HMAC message digests.
(Manpage: man −e bobcat hmacbuf)

     FBB::Hostname: Derived from Hostent, allows the
initialization from a std::string, or from an
FBB::InetAddrress.
(Manpage: man −e bobcat hostname)

     FBB::IBase64Stream: stream implementing base64 encoding
and decoding, using a FBB::Base64Streambuf stream buffer.









                             ‐4‐


(Manpage: man −e bobcat ibase64stream)

     FBB::IBase64Buf: FBB::IFilterBuf specialization
implementing base64 encoding and decoding.
(Manpage: man −e bobcat ibase64buf)

     FBB::IFdStream: stream extracting information from a
device whose file descriptor is available.
(Manpage: man −e bobcat ifdstream)

     FBB::IFdBuf: Input stream buffer initialized by a file
descriptor.
(Manpage: man −e bobcat ifdbuf)

     FBB::IFilterBuf: std::streambuf specialization
implementing an std::istream filtering design pattern.
(Manpage: man −e bobcat ifilterbuf)

     FBB::Indent: Class and manipulators performing text
indentation.
(Manpage: man −e bobcat indent)

     FBB::InetAddress: Base class (no public constructor)
for objects representing an internet address as used with
sockets. Contains address and portnumbers.
(Manpage: man −e bobcat inetaddress)

     FBB::CinInserter: Executes child processes expecting
input but not producing standard output.
(Manpage: man −e bobcat cininserter)

     FBB::IOStream: class combining std::istream and
std::ostream features.
(Manpage: man −e bobcat iostream)

     FBB::IOBuf: std::streambuf specialization allowing
combined input and output operations.
(Manpage: man −e bobcat iobuf)

     FBB::ISharedStream: std::istream operations on shared
memory.
(Manpage: man −e bobcat isharedstream)

     FBB::IQuotedPrintableStream: stream implementing quoted
printable encoding and decoding, using a
FBB::IQuotedPrintableBuf stream buffer.
(Manpage: man −e bobcat iquotedprintablestream)

     FBB::IQuotedPrintableBuf: FBB::IFilterBuf
specialization implementing quoted printable encoding and
decoding.
(Manpage: man −e bobcat iquotedprintablebuf)











                             ‐5‐


     FBB::IRandStream: stream to extract random numbers
from.
(Manpage: man −e bobcat irandstream)

     FBB::ISymCryptStream: stream implementing symmetric
encryption and decryption, using a FBB::ISymCryptStreambuf
stream buffer.
(Manpage: man −e bobcat isymcryptstream)

     FBB::ISymCryptStreambuf: FBB::IFilterBuf specialization
implementing symmetric cryptography.
(Manpage: man −e bobcat isymcryptstreambuf)

     FBB::Iterator: a class template creating a
bidirectional iterator returning values of a specified type.
(Manpage: man −e bobcat iterator)

     FBB::Hash...: Various class templates implementing
mapping containers using hashing.
(Manpage: man −e bobcat hash)

     FBB::Hostent: Wrapper around the hostent struct.
(Manpage: man −e bobcat hostent)

     FBB::level: Manipulator setting the log−level of
FBB::Log objects.
(Manpage: man −e bobcat level)

     FBB::LinearMap: a class template container implementing
a map using a linear search algorithm.
(Manpage: man −e bobcat linearmap)

     FBB::lm: Manipulator setting the left margin of
FBB::OFoldStream objects.
(Manpage: man −e bobcat lm)

     FBB::LocalClientSocket: a Unix domain socket for
tcp−communication with a Unix domain (local) server.
(Manpage: man −e bobcat localclientsocket)

     FBB::LocalServerSocket: defines a Unix domain socket to
which clients on the local host can connect.
(Manpage: man −e bobcat localserversocket)

     FBB::LocalSocketBase: Base class for LocalClientSocket
and LocalServerSocket.
(Manpage: man −e bobcat localsocketbase)

     FBB::Log: std::ostream handling log messages.
(Manpage: man −e bobcat log)

     FBB::LogBuf: std::streambuf handling log messages.
(Manpage: man −e bobcat logbuf)










                             ‐6‐


     FBB::MailHeaders: extracts mail headers from
SMTP−email.
(Manpage: man −e bobcat mailheaders)

     FBB::Manipulators: manipulators defined in the
namespace FBB.
(Manpage: man −e bobcat manipulators)

     FBB::Mbuf: std::streambuf specialization for inserting
messages, mainly used by FBB::Mstream objects.
(Manpage: man −e bobcat mbuf)

     FBB::Milter: interfaces the sendmail mail filter
facilities.
(Manpage: man −e bobcat milter)

     FBB::mlm: Manipulator modifying the left margin of
FBB::OFoldStream objects.
(Manpage: man −e bobcat mlm)

     FBB::Mstream: Inserts messages into streams.
(Manpage: man −e bobcat mstream)

     FBB::MultiBuf: std::streambuf specializations
performing insertions to multiple std::ostream objects.
(Manpage: man −e bobcat multibuf)

     FBB::OMutexStream: Mutex protected std::ostream.
(Manpage: man −e bobcat mxstream)

     FBB::OFdStream: stream inserting information into a
device whose file descriptor is available.
(Manpage: man −e bobcat ofdstream)

     FBB::OFdBuf: Output stream buffer initialized by a file
descriptor.
(Manpage: man −e bobcat ofdbuf)

     FBB::OFilterBuf: std::streambuf specialization
implementing an std::ostream filtering design pattern.
(Manpage: man −e bobcat ofilterbuf)

     FBB::OFoldStream: std::ostream using an OFoldBuf as its
streambuf.
(Manpage: man −e bobcat ofoldstream)

     FBB::OFoldBuf: OFilterBuf (std::streambuf)
specialization folding text lines between left and right
margins.
(Manpage: man −e bobcat ofoldbuf)

     FBB::OHexBuf: OHexBuf (std::streambuf) specialization
inserting characters into a stream by their hex values.
(Manpage: man −e bobcat ohexbuf)









                             ‐7‐


     FBB::OneKey: Single keystroke input, not requiring
‘Return’.
(Manpage: man −e bobcat onekey)

     FBB::OSharedStream: std::ostream operations on shared
memory.
(Manpage: man −e bobcat osharedstream)

     FBB::Pattern: Regular expression pattern matching.
(Manpage: man −e bobcat pattern)

     FBB::Pipe: Defines a system level pipe.
(Manpage: man −e bobcat pipe)

     FBB::PrimeFactors: Prime−number factorization of
(BigInt) values.
(Manpage: man −e bobcat primefactors)

     FBB::Process: Runs child processes, defining pipes
between parents and child processes.
(Manpage: man −e bobcat process)

     FBB::PtrIter: Input iterator whose dereferenced value
returns a pointer rather than a reference to an element.
Also offers: a ptrIter function template.
(Manpage: man −e bobcat ptriter)

     FBB::RandBuf: implements a streambuf generating random
numbers.
(Manpage: man −e bobcat randbuf)

     FBB::Ranger: a class template creating ranges that are
accepted by range−based for−loops. Also offered: a ranger
function template.
(Manpage: man −e bobcat ranger)

     FBB::ReadLineBuf: implements a streambuf using the Gnu
readline library to allow editing an std::istream’s
contents.
(Manpage: man −e bobcat readlinebuf)

     FBB::ReadLineHistory: provides access to the history of
lines read from a ReadLineBuf.
(Manpage: man −e bobcat readlinehistory)

     FBB::ReadLineStream: std::istream class using a
ReadLineBuf for its std::streambuf.
(Manpage: man −e bobcat readlinestream)

     FBB::Redirector: Defines system level file redirection.
(Manpage: man −e bobcat redirector)

     FBB::repeat: Two short extensions of the STL for_each
generic algorithm.









                             ‐8‐


(Manpage: man −e bobcat repeat)

     FBB::ReverseIterator: a class template creating a
bidirectional reverse iterator returning values of a
specified type.
(Manpage: man −e bobcat reverseiterator)

     FBB::Selector: Offers timed delays and multiple file
I/O.
(Manpage: man −e bobcat selector)

     FBB::Semaphore: Dijkstra’s (1962) Semaphore data type.
(Manpage: man −e bobcat semaphore)

     FBB::ServerSocket: defines a socket to which clients
can connect.
(Manpage: man −e bobcat serversocket)

     FBB::SharedBlock: Shared memory data block info.
(Manpage: man −e bobcat sharedblock)

     FBB::SharedCondition: Shared memory condition variable.
(Manpage: man −e bobcat sharedcondition)

     FBB::SharedMemory: Shared memory structure.
(Manpage: man −e bobcat sharedmemory)

     FBB::SharedMutex: Mutex for shared memory.
(Manpage: man −e bobcat sharedmutex)

     FBB::SharedPos: Shared Memory offset controller.
(Manpage: man −e bobcat sharedpos)

     FBB::SharedReadme: Background info about the
implementation of Bobcat’s Shared Memory.
(Manpage: man −e bobcat sharedreadme)

     FBB::SharedSegment: Shared memory data structure.
(Manpage: man −e bobcat sharedsegment)

     FBB::SharedStream: I/O operations on shared memory.
(Manpage: man −e bobcat sharedstream)

     FBB::SharedBuf: std::streambuf interfacing to shared
memory.
(Manpage: man −e bobcat sharedbuf)

     FBB::Signal: Defines signals, allowing signal handlers
to use object’s data members c.q. to call object’s members
functions.
(Manpage: man −e bobcat signal)

     FBB::SocketBase: Base class for ClientSocket and
ServerSocket.









                             ‐9‐


(Manpage: man −e bobcat socketbase)

     FBB::Stat: Determines file characteristics.
(Manpage: man −e bobcat stat)

     FBB::StdExtractor: Executes child processes not
expecting input but maybe writing their standard output and
error streams.
(Manpage: man −e bobcat stdextractor)

     FBB::String: Offers extended std::string functionality.
(Manpage: man −e bobcat string)

     FBB::StringLine: Offers operator>> extracting lines
from std::istream objects.
(Manpage: man −e bobcat stringline)

     FBB::SyslogBuf: streambuf to Buffer generating
syslog(3) messages.
(Manpage: man −e bobcat syslogbuf)

     FBB::SyslogStream: stream to Output stream inserting
syslog(3) messages.
(Manpage: man −e bobcat syslogstream)

     FBB::fswap: templates implementing memory bytes based
swap functionality
(Manpage: man −e bobcat fswap)

     FBB::Table: Display tables row− or column−wise.
(Manpage: man −e bobcat table)

     FBB::TableBuf: Display tables row− or column−wise.
(Manpage: man −e bobcat tablebuf)

     FBB::TableLines: Support class for the class
Table(Buf).
(Manpage: man −e bobcat tablelines)

     FBB::TableSupport: Support class for the class
Table(Buf).
(Manpage: man −e bobcat tablesupport)

     FBB::TempStream: Temporary fstream.
(Manpage: man −e bobcat tempstream)

     FBB::Tty: Controls echoing of characters entered at the
terminal.
(Manpage: man −e bobcat tty)

     FBB::TypeTrait: Traits class template to determine
various characteristics of types.
(Manpage: man −e bobcat typetrait)










                            ‐10‐


     FBB::User: Determines the current user’s parameters
from /etc/passwd.
(Manpage: man −e bobcat user)

     FBB::Xpointer: sets and retrieves the X−windows
pointer.
(Manpage: man −e bobcat xpointer)

     FBB::X2a: x−to−Ascii conversions of any type supporting
insertions into o[string]stream objects.
(Manpage: man −e bobcat x2a)





     This section groups classes that somehow belong
together. The following categories are offered:

o    COMMAND LINE INTERFACE AND CONFIGURATION FILES

o    CONVERSIONS

o    DATE AND TIME

o    ERRORS AND MESSAGE HANDLING

o    GENERIC ALGORITHM EXTENSIONS

o    INTERNET / NETWORKING

o    OPENSSL AND ENCRYPTION

o    PATTERN MATCHING

o    PROCESSES, SIGNALS, THREADS

o    STREAMS AND FILES

o    SHARED MEMORY

o    TABLES

o    VARIOUS TEMPLATES

o    VARIOUS OTHER CLASSES



o    COMMAND LINE INTERFACE AND CONFIGURATION FILES

     FBB::Arg: Interfaces the command line arguments,
     allowing for short− and long options. The class is
     implemented as a Singleton.









                            ‐11‐


     (Manpage: man −e bobcat arg)

     FBB::ArgConfig: Inherits from Arg and ConfigFile
     allowing for options to be specified as command line
     options and/or configuration file options.  The class
     is implemented as a Singleton.
     (Manpage: man −e bobcat argconfig)

     FBB::CmdFinder: Command−function associations.
     (Manpage: man −e bobcat cmdfinder)

     FBB::CmdFinderBase: Base class for CmdFinder.
     (Manpage: man −e bobcat cmdfinderbase)

     FBB::ConfigFile: Processing standard configuration
     files.
     (Manpage: man −e bobcat configfile)


o    CONVERSIONS

     FBB::A2x: Ascii−to−x conversions of any type supporting
     extractions from i[string]stream objects.  (Manpage:
     man −e bobcat a2x)

     FBB::BigInt: Wrapper class around the openssl BN_
     functions for unlimited integer precision arithmetic.
     (Manpage: man −e bobcat bigint)

     FBB::CSV4180: Objects of this class allow easy handling
     of comma−separated values (implements RFC 4180).
     (Manpage: man −e bobcat csv)

     FBB::IBase64Stream: stream implementing base64 encoding
     and decoding, using a FBB::Base64Streambuf stream
     buffer.
     (Manpage: man −e bobcat ibase64stream)

     FBB::IBase64Buf: FBB::IFilterBuf specialization
     implementing base64 encoding and decoding.
     (Manpage: man −e bobcat ibase64buf)

     FBB::IQuotedPrintableStream: stream implementing quoted
     printable encoding and decoding, using a
     FBB::IQuotedPrintableBuf stream buffer.
     (Manpage: man −e bobcat iquotedprintablestream)

     FBB::IQuotedPrintableBuf: FBB::IFilterBuf
     specialization implementing quoted printable encoding
     and decoding.
     (Manpage: man −e bobcat iquotedprintablebuf)

     FBB::X2a: x−to−Ascii conversions of any type supporting
     insertions into o[string]stream objects.









                            ‐12‐


     (Manpage: man −e bobcat x2a)


o    DATE AND TIME

     FBB::DateTime: Manipulations with date and time values.
     (Manpage: man −e bobcat datetime)


o    ERRORS AND MESSAGE HANDLING

     FBB::Exception: objects of this class accept ostream
     insertions, and are also std::exception objects.
     (Manpage: man −e bobcat exception)

     FBB::level: Manipulator setting the log−level of
     FBB::Log objects.
     (Manpage: man −e bobcat level)

     FBB::Log: std::ostream handling log messages.
     (Manpage: man −e bobcat log)

     FBB::LogBuf: std::streambuf handling log messages.
     (Manpage: man −e bobcat logbuf)

     FBB::SyslogBuf: streambuf to Buffer generating
     syslog(3) messages.
     (Manpage: man −e bobcat syslogbuf)

     FBB::SyslogStream: stream to Output stream inserting
     syslog(3) messages.
     (Manpage: man −e bobcat syslogstream)


o    GENERIC ALGORITHM EXTENSIONS

     FBB::binary_search: A modification of the STL
     binary_search algorithm returning the location of the
     searched value in a sorted series of values.
     (Manpage: man −e bobcat binarysearch)

     FBB::LinearMap: a class template container implementing
     a map using a linear search algorithm.
     (Manpage: man −e bobcat linearmap)

     FBB::repeat: Two short extensions of the STL for_each
     generic algorithm.
     (Manpage: man −e bobcat repeat)


o    INTERNET / NETWORKING

     FBB::CGI: a class implementing the facilities accessing
     the data made available through the Common Gateway









                            ‐13‐


     Interface.
     (Manpage: man −e bobcat cgi)

     FBB::Cidr: a class testing whether IP4 Internet
     addresses belong to address ranges defined by Classless
     Inter−Domain Routing (CIDR) address block
     specifications.
     (Manpage: man −e bobcat cidr)

     FBB::ClientSocket: a socket for tcp−communication with
     a server.
     (Manpage: man −e bobcat clientsocket)

     FBB::GetHostent: Obtains hostent struct from hostname
     or −address.
     (Manpage: man −e bobcat gethostent)

     FBB::Hostname: Derived from Hostent, allows the
     initialization from a std::string, or from an
     FBB::InetAddrress.
     (Manpage: man −e bobcat hostname)

     FBB::InetAddress: Base class (no public constructor)
     for objects representing an internet address as used
     with sockets. Contains address and portnumbers.
     (Manpage: man −e bobcat inetaddress)

     FBB::Hostent: Wrapper around the hostent struct.
     (Manpage: man −e bobcat hostent)

     FBB::LocalClientSocket: a Unix domain socket for
     tcp−communication with a Unix domain (local) server.
     (Manpage: man −e bobcat localclientsocket)

     FBB::LocalServerSocket: defines a Unix domain socket to
     which clients on the local host can connect.
     (Manpage: man −e bobcat localserversocket)

     FBB::LocalSocketBase: Base class for LocalClientSocket
     and LocalServerSocket.
     (Manpage: man −e bobcat localsocketbase)

     FBB::MailHeaders: extracts mail headers from
     SMTP−email.
     (Manpage: man −e bobcat mailheaders)

     FBB::Milter: interfaces the sendmail mail filter
     facilities.
     (Manpage: man −e bobcat milter)

     FBB::ServerSocket: defines a socket to which clients
     can connect.
     (Manpage: man −e bobcat serversocket)










                            ‐14‐


     FBB::SocketBase: Base class for ClientSocket and
     ServerSocket.
     (Manpage: man −e bobcat socketbase)


o    OPENSSL AND ENCRYPTION

     FBB::BigInt: Wrapper class around the openssl BN_
     functions for unlimited integer precision arithmetic.
     (Manpage: man −e bobcat bigint)

     FBB::CryptBuf: Base class for DecryptBuf and
     EncryptBuf.
     (Manpage: man −e bobcat cryptbuf)

     FBB::DecryptBuf: Decrypting information.
     (Manpage: man −e bobcat decryptbuf)

     FBB::DiffieHellman: Computing shared keys using the
     Diffie−Hellman algorithm.
     (Manpage: man −e bobcat diffiehellman)

     FBB::DigestBuf: Computing message digests.
     (Manpage: man −e bobcat digestbuf)

     FBB::EncryptBuf: Encrypting information.
     (Manpage: man −e bobcat encryptbuf)

     FBB::HmacBuf: Computing HMAC message digests.
     (Manpage: man −e bobcat hmacbuf)

     FBB::ISymCryptStream: stream implementing symmetric
     encryption and decryption, using a
     FBB::ISymCryptStreambuf stream buffer.
     (Manpage: man −e bobcat isymcryptstream)

     FBB::ISymCryptStreambuf: FBB::IFilterBuf specialization
     implementing symmetric cryptography.
     (Manpage: man −e bobcat isymcryptstreambuf)


o    PATTERN MATCHING

     FBB::Glob: Obtain a list of files matching a certain
     pattern.
     (Manpage: man −e bobcat glob)

     FBB::Pattern: Regular expression pattern matching.
     (Manpage: man −e bobcat pattern)


o    PROCESSES, SIGNALS, THREADS











                            ‐15‐


     FBB::Exec: Executes child processes not expecting input
     and not producing standard output.
     (Manpage: man −e bobcat exec)

     FBB::CerrExtractor: Executes child processes not
     expecting input but maybe writing its standard error
     stream.
     (Manpage: man −e bobcat cerrextractor)

     FBB::CoutExtractor: Executes child processes not
     expecting input but maybe producing standard output.
     (Manpage: man −e bobcat coutextractor)

     FBB::Fork: Defines fork(2) as part of a Template
     Algorithm Design Pattern.
     (Manpage: man −e bobcat fork)

     FBB::CinInserter: Executes child processes expecting
     input but not producing standard output.
     (Manpage: man −e bobcat cininserter)

     FBB::Process: Runs child processes, defining pipes
     between parents and child processes.
     (Manpage: man −e bobcat process)

     FBB::Semaphore: Dijkstra’s (1962) Semaphore data type.
     (Manpage: man −e bobcat semaphore)

     FBB::Signal: Defines signals, allowing signal handlers
     to use object’s data members c.q. to call object’s
     members functions.
     (Manpage: man −e bobcat signal)

     FBB::StdExtractor: Executes child processes not
     expecting input but maybe writing their standard output
     and error streams.
     (Manpage: man −e bobcat stdextractor)


o    STREAMS AND FILES

     FBB::DigestBuf: Computing message digests.
     (Manpage: man −e bobcat digestbuf)

     FBB::Eoi: std::streambuf offering the eoi manipulator.
     (Manpage: man −e bobcat eoi)

     FBB::EoiBuf: std::streambuf offering the eoi
     manipulator and a configurable stream buffer.
     (Manpage: man −e bobcat eoibuf)

     FBB::IFdStream: stream extracting information from a
     device whose file descriptor is available.
     (Manpage: man −e bobcat ifdstream)









                            ‐16‐


     FBB::IFdBuf: Input stream buffer initialized by a file
     descriptor.
     (Manpage: man −e bobcat ifdbuf)

     FBB::IFilterBuf: std::streambuf specialization
     implementing an std::istream filtering design pattern.
     (Manpage: man −e bobcat ifilterbuf)

     FBB::IOStream: class combining std::istream and
     std::ostream features.
     (Manpage: man −e bobcat iostream)

     FBB::IOBuf: std::streambuf specialization allowing
     combined input and output operations.
     (Manpage: man −e bobcat iobuf)

     FBB::IRandStream: stream to extract random numbers
     from.
     ((Manpage: man −e bobcat irandstream))

     FBB::ISharedStream: std::istream operations on shared
     memory.
     (Manpage: man −e bobcat isharedstream)

     FBB::lm: Manipulator setting the left margin of
     FBB::OFoldStream objects.
     (Manpage: man −e bobcat lm)

     FBB::Mbuf: std::streambuf specialization for inserting
     messages, mainly used by FBB::Mstream objects.
     (Manpage: man −e bobcat mbuf)

     FBB::mlm: Manipulator modifying the left margin of
     FBB::OFoldStream objects.
     (Manpage: man −e bobcat mlm)

     FBB::Mstream: Inserts messages into streams.
     (Manpage: man −e bobcat mstream)

     FBB::MultiBuf: std::streambuf specializations
     performing insertions to multiple std::ostream objects.
     (Manpage: man −e bobcat multibuf)

     FBB::OMutexStream: Mutex protected std::ostream.
     (Manpage: man −e bobcat mxstream)

     FBB::OFdStream: stream inserting information into a
     device whose file descriptor is available.
     (Manpage: man −e bobcat ofdstream)

     FBB::OFdBuf: Output stream buffer initialized by a file
     descriptor.
     (Manpage: man −e bobcat ofdbuf)










                            ‐17‐


     FBB::OFilterBuf: std::streambuf specialization
     implementing an std::ostream filtering design pattern.
     (Manpage: man −e bobcat ofilterbuf)

     FBB::OFoldStream: std::ostream using an OFoldBuf as its
     streambuf.
     (Manpage: man −e bobcat ofoldstream)

     FBB::OFoldBuf: OFilterBuf (std::streambuf)
     specialization folding text lines between left and
     right margins.
     (Manpage: man −e bobcat ofoldbuf)

     FBB::OHexBuf: OHexBuf (std::streambuf) specialization
     inserting characters into a stream by their hex values.
     (Manpage: man −e bobcat ohexbuf)

     FBB::OSharedStream: std::ostream operations on shared
     memory.
     (Manpage: man −e bobcat osharedstream)

     FBB::Pipe: Defines a system level pipe.
     (Manpage: man −e bobcat pipe)

     FBB::RandBuf: implements a streambuf generating random
     numbers.
     (Manpage: man −e bobcat randbuf)

     FBB::ReadLineBuf: implements a streambuf using the Gnu
     readline library to allow editing an std::istream’s
     contents.
     (Manpage: man −e bobcat readlinebuf)

     FBB::ReadLineHistory: provides access to the history of
     lines read from a ReadLineBuf.
     (Manpage: man −e bobcat readlinehistory)

     FBB::ReadLineStream: std::istream class using a
     ReadLineBuf for its std::streambuf.
     (Manpage: man −e bobcat readlinestream)

     FBB::Redirector: Defines system level file redirection.
     (Manpage: man −e bobcat redirector)

     FBB::Selector: Offers timed delays and multiple file
     I/O.
     (Manpage: man −e bobcat selector)

     FBB::SharedStream: I/O operations on shared memory.
     (Manpage: man −e bobcat sharedstream)

     FBB::SharedBuf: std::streambuf interfacing to shared
     memory.
     (Manpage: man −e bobcat sharedbuf)









                            ‐18‐


     FBB::Stat: Determines file characteristics.
     (Manpage: man −e bobcat stat)

     FBB::TempStream: Temporary fstream.
     (Manpage: man −e bobcat tempstream)


o    SHARED MEMORY

     FBB::ISharedStream: std::istream operations on shared
     memory.
     (Manpage: man −e bobcat isharedstream)

     FBB::OSharedStream: std::ostream operations on shared
     memory.
     (Manpage: man −e bobcat osharedstream)

     FBB::SharedBlock: Shared memory data block info.
     (Manpage: man −e bobcat sharedblock)

     FBB::SharedCondition: Shared memory condition variable.
     (Manpage: man −e bobcat sharedcondition)

     FBB::SharedMemory: Shared memory structure.
     (Manpage: man −e bobcat sharedmemory)

     FBB::SharedMutex: Mutex for shared memory.
     (Manpage: man −e bobcat sharedmutex)

     FBB::SharedPos: Shared Memory offset controller.
     (Manpage: man −e bobcat sharedpos)

     FBB::SharedReadme: Background info about the
     implementation of Bobcat’s Shared Memory.
     (Manpage: man −e bobcat sharedreadme)

     FBB::SharedSegment: Shared memory data structure.
     (Manpage: man −e bobcat sharedsegment)

     FBB::SharedStream: I/O operations on shared memory.
     (Manpage: man −e bobcat sharedstream)

     FBB::SharedBuf: std::streambuf interfacing to shared
     memory.
     (Manpage: man −e bobcat sharedbuf)


o    TABLES

     FBB::Align: Specifies Table(Buf) column and element
     alignments.
     (Manpage: man −e bobcat align)











                            ‐19‐


     FBB::Table: Display tables row− or column−wise.
     (Manpage: man −e bobcat table)

     FBB::TableBuf: Display tables row− or column−wise.
     (Manpage: man −e bobcat tablebuf)

     FBB::TableLines: Support class for the class
     Table(Buf).
     (Manpage: man −e bobcat tablelines)

     FBB::TableSupport: Support class for the class
     Table(Buf).
     (Manpage: man −e bobcat tablesupport)


o    VARIOUS TEMPLATES

     FBB::binary_search: A modification of the STL
     binary_search algorithm returning the location of the
     searched value in a sorted series of values.
     (Manpage: man −e bobcat binarysearch)

     FBB::BinOps: A series of function templates
     implementing binary operators for classes that
     implement the matching binary assignment operators
     themselves.
     (Manpage: man −e bobcat binops)

     FBB::BinOpsBase: A class template implementing binary
     operators and compound assignment operators for classes
     that themselves implement swap members and members
     implementing the basic binary operation on objects of
     their class types themselves.
     (Manpage: man −e bobcat binopsbase)

     FBB::fswap: templates implementing memory bytes based
     swap functionality
     (Manpage: man −e bobcat fswap)

     FBB::Hash...: Various class templates implementing
     mapping containers using hashing.
     (Manpage: man −e bobcat hash)

     FBB::Iterator: a class template creating a
     bidirectional iterator returning values of a specified
     type.
     (Manpage: man −e bobcat iterator)

     FBB::LinearMap: a class template container implementing
     a map using a linear search algorithm.
     (Manpage: man −e bobcat linearmap)

     FBB::PtrIter: Input iterator whose dereferenced value
     returns a pointer rather than a reference to an









                            ‐20‐


     element. Also offers: a ptrIter function template.
     (Manpage: man −e bobcat ptriter)

     FBB::Ranger: a class template creating ranges that are
     accepted by range−based for−loops. Also offered: a
     ranger function template.
     (Manpage: man −e bobcat ranger)

     FBB::repeat: Two short extensions of the STL for_each
     generic algorithm.
     (Manpage: man −e bobcat repeat)

     FBB::ReverseIterator: a class template creating a
     bidirectional reverse iterator returning values of a
     specified type.
     (Manpage: man −e bobcat reverseiterator)

     FBB::TypeTrait: Traits class template to determine
     various characteristics of types.
     (Manpage: man −e bobcat typetrait)


o    VARIOUS OTHER CLASSES

     FBB::CSV: Objects of this class allow easy handling of
     comma−separated values.
     (Manpage: man −e bobcat csv)

     FBB::Indent: Class and manipulators performing text
     indentation.
     (Manpage: man −e bobcat indent)

     FBB::Manipulators: manipulators defined in the
     namespace FBB.
     (Manpage: man −e bobcat manipulators)

     FBB::OneKey: Single keystroke input, not requiring
     ‘Return’.
     (Manpage: man −e bobcat onekey)

     FBB::PrimeFactors: Pprime−number factorization of
     (BigInt) values.
     (Manpage: man −e bobcat primefactors)

     FBB::String: Offers extended std::string functionality.
     (Manpage: man −e bobcat string)

     FBB::StringLine: Offers operator>> extracting lines
     from std::istream objects.
     (Manpage: man −e bobcat stringline)

     FBB::Tty: Controls echoing of characters entered at the
     terminal.
     (Manpage: man −e bobcat tty)









                            ‐21‐


     FBB::User: Determines the current user’s parameters
     from /etc/passwd.
     (Manpage: man −e bobcat user)

     FBB::Xpointer: sets and retrieves the X−windows
     pointer.
     (Manpage: man −e bobcat xpointer)





     To link programs against the shared Bobcat library
(e.g., libbobcat5.so) it is usually sufficient to merely
specify −lbobcat. E.g.,

    g++ −−std=c++2a main.cc −lbobcat



     Due to a change in library handling by the linker (cf.
http://fedoraproject.org/wiki/UnderstandingDSOLinkChange and
https://wiki.debian.org/ToolChain/DSOLinking), implemented
in 2013, libraries that are indirectly required are no
longer automatically linked to your program. With some
classes (e.g., BigInt) the libcrypto library must also be
specified, and programs using such classes must be linked
against bobcat and crypto:

    g++ −−std=c++2a main.cc −lbobcat −lcrypto

Man−pages of classes requiring additional libraries mention
these additional libraries in their SYNOPSIS sections.

     When using static linking, the situation is slightly
more problematic, and no general rule can be provided here.
To create a statically linked program the flag −static must
be provided, but in addition the −pthread flag must often be
specified as well. If, when statically linking your program,
undefined references to pthread_... identifiers are
reported, then that is a sure sign that you need to provide
the −pthread flag as well.

     When using static linking additional libraries, not
specified at the man−pages, may also be required. E.g., when
using the Xpointer class and using static linking, the
command becomes:

    g++  main.cc −static −pthread −lbobcat −lX11 −lxcb  −lXdmcp −lXau

When encountering undefined references when using static
linking missing libraries may be suggested by the linker or
by its error messages. Alternatively, the missing libraries
may be found by searching the Internet.









                            ‐22‐




o    /usr/include/bobcat/<classname>:

o    /usr/lib/libbobcat.*:
     (shared, static libraries)



The individual bobcat/3<class> header files, with man−pages
accessible using man −e bobcat class (all lowercase names)


No Reported Bugs.




o    bobcat_5.02.00−x.dsc: detached signature;

o    bobcat_5.02.00−x.tar.gz: source archive;

o    bobcat_5.02.00−x_i386.changes: change log;

o    libbobcat1_5.02.00−x_*.deb: debian package holding the
     libraries;

o    libbobcat1−dev_5.02.00−x_*.deb: debian package holding
     the libraries, headers and manual pages;

o    http://sourceforge.net/projects/bobcat: public archive
     location;



Bobcat is an acronym of ‘Brokken’s Own Base Classes And
Templates’.


This is free software, distributed under the terms of the
GNU General Public License (GPL).


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