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 |
---|---|
mi/base.h | Includes all sub-include files of Base API. |
Include Files Grouped by Component | Description | Documentation |
---|---|---|
mi/base/version.h | Version number for Base API. | Versioning of the Base API |
mi/base/config.h | Configuration support, such as compiler, platform, and operating system detection. | Configuration of the Base API |
mi/base/assert.h | Assertions and static assertions. | |
mi/base/types.h | Basic types of known bit sizes and small functions on them, such as three-valued comparisons, min and max . | Basic Types |
mi/base/uuid.h | Universally unique identifiers (UUID). | Basic Types |
mi/base/enums.h | Basic enums, as for example used by the logger. | |
mi/base/atom.h | 32-bit unsigned counter mi::base::Atom32 with atomic arithmetic, increments, and decrements. | Multithreading Support |
mi/base/condition.h | Multithreading conditions, see mi::base::Condition. | Multithreading Support |
mi/base/lock.h | Multithreading locks, see mi::base::Lock. | |
mi/base/iinterface.h | The basic extensible interface mi::base::IInterface, helper mixin class templates to define and implement interfaces, and UUID classes. | Interface Framework Technology |
mi/base/interface_declare.h | Mixin class template for deriving new interface declarations, see mi::base::Interface_declare. | Interface Framework Technology |
mi/base/interface_implement.h | Mixin class template for deriving new interface implementations, see mi::base::Interface_implement. | Interface Framework Technology |
mi/base/interface_merger.h | Mixin class template for merging the implementation of one interface with a second interface, see mi::base::Interface_merger. | Interface Framework Technology |
mi/base/handle.h | Handle class template for interfaces, see mi::base::Handle. | |
mi/base/iallocator.h | mi::base::IAllocator interface to dynamically allocate and deallocate memory. | Memory Management |
mi/base/default_allocator.h | Default implementation for mi::base::IAllocator interface based on global new and delete. | Memory Management |
mi/base/std_allocator.h | Standard STL allocator implementation based on an mi::base::IAllocator interface | |
mi/base/ilogger.h | mi::base::ILogger interface class that supports message logging. | |
mi/base/plugin.h | mi::base::Plugin interface for support of dynamically loaded plugins. | Plugin Support |
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.