This is a library of C++ application classes and templates that's focused on the following areas of functionality:
C++ classes for implementing Linux kernel-specific interfaces, such as event, timer, and signal file descriptors, and the inotify API.
Templates for reference-counted objects
that offer a richer set
of functionality than shared_ptr
.
The x::ref
, x::ptr
, x::const_ref
, and x::const_ptr
templates implement
semantic concepts that are analogous to the conceptual differences
between a iterator
and
const_iterator
, as well as a native pointer
and a native reference, in the C++ language.
The reference-counted object implementation is based on a virtual object superclass root, enabling proper support of multiple inheritance in the context of a reference-counted object-based framework; as well as destructor callbacks that implement useful design patterns that are frequently used in multithreaded and message-based applications.
Weak containers, a further extension of this reference-counted object framework, and reference-counted thread objects; as well as a number of high-level design patterns for multi-threaded applications, based on the C++11 thread library.
HTTP client and server classes; FTP clients; including SSL/TLS, with a reference-counted GnuTLS library classes.
Printing documents using the CUPS library.
Two optional subcomponents: an SQL database API, and LibCXXW, an X widget toolkit.
This is just a brief overview, see the table of contents for a more complete list of the classes and templates in this library. The Stasher object repository server uses this library; LibCXX was originally developed as part of Stasher. After generic classes and templates in Stasher exceeded the size and scope of all other classes and templates, they were separated into a standalone library, LibCXX.
LibCXX is free software, distributed under the terms of the GPL, version 3.