The Omni library has a compendium of macros and compiler options that are used both internally (helper macros)
and externally (via compiler options). Certain macros and options will change how certain portions of the library
will be used (underlying structures/logic, etc.), this granular control allows a developer to customize the library to
better suit their developmental needs.
Compiler Options
The following is a list of compiler options that can effect how the library is built and/or operates.
The following is a list of compiler options that can effect how the library is built and/or operates.
OMNI_32BIT
- If defined, enables allOMNI_32BIT_X
flags.OMNI_32BIT_ASYNC_TIMER
- If defined, uses 32-bit types in theomni::chrono::async_timer
class.OMNI_32BIT_BASIC_LOCK
- If defined, uses 32-bit types in theomni::sync::basic_lock
class.OMNI_32BIT_BASIC_THREAD
- If defined, uses 32-bit types in theomni::sync::basic_thread
class.OMNI_32BIT_BINARY_SEMAPHORE
- If defined, uses 32-bit types in theomni::sync::binary_semaphore
class.OMNI_32BIT_COLOR
- If defined, uses a 32-bit value in theomni::drawing::color
class.OMNI_32BIT_CONDITIONAL
- If defined, uses 32-bit types in theomni::sync::conditional
class.OMNI_32BIT_DROP_TIMER
- If defined, uses 32-bit types in theomni::chrono::drop_timer
class.OMNI_32BIT_ENDPOINT_DESCRIPTOR
- If defined, uses 32-bit types in theomni::net::endpoint_descriptor
class.OMNI_32BIT_MUTEX
- If defined, uses 32-bit types in theomni::sync::mutex
class.OMNI_32BIT_QUEUE_TIMER
- If defined, uses 32-bit types in theomni::chrono::queue_timer
class.OMNI_32BIT_RUNNABLE_THREAD
- If defined, uses 32-bit types in theomni::sync::runnable_thread
class.OMNI_32BIT_SPIN
- If defined, uses 32-bit types in the spin classes.OMNI_32BIT_STOPWATCH
- If defined, uses 32-bit types in theomni::stopwatch
class.OMNI_32BIT_SYNC_TIMER
- If defined, uses 32-bit types in theomni::chrono::sync_timer
class.OMNI_32BIT_THREAD
- If defined, uses 32-bit types in theomni::sync::thread
class.OMNI_32BIT_THREADPOOL
- If defined, uses 32-bit types in theomni::sync::threadpool
class.OMNI_ALLOW_UB
- If defined, this allows the library to compile with undefined behaviour.OMNI_APPLE_OLD_API
- Defines whether to use older Apple API's or macOS API's.OMNI_ARCH_IGNORE
- Do not attempt to guess the architecture type based on compiler macros.OMNI_BASE_LOCALE
- Defines the underlying locale to utilize.OMNI_BASE_LOCALE_CATEGORY
- Defines the underlying locale category to utilize.OMNI_BUILD_UNSAFE
- If defined, the library will build without checks for certain undefiend behaviour.OMNI_CHECK_ARITHMETIC_OVERFLOW
- If defined, the library will check for aritmetic over/under flow.OMNI_CHRONO_AUTO_INIT_TICK
- If defined,omni::chrono::monotonic::tick
will initialize on first call.OMNI_CLOCK_GETRES_REALTIME
- Changes the behaviour of the clock_getres.OMNI_CODE_PAGE
- Defines the underlying code page used during character conversion.OMNI_DISPOSE_EVENT
- If defined, classes within the library will have a disposing event.OMNI_ENABLE_CXX
- Enable a set of C++11 features.OMNI_ENABLE_NOEXCEPT
- A library macro/optionOMNI_ENUM_INCLUDE_BITWISE_OPS
- A library macro/optionOMNI_ENUM_INCLUDE_TYPE
- IfOMNI_ENV_WORDEXP
- If defined,wordexp
functionality is used inomni::environment::expand_vars
OMNI_EXCEPTION_TERMINATE
- The call made when an exception happens within an omni::execption.OMNI_EXPLICIT
- A library macro/optionOMNI_FUNC_NO_THROW
- A library macro/optionOMNI_FUNC_THROWS
- A library macro/optionOMNI_FW_VER_USE_TIME
- the library will use the build time in the library version string.OMNI_GUI_APP
- A library macro/optionOMNI_GUI_LIB
- A library macro/optionOMNI_GUI_USE_X11
- A library macro/optionOMNI_HEAVY_OBJECT_COMPARE
- A library macro/optionOMNI_IO_FILE_COPY_BUFSZ
- A library macro/optionOMNI_IO_FILE_COPY_USE_FSTREAM
- A library macro/optionOMNI_IO_FILE_FTRUNCATE_FN
- A library macro/optionOMNI_IO_FILE_TRUNCATE_FN
- A library macro/optionOMNI_IO_USE_TRUNCATE
- A library macro/optionOMNI_LITE
- Enables certain flags that trim portions of code.OMNI_MUTEX_OWNER
- Sets theomni::sync::mutex
to keep track of owning thread.OMNI_NET_LIB
- A library macro/optionOMNI_NON_PORTABLE
- If defined, the library will enable non-portable code.OMNI_NO_32BIT
- A library macro/optionOMNI_NO_32BIT_ASYNC_TIMER
- A library macro/optionOMNI_NO_32BIT_BASIC_LOCK
- A library macro/optionOMNI_NO_32BIT_BASIC_THREAD
- A library macro/optionOMNI_NO_32BIT_BINARY_SEMAPHORE
- A library macro/optionOMNI_NO_32BIT_COLOR
- A library macro/optionOMNI_NO_32BIT_CONDITIONAL
- A library macro/optionOMNI_NO_32BIT_DROP_TIMER
- A library macro/optionOMNI_NO_32BIT_ENDPOINT_DESCRIPTOR
- A library macro/optionOMNI_NO_32BIT_MUTEX
- A library macro/optionOMNI_NO_32BIT_QUEUE_TIMER
- A library macro/optionOMNI_NO_32BIT_RUNNABLE_THREAD
- A library macro/optionOMNI_NO_32BIT_SPIN
- A library macro/optionOMNI_NO_32BIT_STOPWATCH
- A library macro/optionOMNI_NO_32BIT_SYNC_TIMER
- A library macro/optionOMNI_NO_32BIT_THREAD
- A library macro/optionOMNI_NO_32BIT_THREADPOOL
- A library macro/optionOMNI_NO_BASE_SETLOCALE
- Disables the setlocale function in theomni::application
OMNI_NO_CHECK_ARITHMETIC_OVERFLOW
- A library macro/optionOMNI_NO_CHRONO_AUTO_INIT_TICK
- A library macro/optionOMNI_NO_CLINK
- Does not link certain portions of the library withC
linkageOMNI_NO_CLOCK_GETRES_REALTIME
- A library macro/optionOMNI_NO_CONSTS
- Disables any library defined constants.OMNI_NO_CSTDINT
- A library macro/optionOMNI_NO_CSTDIO
- A library macro/optionOMNI_NO_DISPOSE_EVENT
- Disables theOMNI_DISPOSE_EVENT
macroOMNI_NO_ENV_WORDEXP
- A library macro/optionOMNI_NO_EXCEPT
- Disables exception handling in the libraryOMNI_NO_EXPLICIT
- A library macro/optionOMNI_NO_EXTERN_CONSTS
- If defined, Omni constants will not have external linkage.OMNI_NO_FW_VER
- Disables the library version header from being baked into the library.OMNI_NO_FW_VER_USE_TIME
- A library macro/optionOMNI_NO_GUI
- A library macro/optionOMNI_NO_GUI_APP
- A library macro/optionOMNI_NO_GUI_LIB
- A library macro/optionOMNI_NO_GUI_USE_X11
- A library macro/optionOMNI_NO_HEAVY_OBJECT_COMPARE
- A library macro/optionOMNI_NO_IO_FILE_COPY_USE_FSTREAM
- A library macro/optionOMNI_NO_MUTEX_OWNER
- Disables theOMNI_MUTEX_OWNER
macroOMNI_NO_NOEXCEPT
- A library macro/optionOMNI_NO_NON_PORTABLE
- Disables theOMNI_NON_PORTABLE
macroOMNI_NO_OBJECT_NAME
- Disables theOMNI_OBJECT_NAME
macroOMNI_NO_OS_MACOS
- A library macro/optionOMNI_NO_PRINTL
- Disables the definedprintln
macro.OMNI_NO_PROC_SYS
- Does not use theproc
file system for system path.OMNI_NO_SAFE_APPLICATION
- Disables theOMNI_SAFE_APPLICATION
macroOMNI_NO_SAFE_ASYNC_TIMER
- A library macro/optionOMNI_NO_SAFE_BASIC_THREAD
- Disables theOMNI_SAFE_BASIC_THREAD
macroOMNI_NO_SAFE_CHRONO
- A library macro/optionOMNI_NO_SAFE_COLOR
- A library macro/optionOMNI_NO_SAFE_CRYPTO
- A library macro/optionOMNI_NO_SAFE_DATETIME
- A library macro/optionOMNI_NO_SAFE_DELEGATES
- Disables theOMNI_SAFE_DELEGATES
macroOMNI_NO_SAFE_DROP_TIMER
- A library macro/optionOMNI_NO_SAFE_EVENTS
- Disables theOMNI_SAFE_EVENTS
macroOMNI_NO_SAFE_GEOMETRY
- A library macro/optionOMNI_NO_SAFE_GEO_SIZE
- A library macro/optionOMNI_NO_SAFE_LIBRARY
- Disables theOMNI_SAFE_LIBRARY
macroOMNI_NO_SAFE_LOCKS
- A library macro/optionOMNI_NO_SAFE_MD5
- A library macro/optionOMNI_NO_SAFE_MUTEX
- Disables theOMNI_SAFE_MUTEX
macroOMNI_NO_SAFE_NET
- A library macro/optionOMNI_NO_SAFE_POINT2D
- A library macro/optionOMNI_NO_SAFE_POINT3D
- A library macro/optionOMNI_NO_SAFE_PROP
- Disables theOMNI_SAFE_PROP
macroOMNI_NO_SAFE_QUEUE_TIMER
- A library macro/optionOMNI_NO_SAFE_RECTANGLE
- A library macro/optionOMNI_NO_SAFE_RUNNABLE_THREAD
- Disables theOMNI_SAFE_RUNNABLE_THREAD
macroOMNI_NO_SAFE_SEMAPHORE
- Disables theOMNI_SAFE_SEMAPHORE
macroOMNI_NO_SAFE_SHA1
- A library macro/optionOMNI_NO_SAFE_SHA256
- A library macro/optionOMNI_NO_SAFE_SOCKET
- A library macro/optionOMNI_NO_SAFE_SOCKET_EP
- A library macro/optionOMNI_NO_SAFE_SPAN
- A library macro/optionOMNI_NO_SAFE_STOPWATCH
- A library macro/optionOMNI_NO_SAFE_SYNC_TIMER
- A library macro/optionOMNI_NO_SAFE_THREAD
- Disables theOMNI_SAFE_THREAD
macroOMNI_NO_SAFE_THREADS
- A library macro/optionOMNI_NO_SAFE_TIMERS
- Disables theOMNI_SAFE_TIMERS
macroOMNI_NO_SAFE_VECTOR2
- A library macro/optionOMNI_NO_SAFE_VECTOR3
- A library macro/optionOMNI_NO_SHOW_DEBUG
- A library macro/optionOMNI_NO_SINGLE_FILE
- Disables the compilation of the library.cpp fileOMNI_NO_STDINC
- A library macro/optionOMNI_NO_STD_VECTOR
- A library macro/optionOMNI_NO_TERMINATE
- Disables theOMNI_TERMINATE
macroOMNI_NO_THREADPOOL_USE_SEQ_T
- A library macro/optionOMNI_NO_THREAD_ARGS_RAW_PTR
- A library macro/optionOMNI_NO_THREAD_CDECL
- A library macro/optionOMNI_NO_THREAD_FASTCALL
- A library macro/optionOMNI_NO_THREAD_STDCALL
- A library macro/optionOMNI_NO_THROW
- Disables exceptions (throw keyword) in the library.OMNI_NO_TYPE_INFO
- Disables theOMNI_TYPE_INFO
macroOMNI_NO_UNICODE
- A library macro/optionOMNI_NO_USE_CMATH_CONSTS
- CancelsOMNI_USE_CMATH_CONSTS
OMNI_NO_USE_MATH_DEFS
- CancelsOMNI_USE_MATH_DEFS
OMNI_NO_USE_M_E
- CancelsOMNI_USE_M_E
OMNI_NO_USE_M_E_F
- CancelsOMNI_USE_M_E_F
OMNI_NO_USE_M_E_L
- CancelsOMNI_USE_M_E_L
OMNI_NO_USE_M_PI_F
- CancelsOMNI_USE_M_PI_F
OMNI_NO_WIN_API
- Use the Microsoft C Runtime Library where applicable.OMNI_NO_WIN_LEAN
- Does not enable theWIN32_LEAN_AND_MEAN
macroOMNI_NO_WIN_USE_EVENT_CONDITIONAL
- A library macro/optionOMNI_NULL_USE_MACRO
- Defines the NULL value type to use.OMNI_OBJECT_NAME
- If defined, adds aname
string member to each object.OMNI_OS_IGNORE
- Do not attempt to guess the OS type based on compiler macros.OMNI_OS_PLAN9
- A library macro/optionOMNI_OS_VXWORKS
- A library macro/optionOMNI_PATH_EMPTY_STR
- A library macro/optionOMNI_PATH_ERROR_STR
- A library macro/optionOMNI_QUADRILATERAL_USE_SA
- A library macro/optionOMNI_RL
- If defined, uses the \r new line instead of \n or \r\n.OMNI_SAFE_APPLICATION
- Signifies thread safe functions inomni::application
OMNI_SAFE_ASYNC_TIMER
- Signifies thread safe functions inomni::chrono::async_timer
OMNI_SAFE_BASIC_THREAD
- Signifies thread safe functions in omni::sync::basci_threadOMNI_SAFE_CHRONO
- A library macro/optionOMNI_SAFE_CIRCLE
- A library macro/optionOMNI_SAFE_COLOR
- A library macro/optionOMNI_SAFE_CRYPTO
- A library macro/optionOMNI_SAFE_DATETIME
- A library macro/optionOMNI_SAFE_DELEGATES
- Signifies thread safe functions in the delegatesOMNI_SAFE_DROP_TIMER
- Signifies thread safe functions inomni::chrono::drop_timer
OMNI_SAFE_EVENTS
- Signifies thread safe functions in the eventsOMNI_SAFE_GEOMETRY
- A library macro/optionOMNI_SAFE_GEO_SIZE
- A library macro/optionOMNI_SAFE_GEO_SIZE3D
- A library macro/optionOMNI_SAFE_LIBRARY
- Signifies thread safe functions in the libraryOMNI_SAFE_LOCKS
- Signifies thread safe functions in locking classesOMNI_SAFE_MD5
- A library macro/optionOMNI_SAFE_MUTEX
- Signifies thread safe functions inomni::sync::mutex
OMNI_SAFE_NET
- A library macro/optionOMNI_SAFE_NET_CLIENT
- A library macro/optionOMNI_SAFE_NET_SERVER
- A library macro/optionOMNI_SAFE_NET_VERSION
- A library macro/optionOMNI_SAFE_POINT2D
- A library macro/optionOMNI_SAFE_POINT3D
- A library macro/optionOMNI_SAFE_PROP
- Signifies thread safe functions inomni::property
OMNI_SAFE_QUADRANGLE
- A library macro/optionOMNI_SAFE_QUEUE_TIMER
- Signifies thread safe functions inomni::chrono::queue_timer
OMNI_SAFE_RECTANGLE
- A library macro/optionOMNI_SAFE_RUNNABLE_THREAD
- Signifies thread safe functions inomni::sync::runnable_thread
OMNI_SAFE_SEMAPHORE
- Signifies thread safe functions inomni::sync::semaphore
OMNI_SAFE_SHA1
- A library macro/optionOMNI_SAFE_SHA256
- A library macro/optionOMNI_SAFE_SOCKET
- A library macro/optionOMNI_SAFE_SOCKET_EP
- A library macro/optionOMNI_SAFE_SPAN
- A library macro/optionOMNI_SAFE_STOPWATCH
- A library macro/optionOMNI_SAFE_SYNC_TIMER
- Signifies thread safe functions inomni::chrono::sync_timer
OMNI_SAFE_THREAD
- Signifies thread safe functions inomni::sync::thread
OMNI_SAFE_THREADS
- Signifies thread safe functions in the threadsOMNI_SAFE_TIMERS
- Signifies thread safe functions in the timersOMNI_SAFE_TRIANGLE
- A library macro/optionOMNI_SAFE_VECTOR2
- A library macro/optionOMNI_SAFE_VECTOR3
- A library macro/optionOMNI_SAFE_VERSION
- A library macro/optionOMNI_SEQUENCE_CONTAINER_TYPE
- A library macro/optionOMNI_SHOW_DEBUG
- Display library debug output.OMNI_SHOW_DEBUG_ERR
- Displays errors as part of the debug output.OMNI_SHOW_DEBUG_FILE
- Displays the file as part of the debug output.OMNI_SHOW_DEBUG_FUNC
- Displays the function as part of the debug output.OMNI_SHOW_DEBUG_LINE
- Displays the line number as part of the debug output.OMNI_SIGCALL
- Defines the underlying signal call (e.g. __cdecl).OMNI_SMART_PTR_SIZE_T
- Defines the counter size of theomni::smart_ptr
, default of utin64_tOMNI_SOCKET_DEFAULT_BACKLOG
- A library macro/optionOMNI_SOCKET_DEFAULT_GET_HOST_PORT
- A library macro/optionOMNI_SOMAXCONN
- A library macro/optionOMNI_TERMINATE
- Defines the underlying terminate function to call.OMNI_THREADPOOL_USE_SEQ_T
- A library macro/optionOMNI_THREAD_ARGS_RAW_PTR
- If defined, thread parameters will bevoid*
types.OMNI_THREAD_CDECL
- Signifies to use__cdecl
for theOMNI_THREAD_CALL_T
OMNI_THREAD_FASTCALL
- Signifies to use__fastcall
for theOMNI_THREAD_CALL_T
OMNI_THREAD_LIB
- If defined will build only the threading files in library.cppOMNI_THREAD_STDCALL
- Signifies to use__stdcall
for theOMNI_THREAD_CALL_T
OMNI_THROW
- If defined, signifies to throw on exception.OMNI_TIMER_LIB
- If defined will build only the timers in library.cppOMNI_TRIANGLE_USE_SA
- A library macro/optionOMNI_TYPE_INFO
- Defines if the omni::type class should be used in other classes.OMNI_UNDERFLOW_STR
- A library macro/optionOMNI_USE_CMATH_CONSTS
- A library macro/optionOMNI_USE_EXPLICIT
- A library macro/optionOMNI_USE_MATH_DEFS
- A library macro/optionOMNI_USE_M_E
- Defines to use the math.h eOMNI_USE_M_E_F
- Defines to use the math.h e float versionOMNI_USE_M_E_L
- Defines to use the math.h e long double versionOMNI_USE_M_PI
- A library macro/optionOMNI_USE_M_PI_F
- Defines to use the math.h Pi float versionOMNI_USE_M_PI_L
- A library macro/optionOMNI_WIN_API
- Defines whether to use straight Windows API or CRT functions.OMNI_WIN_MONO_TICK_COUNT
- Defines the underlying tick call.OMNI_WIN_MONO_TICK_COUNT64
- Defines the underlying tick call.OMNI_WIN_MONO_TICK_QPC
- Defines the underlying tick call.OMNI_WIN_NO_PRAGMA_DISABLE_4351
- A library macro/optionOMNI_WIN_NO_PRAGMA_WS2_32_LIB
- A library macro/optionOMNI_WIN_USE_EVENT_CONDITIONAL
- Defines whether to use an event or condition type on Windows
Helper Macros
The following is a list of helper macros that can be utilized in user code.
The following is a list of helper macros that can be utilized in user code.
OMNI_B2S
- Converts a bool to string equivalent.OMNI_B2WS
- Converts a bool to its wide string equivalent.OMNI_BIND
- A helper macro for binding to theomni::delegate
.OMNI_BIND_CONST
- A helper macro for binding theomni::delegate
to const members.OMNI_BIND_CONST_EX
- A helper macro for binding theomni::delegate
to const members.OMNI_BIND_EX
- A helper macro for binding theomni::delegate
.OMNI_BOOL2STR
- Convert a bool value to a string.OMNI_BOOL2WSTR
- Convert a bool value to a wide string.OMNI_DEF2STR
- String-izes the macro value passed in.OMNI_DEFCONCAT
- Concatenate 2 #define values.OMNI_DEG_TO_RAD
- A helper macro that converts degrees to radians.OMNI_DELEGATE
- A helper macro for defining anomni::delegate
OMNI_DWSTR
- Widens a string-ized macro.OMNI_ENUM
- AOMNI_ENUM_ASSIGNED
- AOMNI_ENUM_ASSIGNED_PARSERS
- AOMNI_ENUM_DEFAULT
- DefinesOMNI_ENUM_DEFINE
- AOMNI_ENUM_END
- DefinesOMNI_EVENT
- A helper macro for defining anomni::event
OMNI_IS_N_BIT_SET
- Test if a specific bit is set in a valueOMNI_MACRO_ARG_COUNT
- Parses and returns a number based on the number of arguments passed into a macroOMNI_NEW_LINE
- Defines the new line constant used based on system.OMNI_NULL_PTR
- The NULL value used throughout the library.OMNI_OSTREAM_FN_OPERATOR
- A library macro/optionOMNI_OSTREAM_OPERATOR
- A helper macro to implement theoperator<<
stream friend functionOMNI_RAD_TO_DEG
- A helper macro that converts radians to degrees.OMNI_SEQUENCE_T
- A library macro/optionOMNI_SEQ_T
- A library macro/optionOMNI_SET_N_BIT
- Sets a bit in a valueOMNI_SIZEOF_BITS
- Gets thesizeof
a type in bitsOMNI_SLEEP
- A helper macro for millisecond sleepsOMNI_SLEEP1
- A helper macro for millisecond sleepsOMNI_SLEEP_INIT
- A helper macro for initializing sleep variablesOMNI_STRW
- A shortened form of theOMNI_STR_WIDEN
macro.OMNI_STR_WIDEN
- A helper macro used to 'widen' strings.OMNI_THREAD_YIELD
- A helper macro calling the platform thread yield function.OMNI_UNSET_N_BIT
- Unsets a bit in a valueOMNI_UNUSED
- Can be used to avoid 'unused' warnings in user code.OMNI_VAL_HAS_FLAG_BIT
- Determines if a flag bit is set in a valueOMNI_VAL_SET_FLAG_BIT
- Sets a flag bit in a value.OMNI_VAL_SET_FLAG_BOOL
- Sets a flag bit in a value.OMNI_VAL_SET_FLAG_BOOL_T
- Sets a flag bit in a value casting to a specified type.OMNI_VAL_UNSET_FLAG_BIT
- Unsets a flag bit in a value.OMNI_WOSTREAM_FN_OPERATOR
- A library macro/optionOMNI_WOSTREAM_OPERATOR
- A helper macro to implement theoperator<<
wide stream friend functionOMNI_WPATH_ROOT
- A library macro/optionOMNI_WPATH_SEPARATOR
- A library macro/optionOMNI_WPRINT
- A library macro/optionOMNI_WPRINTL
- A library macro/optionOMNI_WSTR
- Widens an input string (defined asL##v
)OMNI_XOR_SWAP
- A helper macro defining an XOR swap
Constant Macros
The following is a list of macro constants defined by the library that can be utilized in user code.
The following is a list of macro constants defined by the library that can be utilized in user code.
OMNI_180_PI
- Defined as the double constant value of 180/PiOMNI_180_PI_F
- Defined as the floating point constant value of 180/PiOMNI_180_PI_L
- Defined as the long double constant value of 180/PiOMNI_APP_RUNNING_STR
- "An application context is already running"OMNI_BYTE_STR
- "Byte"OMNI_B_STR
- "B"OMNI_COMMA_CHAR
- ','OMNI_COMMA_WCHAR
- L','OMNI_CRYPTO_BASE64_CHARS
- A library macro/optionOMNI_CYRPTO_BASE64_CHAR_POS
- A library macro/optionOMNI_DAYS_PER_100_YEARS
- A library macro/optionOMNI_DAYS_PER_400_YEARS
- A library macro/optionOMNI_DAYS_PER_4_YEARS
- A library macro/optionOMNI_DAYS_PER_LEAP_YEAR
- A library macro/optionOMNI_DAYS_PER_TICK
- A library macro/optionOMNI_DAYS_PER_TROPICAL_YEAR
- A library macro/optionOMNI_DAYS_PER_YEAR
- A library macro/optionOMNI_DAYS_TO_10000AD
- A library macro/optionOMNI_DAYS_TO_1601AD
- A library macro/optionOMNI_DAYS_TO_1899AD
- A library macro/optionOMNI_DAYS_TO_1970AD
- A library macro/optionOMNI_DAYS_TO_EPOCH
- A library macro/optionOMNI_DAYS_TO_MONTH_365
- A library macro/optionOMNI_DAYS_TO_MONTH_366
- A library macro/optionOMNI_DOUBLE_DATE_OFFSET
- A library macro/optionOMNI_E
- Defines the mathematical constant eOMNI_EB_IVAL
- A library macro/optionOMNI_EIBI_STR
- "Exbibyte"OMNI_EIB_IVAL
- A library macro/optionOMNI_EIB_STR
- "EiB"OMNI_EOB_STR
- "EB"OMNI_EOL_N
- Defines the carriage return of '\n'OMNI_EOL_R
- Defines the carriage return of '\r'OMNI_EOL_RN
- Defines the carriage return of '\r\n'OMNI_EPOCH_OFFSET
- A library macro/optionOMNI_ERR_ACQUIRE_STR
- "Could not acquire thread"OMNI_ERR_APPEX_STR
- "An application exception occurred"OMNI_ERR_BASE_STR
- A library macro/optionOMNI_ERR_COND_OBJ_STR
- "A system error occurred on the conditional object"OMNI_ERR_ENVEX_STR
- "An error occurred within the system environment"OMNI_ERR_GET_TIME_STR
- "An error occurred getting the system clock time"OMNI_ERR_MALLOC_STR
- "Error allocating memory"OMNI_ERR_MTX_OWNER_STR
- "Unlock called from non-owning thread"OMNI_ERR_MTX_STATE_STR
- "The system mutex was left in an invalid state"OMNI_ERR_MTX_UNLOCKED_STR
- "An attempt was made to unlock a non locked mutex"OMNI_ERR_MUTEX_STR
- "A system error occurred on the mutex object"OMNI_ERR_NAME_STR
- "Name cannot be empty"OMNI_ERR_PARSE_STR
- A library macro/optionOMNI_ERR_PIPE_STR
- "Failed to open the pipe"OMNI_ERR_PROC_PRI_STR
- "Error retrieving the process' priority class"OMNI_ERR_PROC_STR
- "Error opening process"OMNI_ERR_RANGE_STR
- A library macro/optionOMNI_ERR_RELEASE_STR
- "An invalid release count was specified"OMNI_ERR_SEMAPHORE_STR
- "A system error occurred on the semaphore object"OMNI_ERR_SEM_STATE_STR
- "An attempt was made to release a semaphore in a non-wait state"OMNI_ERR_SET_PRI_STR
- "Error setting the thread's priority"OMNI_ERR_SIZE_STR
- "Invalid size written"OMNI_ERR_SOCKET_STR
- A library macro/optionOMNI_ERR_SPIN_OBJ_STR
- "A system error occurred on the spin lock object"OMNI_ERR_STATE_STR
- "Internal state error"OMNI_ERR_STOPWATCH_STR
- "An error occurred on the stopwatch object"OMNI_ERR_STROBJ_STR
- "A general exception occurred on the string object"OMNI_ERR_THREADPOOL_STR
- "An error occurred on the threadpool"OMNI_ERR_THREAD_STR
- "An error occurred on the thread"OMNI_ERR_WAIT_STR
- "Active waits pending when disposing a lock object"OMNI_EXA_STR
- "Exabyte"OMNI_E_F
- Defines the mathematical constant e as a floatOMNI_E_L
- Defines the mathematical constant e long doubleOMNI_FILE_NOT_ACCESSIBLE_STR
- "File not accessible"OMNI_FILE_NOT_FOUND_STR
- "File not found"OMNI_FILE_TIME_OFFSET
- A library macro/optionOMNI_GB_IVAL
- 1000000000OMNI_GENERAL_EXCEPTION_STR
- "General library exception"OMNI_GIBI_STR
- "Gibibyte"OMNI_GIB_IVAL
- 1073741824OMNI_GIB_STR
- "GiB"OMNI_GIGA_STR
- "Gigabyte"OMNI_GOB_STR
- "GB"OMNI_HOURS_PER_TICK
- A library macro/optionOMNI_INDEX_OOR_STR
- "Index out of range"OMNI_INFINITE_TIMEOUT
- Defines the infinite timeout valueOMNI_INVALID_BASE_STR
- "Invalid base specified while converting to string"OMNI_INVALID_CAST_STR
- "Invalid type cast"OMNI_INVALID_CHAR_STR
- "Invalid value specified for conversion to char"OMNI_INVALID_DELEGATE_FUNC_STR
- "No valid function has been assigned to the delegate"OMNI_INVALID_DELEGATE_INVOKE_STR
- A library macro/optionOMNI_INVALID_DELEGATE_STR
- "Invalid delegate"OMNI_INVALID_ENUM_STR
- A library macro/optionOMNI_INVALID_OPTION_STR
- "An invalid thread option was specified"OMNI_INVALID_SEEK_DIR_STR
- "Invalid seek direction"OMNI_INVALID_SETTING_STR
- "An invalid setting was specified"OMNI_INVALID_SIZE_STR
- "Invalid size specified"OMNI_INVALID_SOCKET
- A library macro/optionOMNI_INVALID_TEMPLATE_STR
- "Invalid template parameter"OMNI_INVALID_THREAD_HANDLE_STR
- "Invalid thread handle"OMNI_INVALID_THREAD_OWNER_STR
- A library macro/optionOMNI_INVALID_THREAD_PRIORITY_STR
- "Invalid thread priority"OMNI_INVALID_THREAD_START_TYPE_STR
- "Invalid thread start type specified"OMNI_INVALID_THREAD_STATE_STR
- "An invalid thread state was specified for the thread"OMNI_INVALID_VERSION_STR
- "Invalid version string specified"OMNI_IO_ERROR_STR
- "General I/O error"OMNI_KB_IVAL
- 1000OMNI_KIBI_STR
- "Kibibyte"OMNI_KIB_IVAL
- 1024OMNI_KIB_STR
- "KiB"OMNI_KILO_STR
- "Kilobyte"OMNI_KOB_STR
- "KB"OMNI_MATH_COMPAT_E
- A library macro/optionOMNI_MATH_COMPAT_PI
- A library macro/optionOMNI_MATH_COMPAT_TAU
- A library macro/optionOMNI_MATH_RADS
- A library macro/optionOMNI_MATH_RADS_COS
- A library macro/optionOMNI_MATH_RADS_SIN
- A library macro/optionOMNI_MB_IVAL
- 1000000OMNI_MEGA_STR
- "Megabyte"OMNI_MIBI_STR
- "Mebibyte"OMNI_MIB_IVAL
- 1048576OMNI_MIB_STR
- "MiB"OMNI_MICROSECONDS_PER_DAY
- A library macro/optionOMNI_MICROSECONDS_PER_HOUR
- A library macro/optionOMNI_MICROSECONDS_PER_MILLISECOND
- A library macro/optionOMNI_MICROSECONDS_PER_MINUTE
- A library macro/optionOMNI_MICROSECONDS_PER_NANOSECOND
- A library macro/optionOMNI_MICROSECONDS_PER_SECOND
- A library macro/optionOMNI_MICROSECONDS_PER_TICK
- A library macro/optionOMNI_MILLISECONDS_PER_DAY
- A library macro/optionOMNI_MILLISECONDS_PER_HOUR
- A library macro/optionOMNI_MILLISECONDS_PER_MICROSECOND
- A library macro/optionOMNI_MILLISECONDS_PER_MINUTE
- A library macro/optionOMNI_MILLISECONDS_PER_NANOSECOND
- A library macro/optionOMNI_MILLISECONDS_PER_SECOND
- A library macro/optionOMNI_MILLISECONDS_PER_TICK
- A library macro/optionOMNI_MILLISECONDS_TO_10000AD
- A library macro/optionOMNI_MINUS_CHAR
- '-'OMNI_MINUS_WCHAR
- '-'OMNI_MINUTES_PER_DAY
- A library macro/optionOMNI_MINUTES_PER_HOUR
- A library macro/optionOMNI_MINUTES_PER_MICROSECOND
- A library macro/optionOMNI_MINUTES_PER_MILLISECOND
- A library macro/optionOMNI_MINUTES_PER_NANOSECOND
- A library macro/optionOMNI_MINUTES_PER_SECOND
- A library macro/optionOMNI_MINUTES_PER_TICK
- A library macro/optionOMNI_MOB_STR
- "MB"OMNI_NANOSECONDS_PER_DAY
- A library macro/optionOMNI_NANOSECONDS_PER_HOUR
- A library macro/optionOMNI_NANOSECONDS_PER_MICROSECOND
- A library macro/optionOMNI_NANOSECONDS_PER_MILLISECOND
- A library macro/optionOMNI_NANOSECONDS_PER_MINUTE
- A library macro/optionOMNI_NANOSECONDS_PER_SECOND
- A library macro/optionOMNI_NANOSECONDS_PER_TICK
- A library macro/optionOMNI_NAN_ERR_STR
- A library macro/optionOMNI_NCHAR_CHAR
- '\0'OMNI_NCHAR_WCHAR
- A library macro/optionOMNI_NO_DELEGATE_STR
- "Delegate not found"OMNI_NULL_PTR_STR
- "Null pointer specified"OMNI_NULL_REF_STR
- "A null pointer reference exception occurred"OMNI_OA_DATE_MAX_AS_DOUBLE
- A library macro/optionOMNI_OA_DATE_MIN_AS_DOUBLE
- A library macro/optionOMNI_OA_DATE_MIN_AS_TICKS
- A library macro/optionOMNI_OVERFLOW_STR
- A library macro/optionOMNI_PATH_NOT_ACCESSIBLE_STR
- "Path not accessible"OMNI_PB_IVAL
- A library macro/optionOMNI_PERIOD_CHAR
- '.'OMNI_PERIOD_WCHAR
- A library macro/optionOMNI_PETA_STR
- "Petabyte"OMNI_PI
- A library macro/optionOMNI_PIBI_STR
- "Pebibyte"OMNI_PIB_IVAL
- A library macro/optionOMNI_PIB_STR
- "PiB"OMNI_PI_180
- A library macro/optionOMNI_PI_F
- A library macro/optionOMNI_PI_F_180
- A library macro/optionOMNI_PI_L
- A library macro/optionOMNI_PI_L_180
- A library macro/optionOMNI_PLUS_CHAR
- '+'OMNI_PLUS_WCHAR
- A library macro/optionOMNI_POB_STR
- "PB"OMNI_SECONDS_PER_DAY
- A library macro/optionOMNI_SECONDS_PER_HOUR
- A library macro/optionOMNI_SECONDS_PER_MICROSECOND
- A library macro/optionOMNI_SECONDS_PER_MILLISECOND
- A library macro/optionOMNI_SECONDS_PER_MINUTE
- A library macro/optionOMNI_SECONDS_PER_NANOSECOND
- A library macro/optionOMNI_SECONDS_PER_TICK
- A library macro/optionOMNI_SET_PRI_UNSUPPORTED_STR
- "Setting thread priority is not supported on this system"OMNI_SOCK_FLAGS_NONE
- A library macro/optionOMNI_STRING_COUNT_GT0_STR
- "Count must be greater than 0"OMNI_STRING_INVALID_BINARY_FORMAT_STR
- A library macro/optionOMNI_STRING_INVALID_FORMAT_STR
- "The specified string does not contain a valid binary number"OMNI_STRING_INVALID_SIZE_STR
- "The binary string length is greater than sizeof conversion unit"OMNI_STRING_NOT_NUMERIC_STR
- "The specified string is not a valid numeric value"OMNI_SUCCESS_STR
- "Success"OMNI_TAU
- A library macro/optionOMNI_TAU_F
- A library macro/optionOMNI_TAU_L
- A library macro/optionOMNI_TB_IVAL
- A library macro/optionOMNI_TERA_STR
- "Terabyte"OMNI_THREAD_STARTED_STR
- "A thread has already been started"OMNI_TIBI_STR
- "Tebibyte"OMNI_TIB_IVAL
- A library macro/optionOMNI_TIB_STR
- "TiB"OMNI_TICKS_PER_DAY
- A library macro/optionOMNI_TICKS_PER_HOUR
- A library macro/optionOMNI_TICKS_PER_MICROSECOND
- A library macro/optionOMNI_TICKS_PER_MILLISECOND
- A library macro/optionOMNI_TICKS_PER_MINUTE
- A library macro/optionOMNI_TICKS_PER_NANOSECOND
- A library macro/optionOMNI_TICKS_PER_SECOND
- A library macro/optionOMNI_TICKS_PER_TENTH_SECOND
- A library macro/optionOMNI_TICKS_TO_10000AD
- A library macro/optionOMNI_TOB_STR
- "TB"OMNI_UNIX_EPOCH_MILLISECONDS
- A library macro/optionOMNI_UNIX_EPOCH_SECONDS
- A library macro/optionOMNI_UNIX_EPOCH_TICKS
- A library macro/optionOMNI_UNKNOWN_STR
- "Unknown"OMNI_YIBI_STR
- "Yobibyte"OMNI_YIB_STR
- "YiB"OMNI_YOB_STR
- "YB"OMNI_YOTTA_STR
- "Yottabyte"OMNI_ZETTA_STR
- "Zettabyte"OMNI_ZIBI_STR
- "Zebibyte"OMNI_ZIB_STR
- "ZiB"OMNI_ZOB_STR
- "ZB"
Library Macros
The following is a list of macros used internally by the library but can be utilized by user code.
The following is a list of macros used internally by the library but can be utilized by user code.
OMNI_ARCH_AMD64
- Defines an AMD64 processor architecture was detected.OMNI_ARCH_ARM
- Defines an ARM processor architecture was detected.OMNI_ARCH_ARM64
- Defines an ARM 64-bit processor architecture was detected.OMNI_ARCH_BLACKFIN
- Defines a Blackfin processor architecture was detected.OMNI_ARCH_CONVEX
- Defines a Convex processor architecture was detected.OMNI_ARCH_DEC_ALPHA
- Defines a DEC-Alpha processor architecture was detected.OMNI_ARCH_EPIPHANY
- Defines an Epiphany processor architecture was detected.OMNI_ARCH_HPPA_RISC
- Defines a HP/PA RISC processor architecture was detected.OMNI_ARCH_INTEL_IA64
- Defines an Intel x64 (IA64) processor architecture was detected.OMNI_ARCH_INTEL_X86
- Defines an Intel x86 processor architecture was detected.OMNI_ARCH_MIPS
- Defines a MIPS processor architecture was detected.OMNI_ARCH_MOTOROLA_68K
- Defines a Motorola 68k processor architecture was detected.OMNI_ARCH_POWER_PC
- Defines a PowerPC processor architecture was detected.OMNI_ARCH_PYRAMID_9810
- Defines a Pyramid 9810 processor architecture was detected.OMNI_ARCH_RS6000
- Defines an RS/600 processor architecture was detected.OMNI_ARCH_SPARC
- Defines a SPARC processor architecture was detected.OMNI_ARCH_SUPER_H
- Defines a SuperH processor architecture was detected.OMNI_ARCH_SYSTEM_Z
- Defines a SystemZ processor architecture was detected.OMNI_ARCH_TMS320
- Defines an TMS320 processor architecture was detected.OMNI_ARCH_TMS470
- Defines a TMS470 processor architecture was detected.OMNI_CHAR_T
- Defines the underlying char type.OMNI_CLOCK_FREQ_T
- Defines the underlying clock frequency variable type.OMNI_CLOCK_TICK_T
- Defines the underlying clock tick type.OMNI_COND_T
- Defines the underlying condition variable type.OMNI_DATE
- Defines the build date for the library.OMNI_DBGE
- A helper macro used for debug error output.OMNI_DBGEV
- A helper macro used for debug error output.OMNI_DBG_L1
- Defined when debug level > 0.OMNI_DBG_L2
- Defined when debug level > 1.OMNI_DBG_L3
- Defined when debug level > 2.OMNI_DBG_L4
- Defined when debug level > 3.OMNI_DBG_L5
- Defined when debug level > 4.OMNI_DEBUG
- Defined when any debug values are defined.OMNI_DTOR_NO_THROW
- A library helper defining the exception specifier of destructors.OMNI_DTOR_THROWS
- A library helper defining the exception specifier of destructors.OMNI_FREE
- A library macro/optionOMNI_FREE_ARR
- A library macro/optionOMNI_FSTREAM_T
- Defines the underlyingfstream
type.OMNI_FW_VER_MAJ
- Defines the current library major version.OMNI_FW_VER_MIN
- Defines the current library minor version.OMNI_FW_VER_STR
- Defines the current library full version string.OMNI_FW_VER_SUB
- Defines the current library sub version.OMNI_GLE
- Defines the system 'get last error' API used based on OS detected.OMNI_GLE_PRNT
- Can be used in print statements to output the last error code.OMNI_IFSTREAM_T
- Defines the underlyingifstream
type.OMNI_ISTREAM_T
- Defines the underlyingistream
type.OMNI_MATH_DELTA
- A library macro/optionOMNI_MUTEX_T
- Defines the underlying mutex handle type based on system.OMNI_NAN
- A library macro/optionOMNI_OFSTREAM_T
- A library macro/optionOMNI_OSTREAM_T
- Defines the underlyingostream
type.OMNI_OS_AEGIS
- Defines Aegis environment was detected.OMNI_OS_AIX
- Defines AIX environment was detected.OMNI_OS_AMIGA
- Defines Amiga environment was detected.OMNI_OS_ANDROID
- Defines Android environment was detected.OMNI_OS_APPLE
- Defines Apple environment was detected.OMNI_OS_APPOLO
- Defines Appolo environment was detected.OMNI_OS_BEOS
- Defines BeOS environment was detected.OMNI_OS_BLUEGENE
- Defines Blue Gene environment was detected.OMNI_OS_BSD
- Defines BSD environment was detected.OMNI_OS_BSDI
- Defines BSD/OS environment was detected.OMNI_OS_CONVEX
- Defines ConvexOS environment was detected.OMNI_OS_CRAY
- Defines UNICOS/mp environment was detected.OMNI_OS_CYGWIN
- Defines Cygwin environment was detected.OMNI_OS_DGUX
- Defines DG/UX environment was detected.OMNI_OS_DRAGONFLYBSD
- Defines DragnFly BSD environment was detected.OMNI_OS_DYNIX
- Defines DYNIX/ptx environment was detected.OMNI_OS_ECOS
- Defines eCos environment was detected.OMNI_OS_EMX
- Defines EMX environment was detected.OMNI_OS_FREEBSD
- Defines FreeBSD environment was detected.OMNI_OS_GNU_FREEBSD
- Defines GNU/kFreeBSD environment was detected.OMNI_OS_GNU_HURD
- Defines GNU aka GNU/Hurd environment was detected.OMNI_OS_GNU_LINUX
- Defines GNU/Linux environment was detected.OMNI_OS_HIUXMPP
- Defines HI-UX MPP environment was detected.OMNI_OS_HPUX
- Defines HP-UX environment was detected.OMNI_OS_INTEGRITY
- Defines INTEGRITY environment was detected.OMNI_OS_INTERIX
- Defines Interix environment was detected.OMNI_OS_IRIX
- Defines IRIX environment was detected.OMNI_OS_LINUX
- Defines Linux environment was detected.OMNI_OS_LYNXOS
- Defines LynxOS environment was detected.OMNI_OS_MACOS
- Defines Apple macOS environment was detected.OMNI_OS_MICROWARE_OS9
- Defines Microware OS-9 environment was detected.OMNI_OS_MINGW
- Defines a MinGW environment was detected.OMNI_OS_MINIX
- Defines MINIX environment was detected.OMNI_OS_MORPHOS
- Defines MorphOS environment was detected.OMNI_OS_MPEIX
- Defines MPE/iX environment was detected.OMNI_OS_MSDOS
- Defines MSDOS environment was detected.OMNI_OS_NETBSD
- Defines NetBSD environment was detected.OMNI_OS_NONSTOP
- Defines NonStop environment was detected.OMNI_OS_NUCLEUS
- Defines Nucleus RTOS environment was detected.OMNI_OS_OPENBSD
- Defines OpenBSD environment was detected.OMNI_OS_OS2
- Defines OS/2 environment was detected.OMNI_OS_OS400
- Defines IBM OS/400 environment was detected.OMNI_OS_OSF1
- Defines Tru64 (OSF/1) environment was detected.OMNI_OS_PALMOS
- Defines Palm OS environment was detected.OMNI_OS_PYRAMID
- Defines Pyramid DC/OSx environment was detected.OMNI_OS_QNX
- Defines QNX environment was detected.OMNI_OS_RELIANT_UNIX
- Defines Reliant UNIX environment was detected.OMNI_OS_SCO_OPENSERVER
- Defines SCO OpenServer environment was detected.OMNI_OS_SOLARIS
- Defines Solaris environment was detected.OMNI_OS_SUNOS
- Defines SunOS environment was detected.OMNI_OS_SVR
- Defines SVR4 environment was detected.OMNI_OS_SYLLABLE
- Defines Syllable environment was detected.OMNI_OS_SYMBIAN
- Defines Symbian OS environment was detected.OMNI_OS_ULTRIX
- Defines Ultrix environment was detected.OMNI_OS_UNICOS
- Defines UNICOS environment was detected.OMNI_OS_UNIX
- Defines Unix environment was detected.OMNI_OS_UNIXWARE
- Defines UnixWare environment was detected.OMNI_OS_UTS
- Defines Amdahl UTS environment was detected.OMNI_OS_UWIN
- Defines U/Win environment was detected.OMNI_OS_VMS
- Defines VMS environment was detected.OMNI_OS_VOS
- Defines Stratus VOS environment was detected.OMNI_OS_WIN
- Defines Windows environment was detected.OMNI_OS_WIN8
- Defines that Windows 8 API headers should be used.OMNI_OS_WINCE
- Defines WindowsCE environment was detected.OMNI_OS_WINDU
- Defines Wind/U environment was detected.OMNI_OS_ZOS
- Defines z/OS environment was detected.OMNI_PATH_ROOT
- A library macro/optionOMNI_PATH_SEPARATOR
- A library macro/optionOMNI_PRINT
- A library macro/optionOMNI_PRINTL
- A library macro/optionOMNI_SEM_T
- Defines the underlying semaphore type based on system.OMNI_SPIN_LOCK_T
- Defines the spin lock type used by the library.OMNI_SSTREAM_T
- Defines the underlying string stream type for the library/types.OMNI_STREAM_FN_OPERATORS
- A library macro/optionOMNI_STREAM_OPERATORS
- A helper macro to implement theoperator<<
stream friend functions.OMNI_STRING_T
- Defines the underlying string type.OMNI_THREAD_ARGS_T
- Defines the thread parameter argument type used by the library.OMNI_THREAD_ARG_NULL_T
- Defines the null thread parameter argument type used by the library.OMNI_THREAD_CALL_T
- Defines the thread function call type.OMNI_THREAD_FNPTR_T
- Defines the thread function pointer type used by the library.OMNI_THREAD_HANDLE_T
- Defines the thread handle type used by the library.OMNI_THREAD_RET_T
- Defines the thread function return type used by the library.OMNI_THREAD_T
- Defines the thread type used by the library.OMNI_TIME
- The timestamp used for the library version information.OMNI_UNICODE
- Defined if a Unicode build is detected.OMNI_WINCODE
- Defined when a Windows Unicode environment detected.OMNI_WNEW_LINE
- A library macro/option