# Bobcat(7)

## C++ Classes
(libbobcat-dev_5.07.03)

## 2005-2021

## NAME

Bobcat - Overview of classes in the Bobcat library

## DESCRIPTION

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: align(3bobcat))

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

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: argconfig(3bobcat))

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

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

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: binarysearch(3bobcat))

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

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: binopsbase(3bobcat))

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

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

FBB::ClientSocket: a socket for tcp-communication with a server.
(Manpage: clientsocket(3bobcat))

FBB::CmdFinder: Command-function associations.
(Manpage: cmdfinder(3bobcat))

FBB::CmdFinderBase: Base class for CmdFinder.
(Manpage: cmdfinderbase(3bobcat))

FBB::Config: Processing standard configuration files.
(Manpage: config(3bobcat))

FBB::ConfigFile: Processing standard configuration files (deprecated, use Config).
(Manpage: configfile(3bobcat))

FBB::CryptBuf: Base class for DecryptBuf and EncryptBuf.
(Manpage: cryptbuf(3bobcat))

FBB::CSVTable: Construct tables row-by-row.
(Manpage: csvtable(3bobcat))

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

FBB::DateTime: Manipulations with date and time values.
(Manpage: datetime(3bobcat))

FBB::DecryptBuf: Decrypting information.
(Manpage: decryptbuf(3bobcat))

FBB::DiffieHellman: Computing shared keys using the Diffie-Hellman algorithm.
(Manpage: diffiehellman(3bobcat))

FBB::DigestBuf: Computing message digests.
(Manpage: digestbuf(3bobcat))

FBB::EncryptBuf: Encrypting information.
(Manpage: encryptbuf(3bobcat))

FBB::Eoi: std::streambuf offering the eoi manipulator.
(Manpage: eoi(3bobcat))

FBB::Eoi: std::streambuf offering the eoi manipulator.
(Manpage: eoi(3bobcat))

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

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

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

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

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

FBB::Field: class template retrieving and modifying position based fields in numbers using configurable number systems.
(Manpage: field(3bobcat))

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

FBB::GetHostent: Obtains hostent struct from hostname or -address.
(Manpage: gethostent(3bobcat))

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

FBB::HmacBuf: Computing HMAC message digests.
(Manpage: hmacbuf(3bobcat))

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

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

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

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

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

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

FBB::Indent: Class and manipulators performing text indentation.
(Manpage: indent(3bobcat))

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

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

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

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

FBB::ISharedStream: std::istream operations on shared memory.
(Manpage: isharedstream(3bobcat))

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

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

FBB::IRandStream: stream to extract random numbers from.
(Manpage: irandstream(3bobcat))

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

FBB::ISymCryptStreambuf: FBB::IFilterBuf specialization implementing symmetric cryptography.
(Manpage: isymcryptstreambuf(3bobcat))

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

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

FBB::Hostent: Wrapper around the hostent struct.
(Manpage: hostent(3bobcat))

FBB::level: Manipulator setting the log-level of FBB::Log objects.
(Manpage: level(3bobcat))

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

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

FBB::LocalClientSocket: a Unix domain socket for tcp-communication with a Unix domain (local) server.
(Manpage: localclientsocket(3bobcat))

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

FBB::LocalSocketBase: Base class for LocalClientSocket and LocalServerSocket.
(Manpage: localsocketbase(3bobcat))

FBB::Log: std::ostream handling log messages.
(Manpage: log(3bobcat))

FBB::LogBuf: std::streambuf handling log messages.
(Manpage: logbuf(3bobcat))

FBB::MailHeaders: extracts mail headers from SMTP-email.
(Manpage: mailheaders(3bobcat))

FBB::Manipulators: manipulators defined in the namespace FBB.
(Manpage: manipulators(3bobcat))

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

FBB::Milter: interfaces the sendmail mail filter facilities.
(Manpage: milter(3bobcat))

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

FBB::Mstream: Inserts messages into streams.
(Manpage: mstream(3bobcat))

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

FBB::OMutexStream: Mutex protected std::ostream.
(Manpage: mxstream(3bobcat))

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

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

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

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

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

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

