Om  1.0.0
A universal framework for multimedia simulation
Namespaces | Macros | Typedefs
omConfig.h File Reference
#include <cstddef>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <new>
#include <limits>
#include <assert.h>

Namespaces

 om
 The enclosing namespace for the entire Om library.
 
 om::data
 A namespace containing data manipulation classes: strings, buffers, and hashing.
 
 om::exceptions
 A namespace containing various types of commonly used exception classes.
 
 om::fs
 A namespace containing classes that provide ways to access and manipulate file systems.
 
 om::io
 A namespace containing classes that provide functionality for streaming data input and output.
 
 om::lang
 A namespace containing classes that extend the basic functionality of C++.
 
 om::math
 A namespace containing classes and functions that do fast math operations.
 
 om::system
 A namespace containing classes that manage system resources like CPU, GPU, memory, and displays.
 
 om::threads
 A namespace containing classes that provide ways to create, manage, and synchronize threads.
 
 om::time
 A namespace containing classes that are related to keeping track of time.
 
 om::util
 A namespace containing data structure classes and memory manipulation functions.
 

Macros

#define OM_DISABLE_ASSERTIONS   0
 Define whether or not to turn off all assertion (including assertions active during release-mode builds). More...
 
#define OM_MALLOC(X)   (std::malloc(X))
 The function to use for all library memory allocations. More...
 
#define OM_FREE(X)   (std::free(X))
 The function to use for all library memory deallocations. More...
 
#define OM_STRINGIFIY_WRAPPER(x)   #x
 Define a macro that converts its argument to its literal string representation. More...
 
#define OM_STRINGIFY(x)   OM_STRINGIFIY_WRAPPER(x)
 
#define OM_INLINE   inline
 The inlining procedure to use for methods that should be inlined. More...
 
#define OM_FORCE_INLINE   inline
 
#define OM_NO_INLINE
 
#define OM_ALIGN(alignment)
 The alignment declaration to be use when aligning structure/class members. More...
 
#define OM_EXPORT
 
#define OM_ALIGNED_MALLOC(size, alignment)   (OM_MALLOC(size))
 The function to use when allocating aligned blocks of memory. More...
 
#define OM_ALIGNED_FREE(X)   (OM_FREE(X))
 The function to use when freeing an aligned block of memory. More...
 
#define OM_DEPRECATED
 The marker that is used when defining methods, types, and variables as deprecated. More...
 
#define OM_DEBUG_ASSERT(X)   ((void)0)
 
#define OM_DEBUG_ASSERT_MESSAGE(X, MESSAGE)   ((void)0)
 
#define OM_DEBUG_ASSERT_MESSAGE_CODE(X, MESSAGE, CODE)   ((void)0)
 
#define OM_ASSERT(X)   assert(X)
 
#define OM_ASSERT_MESSAGE(X, MESSAGE)   { ( X ? 0 : std::printf("%s\n",MESSAGE)); assert(X); }
 
#define OM_ASSERT_MESSAGE_CODE(X, MESSAGE, CODE)
 
#define OM_LITTLE_ENDIAN
 
#define NULL   ((void *)0)
 
#define OM_NAMESPACE_START   namespace om {
 
#define OM_NAMESPACE_END   };
 
#define OM_DATA_NAMESPACE_START   namespace om { namespace data {
 
#define OM_DATA_NAMESPACE_END   }; };
 
#define OM_EXCEPTIONS_NAMESPACE_START   namespace om { namespace exceptions {
 
#define OM_EXCEPTIONS_NAMESPACE_END   }; };
 
#define OM_FILE_SYSTEM_NAMESPACE_START   namespace om { namespace fs {
 
#define OM_FILE_SYSTEM_NAMESPACE_END   }; };
 
#define OM_IO_NAMESPACE_START   namespace om { namespace io {
 
#define OM_IO_NAMESPACE_END   }; };
 
#define OM_LANGUAGE_INTERNAL_NAMESPACE_START   namespace om { namespace lang { namespace internal {
 
#define OM_LANGUAGE_INTERNAL_NAMESPACE_END   }; }; };
 
#define OM_LANGUAGE_NAMESPACE_START   namespace om { namespace lang {
 
