MDL SDK API nvidia_logo_transpbg.gif Up
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 FileDescription
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.

Base API 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.

Basic Types

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.

Multithreading Support

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.

Interface Framework Technology

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

Memory Management

mi/base/ilogger.h mi::base::ILogger interface class that supports message logging.

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.