Base API Include Files
Base API offers two sets of include files.
One set consists of the single mi/base.h include file, which provides the full functionality of Base API. The other set consists of several include files named mi/base/<functional-name>.h, which provide individual parts of Base API grouped by functionality. In fact, the mi/base.h include file just includes all the other include files.
Include files are self-contained. Internal dependencies are resolved automatically. As a consequence, their inclusion is order independent.
Main Include File |
Description |
---|---|
Includes all sub-include files of Base API. |
Include Files Grouped by Component |
Description |
Documentation |
---|---|---|
Version number for Base API. |
||
Configuration support, such as compiler, platform, and operating system detection. |
||
Assertions and static assertions. |
||
Basic types of known bit sizes and small functions on them, such as three-valued comparisons, min and max. |
||
Universally unique identifiers (UUID). |
||
Basic enums, as for example used by the logger. |
||
32-bit unsigned counter mi::base::Atom32 with atomic arithmetic, increments, and decrements. |
||
Multithreading conditions, see mi::base::Condition. |
||
Multithreading locks, see mi::base::Lock. |
||
The basic extensible interface mi::base::IInterface, helper mixin class templates to define and implement interfaces, and UUID classes. |
||
Mixin class template for deriving new interface declarations, see mi::base::Interface_declare. |
||
Mixin class template for deriving new interface implementations, see mi::base::Interface_implement. |
||
Handle class template for interfaces, see mi::base::Handle. |
||
mi::base::IAllocator interface to dynamically allocate and deallocate memory. |
||
Default implementation for mi::base::IAllocator interface based on global new and delete. |
||
Standard STL allocator implementation based on an mi::base::IAllocator interface |
||
mi::base::ILogger interface class that supports message logging. |
||
mi::base::Plugin interface for support of dynamically loaded plugins. |
There may be include files that are not documented here. They are automatically included if needed and their independent use is not supported. Their naming and organization might change in the future.