#define OM_LANGUAGE_NAMESPACE_END   }; };
 
#define OM_MATH_NAMESPACE_START   namespace om { namespace math {
 
#define OM_MATH_NAMESPACE_END   }; };
 
#define OM_SYSTEM_NAMESPACE_START   namespace om { namespace system {
 
#define OM_SYSTEM_NAMESPACE_END   }; };
 
#define OM_THREADS_NAMESPACE_START   namespace om { namespace threads {
 
#define OM_THREADS_NAMESPACE_END   }; };
 
#define OM_TIME_NAMESPACE_START   namespace om { namespace time {
 
#define OM_TIME_NAMESPACE_END   }; };
 
#define OM_UTILITIES_NAMESPACE_START   namespace om { namespace util {
 
#define OM_UTILITIES_NAMESPACE_END   }; };
 

Typedefs

typedef float om::Float32
 The type used to represent a 32-bit floating point number. More...
 
typedef double om::Float64
 The type used to represent a 64-bit floating point number. More...
 
typedef signed char om::Int8
 The type used to represent an 8-bit signed integral number. More...
 
typedef unsigned char om::UInt8
 The type used to represent an 8-bit unsigned integral number. More...
 
typedef signed short om::Int16
 The type used to represent a 16-bit signed integral number. More...
 
typedef unsigned short om::UInt16
 The type used to represent a 16-bit unsigned integral number. More...
 
typedef signed int om::Int32
 The type used to represent a 32-bit signed integral number. More...
 
typedef unsigned int om::UInt32
 The type used to represent a 32-bit unsigned integral number. More...
 
typedef signed long long om::Int64
 The type used to represent a 64-bit signed integral number. More...
 
typedef unsigned long long om::UInt64
 The type used to represent a 64-bit unsigned integral number. More...
 
typedef bool om::Bool
 Redefine the standard 'bool' primitive type to use the library's type naming conventions. More...
 
typedef short om::Short
 Redefine the standard 'short' primitive type to use the library's type naming conventions. More...
 
typedef unsigned short om::UShort
 Redefine the standard 'unsigned short' primitive type to use the library's type naming conventions. More...
 
typedef int om::Int
 Redefine the standard 'int' primitive type to use the library's type naming conventions. More...
 
typedef unsigned int om::UInt
 Redefine the standard 'unsigned int' primitive type to use the library's type naming conventions. More...
 
typedef long om::Long
 Redefine the standard 'long' primitive type to use the library's type naming conventions. More...
 
typedef unsigned long om::ULong
 Redefine the standard 'unsigned long' primitive type to use the library's type naming conventions. More...
 
typedef long long om::LongLong
 Redefine the standard 'long long' primitive type to use the library's type naming conventions. More...
 
typedef unsigned long long om::ULongLong
 Redefine the standard 'unsigned long long' primitive type to use the library's type naming conventions. More...
 
typedef float om::Float
 Redefine the standard 'float' primitive type to use the library's type naming conventions. More...
 
typedef double om::Double
 Redefine the standard 'double' primitive type to use the library's type naming conventions. More...
 
typedef Int8 om::Byte
 The type to use when holding signed data, should be 8 bits wide. More...
 
typedef UInt8 om::UByte
 The type to use when holding generic data, should be 8 bits wide. More...
 
typedef char om::Char
 The type to use when working with ASCII character data. More...
 
typedef UInt32 om::Hash
 The type to use for hash codes in hash tables, should be an unsigned integer. More...
 
typedef std::size_t om::PointerInt
 The type that is the same size as a pointer. More...
 
typedef long om::SignedIndex
 The type that is used to represent a signed index. More...
 
typedef PointerInt om::Size
 The unsigned size type that is the same width as a memory address. More...
 
typedef UInt64 om::LargeSize
 The type to use for a large-scale size. This is the largest supported unsigned integer type. More...
 
typedef PointerInt om::Index
 The type to use to represent an offset (index) in an array or sequence of things. More...
 
typedef UInt64 om::LargeIndex
 The type to use for a large-scale index. This is the largest supported unsigned integer type. More...
 
typedef UInt8 om::UTF8Char
 The type for a UTF-8 unicode character. More...
 