FBB::OneKey: Single keystroke input, not requiring `Return'.
(Manpage: onekey(3bobcat))

FBB::OSharedStream: std::ostream operations on shared memory.
(Manpage: osharedstream(3bobcat))

FBB::Pattern: Regular expression pattern matching.
(Manpage: pattern(3bobcat))

FBB::Pipe: Defines a system level pipe.
(Manpage: pipe(3bobcat))

FBB::PrimeFactors: Prime-number factorization of (BigInt) values.
(Manpage: primefactors(3bobcat))

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

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

FBB::RandBuf: implements a streambuf generating random numbers.
(Manpage: randbuf(3bobcat))

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

FBB::ReadLineBuf: implements a streambuf using the Gnu readline library to allow editing an std::istream's content.
(Manpage: readlinebuf(3bobcat))

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

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

FBB::Redirector: Defines system level file redirection.
(Manpage: redirector(3bobcat))

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

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

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

FBB::Semaphore: Dijkstra's (1962) Semaphore data type.
(Manpage: semaphore(3bobcat))

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

FBB::SharedBlock: Shared memory data block info.
(Manpage: sharedblock(3bobcat))

FBB::SharedCondition: Shared memory condition variable.
(Manpage: sharedcondition(3bobcat))

FBB::SharedMemory: Shared memory structure.
(Manpage: sharedmemory(3bobcat))

FBB::SharedMutex: Mutex for shared memory.
(Manpage: sharedmutex(3bobcat))

FBB::SharedPos: Shared Memory offset controller.
(Manpage: sharedpos(3bobcat))

FBB::SharedReadme: Background info about the implementation of Bobcat's Shared Memory.
(Manpage: sharedreadme(3bobcat))

FBB::SharedSegment: Shared memory data structure.
(Manpage: sharedsegment(3bobcat))

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

FBB::SharedBuf: std::streambuf interfacing to shared memory.
(Manpage: sharedbuf(3bobcat))

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

FBB::SocketBase: Base class for ClientSocket and ServerSocket.
(Manpage: socketbase(3bobcat))

FBB::Stat: Determines file characteristics.
(Manpage: stat(3bobcat))

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

FBB::String: Offers extended std::string functionality.
(Manpage: string(3bobcat))

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

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

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

FBB::fswap: templates implementing memory bytes based swap functionality
(Manpage: fswap(3bobcat))

FBB::Table: Display tables row- or column-wise.
(Manpage: table(3bobcat))

FBB::TableBuf: Display tables row- or column-wise.
(Manpage: tablebuf(3bobcat))

FBB::TableLines: Support class for the class Table(Buf).
(Manpage: tablelines(3bobcat))

FBB::TableSupport: Support class for the class Table(Buf).
(Manpage: tablesupport(3bobcat))

FBB::TempStream: Temporary fstream.
(Manpage: tempstream(3bobcat))

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

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

FBB::User: Determines the current user's parameters from /etc/passwd.
(Manpage: user(3bobcat))

FBB::Xpointer: sets and retrieves the X-windows pointer.
(Manpage: xpointer(3bobcat))

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

## CATEGORIES

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

- COMMAND LINE INTERFACE AND CONFIGURATION FILES
- CONVERSIONS
- DATE AND TIME
- ERRORS AND MESSAGE HANDLING
- GENERIC ALGORITHM EXTENSIONS
- INTERNET / NETWORKING
- OPENSSL AND ENCRYPTION
- PATTERN MATCHING
- PROCESSES, SIGNALS, THREADS
- STREAMS AND FILES
- SHARED MEMORY
- TABLES
- VARIOUS TEMPLATES
- VARIOUS OTHER CLASSES

- 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.
  (Manpage: arg(3bobcat))

  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: argconfig(3bobcat))

  FBB::CmdFinder: Command-function associations.
  (Manpage: cmdfinder(3bobcat))

  FBB::CmdFinderBase: Base class for CmdFinder.
  (Manpage: cmdfinderbase(3bobcat))

  FBB::Config: Processing standard configuration files.
  (Manpage: configfile(3bobcat))

  FBB::ConfigFile: Processing standard configuration files (deprecated, use Config).
  (Manpage: configfile(3bobcat))

- CONVERSIONS

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

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

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

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

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

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

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

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

- DATE AND TIME

  FBB::DateTime: Manipulations with date and time values.
  (Manpage: datetime(3bobcat))

- ERRORS AND MESSAGE HANDLING

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

  FBB::level: Manipulator setting the log-level of FBB::Log objects.
  (Manpage: level(3bobcat))

  FBB::Log: std::ostream handling log messages.
  (Manpage: log(3bobcat))

  FBB::LogBuf: std::streambuf handling log messages.
  (Manpage: logbuf(3bobcat))

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

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

- 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: binarysearch(3bobcat))

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

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

- INTERNET / NETWORKING

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

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

  FBB::ClientSocket: a socket for tcp-communication with a server.
  (Manpage: clientsocket(3bobcat))

  FBB::GetHostent: Obtains hostent struct from hostname or -address.
  (Manpage: gethostent(3bobcat))

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

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

  FBB::Hostent: Wrapper around the hostent struct.
  (Manpage: hostent(3bobcat))

  FBB::LocalClientSocket: a Unix domain socket for tcp-communication with a Unix domain (local) server.
  (Manpage: localclientsocket(3bobcat))

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

  FBB::LocalSocketBase: Base class for LocalClientSocket and LocalServerSocket.
  (Manpage: localsocketbase(3bobcat))

  FBB::MailHeaders: extracts mail headers from SMTP-email.
  (Manpage: mailheaders(3bobcat))

  FBB::Milter: interfaces the sendmail mail filter facilities.
  (Manpage: milter(3bobcat))

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

  FBB::SocketBase: Base class for ClientSocket and ServerSocket.
  (Manpage: socketbase(3bobcat))

- OPENSSL AND ENCRYPTION

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

  FBB::CryptBuf: Base class for DecryptBuf and EncryptBuf.
  (Manpage: cryptbuf(3bobcat))

  FBB::DecryptBuf: Decrypting information.
  (Manpage: decryptbuf(3bobcat))

  FBB::DiffieHellman: Computing shared keys using the Diffie-Hellman algorithm.
  (Manpage: diffiehellman(3bobcat))

  FBB::DigestBuf: Computing message digests.
  (Manpage: digestbuf(3bobcat))

  FBB::EncryptBuf: Encrypting information.
  (Manpage: encryptbuf(3bobcat))

  FBB::HmacBuf: Computing HMAC message digests.
  (Manpage: hmacbuf(3bobcat))

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

  FBB::ISymCryptStreambuf: FBB::IFilterBuf specialization implementing symmetric cryptography.
  (Manpage: isymcryptstreambuf(3bobcat))

- PATTERN MATCHING

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

  FBB::Pattern: Regular expression pattern matching.
  (Manpage: pattern(3bobcat))

- PROCESSES, SIGNALS, THREADS

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

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

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

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

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

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

  FBB::Semaphore: Dijkstra's (1962) Semaphore data type.
  (Manpage: semaphore(3bobcat))

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

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

- STREAMS AND FILES

  FBB::DigestBuf: Computing message digests.
  (Manpage: digestbuf(3bobcat))

  FBB::Eoi: std::streambuf offering the eoi manipulator.
  (Manpage: eoi(3bobcat))

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

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

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

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

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

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

  FBB::IRandStream: stream to extract random numbers from.
  ((Manpage: irandstream(3bobcat)))

  FBB::ISharedStream: std::istream operations on shared memory.
  (Manpage: isharedstream(3bobcat))

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

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

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

  FBB::Mstream: Inserts messages into streams.
  (Manpage: mstream(3bobcat))

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

  FBB::OMutexStream: Mutex protected std::ostream.
  (Manpage: mxstream(3bobcat))

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

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

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

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

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

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

  FBB::OSharedStream: std::ostream operations on shared memory.
  (Manpage: osharedstream(3bobcat))

  FBB::Pipe: Defines a system level pipe.
  (Manpage: pipe(3bobcat))

  FBB::RandBuf: implements a streambuf generating random numbers.
  (Manpage: randbuf(3bobcat))

  FBB::ReadLineBuf: implements a streambuf using the Gnu readline library to allow editing an std::istream's content.
  (Manpage: readlinebuf(3bobcat))

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

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

  FBB::Redirector: Defines system level file redirection.
  (Manpage: redirector(3bobcat))

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

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

  FBB::SharedBuf: std::streambuf interfacing to shared memory.
  (Manpage: sharedbuf(3bobcat))

  FBB::Stat: Determines file characteristics.
  (Manpage: stat(3bobcat))

  FBB::TempStream: Temporary fstream.
  (Manpage: tempstream(3bobcat))

- SHARED MEMORY

  FBB::ISharedStream: std::istream operations on shared memory.
  (Manpage: isharedstream(3bobcat))

  FBB::OSharedStream: std::ostream operations on shared memory.
  (Manpage: osharedstream(3bobcat))

  FBB::SharedBlock: Shared memory data block info.
  (Manpage: sharedblock(3bobcat))

  FBB::SharedCondition: Shared memory condition variable.
  (Manpage: sharedcondition(3bobcat))

  FBB::SharedMemory: Shared memory structure.
  (Manpage: sharedmemory(3bobcat))

  FBB::SharedMutex: Mutex for shared memory.
  (Manpage: sharedmutex(3bobcat))

  FBB::SharedPos: Shared Memory offset controller.
  (Manpage: sharedpos(3bobcat))

  FBB::SharedReadme: Background info about the implementation of Bobcat's Shared Memory.
  (Manpage: sharedreadme(3bobcat))

  FBB::SharedSegment: Shared memory data structure.
  (Manpage: sharedsegment(3bobcat))

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

  FBB::SharedBuf: std::streambuf interfacing to shared memory.
  (Manpage: sharedbuf(3bobcat))

- TABLES

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

  FBB::CSVTable: Construct tables row-by-row.
  (Manpage: csvtable(3bobcat))

  FBB::Table: Display tables row- or column-wise.
  (Manpage: table(3bobcat))

  FBB::TableBuf: Display tables row- or column-wise.
  (Manpage: tablebuf(3bobcat))

  FBB::TableLines: Support class for the class Table(Buf).
  (Manpage: tablelines(3bobcat))

  FBB::TableSupport: Support class for the class Table(Buf).
  (Manpage: tablesupport(3bobcat))

- 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: binarysearch(3bobcat))

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

  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: binopsbase(3bobcat))

  FBB::Field: class template retrieving and modifying position based fields in numbers using configurable number systems.
  (Manpage: field(3bobcat))

  FBB::fswap: templates implementing memory bytes based swap functionality
  (Manpage: fswap(3bobcat))

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

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

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

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

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

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

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

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

- VARIOUS OTHER CLASSES

  FBB::CSV: Objects of this class allow easy handling of comma-separated values.
  (Manpage: csv(3bobcat))

  FBB::Indent: Class and manipulators performing text indentation.
  (Manpage: indent(3bobcat))

  FBB::Manipulators: manipulators defined in the namespace FBB.
  (Manpage: manipulators(3bobcat))

  FBB::OneKey: Single keystroke input, not requiring `Return'.
  (Manpage: onekey(3bobcat))

  FBB::PrimeFactors: Pprime-number factorization of (BigInt) values.
  (Manpage: primefactors(3bobcat))

  FBB::String: Offers extended std::string functionality.
  (Manpage: string(3bobcat))

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

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

  FBB::User: Determines the current user's parameters from /etc/passwd.
  (Manpage: user(3bobcat))

  FBB::Xpointer: sets and retrieves the X-windows pointer.
  (Manpage: xpointer(3bobcat))

## LINKING

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.

## FILES

- /usr/include/bobcat/<classname>:
- /usr/lib/libbobcat.*:
  (shared, static libraries)

## SEE ALSO

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

## BUGS

No Reported Bugs.

## BOBCAT PROJECT FILES

- https://fbb-git.gitlab.io/bobcat/: gitlab project page;
- bobcat_5.07.03-x.dsc: detached signature;
- bobcat_5.07.03-x.tar.gz: source archive;
- bobcat_5.07.03-x_i386.changes: change log;
- libbobcat1_5.07.03-x_*.deb: debian package containing the libraries;
- libbobcat1-dev_5.07.03-x_*.deb: debian package containing the libraries, headers and manual pages;

## 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).