The base consists of the following components:
- Logging
Logging of messages to the console, files and other sinks.
- Error and Exception Handling
Exception handling, Exception types, etc.
- Class Factory
Provides the ability of dynamic creation of objects by their unique class identifier at runtime and many more Java-like features.
- Time
Classes for representing time and time durations that provide some more convenience than their underlying boost datatypes.
- Math
Several classes, methods and tools for often needed maths, such as angles rotations, and much more.
- Geometry
Collection of geometry primitives like points, rects, lines, rasterization algorithms, etc.
- Image
Classes for typed and untyped images, that wrap the OpenCV cv::Mat and provide additional functions for convenience.
- Path
Provides classes to work with paths on the file system and additional functionalities like finding files, etc.
- Streams
Additional stream classes, like binary streams, buffered streams, compressed streams, etc.
- Singleton
Provides classes that implement the singleton software design pattern in a very generic way.
- XML
Provides classes for reading and writing and accessing XML files in a very modern and user-friendly way using iterator concepts.
- Communication and Networking
Provides wrappers and additional functionality to the boost::asio library.
- Security
Provides different hash functions and encryption techniques.
- Threads
Contains classes and helpers for concurrent computing and multi-threading.
- Using a database (SQLite)
Classes for creating and accessing databases (namely SQLite databases)