typedef UInt16 om::UTF16Char
 The type for a UTF-16 unicode character. More...
 
typedef UInt32 om::UTF32Char
 The type for a UTF-32 unicode character. More...
 
typedef UTF32Char om::UniChar
 The type for a unicode character that can hold the data for any other unicode character type. More...
 

Macro Definition Documentation

#define OM_DISABLE_ASSERTIONS   0

Define whether or not to turn off all assertion (including assertions active during release-mode builds).

#define OM_MALLOC (   X)    (std::malloc(X))

The function to use for all library memory allocations.

#define OM_FREE (   X)    (std::free(X))

The function to use for all library memory deallocations.

#define OM_STRINGIFIY_WRAPPER (   x)    #x

Define a macro that converts its argument to its literal string representation.

#define OM_STRINGIFY (   x)    OM_STRINGIFIY_WRAPPER(x)
#define OM_INLINE   inline

The inlining procedure to use for methods that should be inlined.

#define OM_FORCE_INLINE   inline
#define OM_NO_INLINE
#define OM_ALIGN (   alignment)

The alignment declaration to be use when aligning structure/class members.

#define OM_EXPORT
#define OM_ALIGNED_MALLOC (   size,
  alignment 
)    (OM_MALLOC(size))

The function to use when allocating aligned blocks of memory.

#define OM_ALIGNED_FREE (   X)    (OM_FREE(X))

The function to use when freeing an aligned block of memory.

#define OM_DEPRECATED

The marker that is used when defining methods, types, and variables as deprecated.

#define OM_DEBUG_ASSERT (   X)    ((void)0)
#define OM_DEBUG_ASSERT_MESSAGE (   X,
  MESSAGE 
)    ((void)0)
#define OM_DEBUG_ASSERT_MESSAGE_CODE (   X,
  MESSAGE,
  CODE 
)    ((void)0)
#define OM_ASSERT (   X)    assert(X)
#define OM_ASSERT_MESSAGE (   X,
  MESSAGE 
)    { ( X ? 0 : std::printf("%s\n",MESSAGE)); assert(X); }
#define OM_ASSERT_MESSAGE_CODE (   X,
  MESSAGE,
  CODE 
)
Value:
{ ( X ? 0 : \
std::printf("%s\nError Code: %X\n",MESSAGE,(int)CODE)); assert(X); }
#define OM_LITTLE_ENDIAN
#define NULL   ((void *)0)
#define OM_NAMESPACE_START   namespace om {
#define OM_NAMESPACE_END   };
#define OM_DATA_NAMESPACE_START   namespace om { namespace data {
#define OM_DATA_NAMESPACE_END   }; };
#define OM_EXCEPTIONS_NAMESPACE_START   namespace om { namespace exceptions {
#define OM_EXCEPTIONS_NAMESPACE_END   }; };
#define OM_FILE_SYSTEM_NAMESPACE_START   namespace om { namespace fs {
#define OM_FILE_SYSTEM_NAMESPACE_END   }; };
#define OM_IO_NAMESPACE_START   namespace om { namespace io {
#define OM_IO_NAMESPACE_END   }; };
#define OM_LANGUAGE_INTERNAL_NAMESPACE_START   namespace om { namespace lang { namespace internal {
#define OM_LANGUAGE_INTERNAL_NAMESPACE_END   }; }; };
#define OM_LANGUAGE_NAMESPACE_START   namespace om { namespace lang {
#define OM_LANGUAGE_NAMESPACE_END   }; };
#define OM_MATH_NAMESPACE_START   namespace om { namespace math {
#define OM_MATH_NAMESPACE_END   }; };
#define OM_SYSTEM_NAMESPACE_START   namespace om { namespace system {
#define OM_SYSTEM_NAMESPACE_END   }; };
#define OM_THREADS_NAMESPACE_START   namespace om { namespace threads {
#define OM_THREADS_NAMESPACE_END   }; };
#define OM_TIME_NAMESPACE_START   namespace om { namespace time {
#define OM_TIME_NAMESPACE_END   }; };
#define OM_UTILITIES_NAMESPACE_START   namespace om { namespace util {
#define OM_UTILITIES_NAMESPACE_END   }; };