#include "XnPlatform.h"#include "XnMacros.h"#include "XnStatusCodes.h"#include "XnOSStrings.h"#include "XnOSMemory.h"#include "Win32/XnOSWin32.h"#include <windows.h>#include <time.h>#include <stdlib.h>#include <stdio.h>#include <malloc.h>#include <io.h>#include <assert.h>#include <float.h>#include <crtdbg.h>Go to the source code of this file.
Classes | |
| struct | xnOSInfo |
Defines | |
| #define | XN_MASK_OS "xnOS" |
| #define | XN_MAX_OS_NAME_LENGTH 255 |
| #define | XN_OS_FILE_READ 0x01 |
| #define | XN_OS_FILE_WRITE 0x02 |
| #define | XN_OS_FILE_CREATE_NEW_ONLY 0x04 |
| #define | XN_OS_FILE_TRUNCATE 0x08 |
| #define | XN_OS_FILE_APPEND 0x10 |
| #define | XN_OS_FILE_AUTO_FLUSH 0x20 |
| #define | XN_OS_NETWORK_LOCAL_HOST "127.0.0.1" |
| #define | XN_VALIDATE_INPUT_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_NULL_INPUT_PTR) |
| #define | XN_VALIDATE_OUTPUT_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_NULL_OUTPUT_PTR) |
| #define | XN_VALIDATE_ALLOC_PTR(x) XN_VALIDATE_PTR(x, XN_STATUS_ALLOC_FAILED) |
| #define | XN_VALIDATE_ALLOC(x, y) |
| #define | XN_VALIDATE_CALLOC(x, y, z) |
| #define | XN_VALIDATE_ALIGNED_ALLOC(x, y, w) |
| #define | XN_VALIDATE_ALIGNED_CALLOC(x, y, z, w) |
| #define | XN_FREE_AND_NULL(x) |
| #define | XN_ALIGNED_FREE_AND_NULL(x) |
| #define | XN_VALIDATE_NEW(ptr, type,...) |
| #define | XN_VALIDATE_NEW_AND_INIT(ptr, type,...) |
| #define | XN_VALIDATE_STR_APPEND(w, x, y, z) |
| #define | XN_VALIDATE_STR_PREFIX(w, x, y, z) |
| #define | XN_VALIDATE_STR_COPY(w, x, y, z) |
| #define | XN_VALIDATE_STRN_COPY(v, w, x, y, z) |
| #define | XN_VALIDATE_READ_INI_STR(u, v, w, x, y, z) |
| #define | XN_VALIDATE_READ_INI_INT(v, w, x, y, z) |
| #define | XN_VALIDATE_READ_INI_FLOAT(v, w, x, y, z) |
| #define | XN_VALIDATE_READ_INI_DOUBLE(v, w, x, y, z) |
| #define | XN_VALIDATE_LOCK_MUTEX(x, y, z) |
| #define | XN_VALIDATE_UNLOCK_MUTEX(x, z) |
| #define | XN_VALIDATE_FILE_EXISTS_RET(x, y, z, w) |
| #define | XN_VALIDATE_FILE_EXISTS(x, y, z) XN_VALIDATE_FILE_EXISTS_RET(x,y,z,XN_STATUS_OS_FILE_NOT_FOUND) |
| #define | XN_NEW(type,...) new type(__VA_ARGS__) |
| #define | XN_NEW_ARR(type, count) new type[count] |
| #define | XN_DELETE(p) delete (p) |
| #define | XN_DELETE_ARR(p) delete[] (p) |
Typedefs | |
| typedef struct xnOSInfo | xnOSInfo |
| typedef XnBool(* | XnConditionFunc )(void *pConditionData) |
| typedef enum XnThreadPriority | XnThreadPriority |
| typedef struct xnOSSocket * | XN_SOCKET_HANDLE |
| typedef struct XnOSSharedMemory | XnOSSharedMemory |
| typedef struct XnOSSharedMemory * | XN_SHARED_MEMORY_HANDLE |
Enumerations | |
| enum | XnOSSeekType { XN_OS_SEEK_SET = 0, XN_OS_SEEK_CUR, XN_OS_SEEK_END } |
| enum | XnOSSocketType { XN_OS_UDP_SOCKET = 0, XN_OS_TCP_SOCKET } |
| enum | XnAllocationType { XN_ALLOCATION_MALLOC, XN_ALLOCATION_MALLOC_ALIGNED, XN_ALLOCATION_CALLOC, XN_ALLOCATION_CALLOC_ALIGNED, XN_ALLOCATION_NEW, XN_ALLOCATION_NEW_ARRAY } |
| enum | XnThreadPriority { XN_PRIORITY_LOW, XN_PRIORITY_NORMAL, XN_PRIORITY_HIGH, XN_PRIORITY_CRITICAL } |
Functions | |
| XN_C_API XnStatus | xnOSInit () |
| XN_C_API XnStatus | xnOSShutdown () |
| XN_C_API XnStatus | xnOSGetInfo (xnOSInfo *pOSInfo) |
| XN_C_API void * | xnOSLogMemAlloc (void *pMemBlock, XnAllocationType nAllocType, XnUInt32 nBytes, const XnChar *csFunction, const XnChar *csFile, XnUInt32 nLine, const XnChar *csAdditional) |
| XN_C_API void | xnOSLogMemFree (const void *pMemBlock) |
| XN_C_API void | xnOSWriteMemoryReport (const XnChar *csFileName) |
| XN_C_API XnStatus | xnOSGetFileList (const XnChar *cpSearchPattern, const XnChar *cpPrefixPath, XnChar cpFileList[][XN_FILE_MAX_PATH], const XnUInt32 nMaxFiles, XnUInt32 *pnFoundFiles) |
| XN_C_API XnStatus | xnOSOpenFile (const XnChar *cpFileName, const XnUInt32 nFlags, XN_FILE_HANDLE *pFile) |
| XN_C_API XnStatus | xnOSCloseFile (XN_FILE_HANDLE *pFile) |
| XN_C_API XnStatus | xnOSReadFile (const XN_FILE_HANDLE File, void *pBuffer, XnUInt32 *pnBufferSize) |
| XN_C_API XnStatus | xnOSWriteFile (const XN_FILE_HANDLE File, const void *pBuffer, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSSeekFile (const XN_FILE_HANDLE File, const XnOSSeekType SeekType, const XnInt32 nOffset) |
| XN_C_API XnStatus | xnOSTellFile (const XN_FILE_HANDLE File, XnUInt32 *nFilePos) |
| XN_C_API XnStatus | xnOSFlushFile (const XN_FILE_HANDLE File) |
| XN_C_API XnStatus | xnOSDoesFileExist (const XnChar *cpFileName, XnBool *pbResult) |
| XN_C_API XnStatus | xnOSDoesDirecotyExist (const XnChar *cpDirName, XnBool *pbResult) |
| XN_C_API XnStatus | xnOSLoadFile (const XnChar *cpFileName, void *pBuffer, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSSaveFile (const XnChar *cpFileName, const void *pBuffer, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSAppendFile (const XnChar *cpFileName, const void *pBuffer, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSGetFileSize (const XnChar *cpFileName, XnUInt32 *pnFileSize) |
| XN_C_API XnStatus | xnOSCreateDirectory (const XnChar *cpDirName) |
| XN_C_API XnStatus | xnOSGetDirName (const XnChar *cpFilePath, XnChar *cpDirName, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSGetFileName (const XnChar *cpFilePath, XnChar *cpFileName, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSGetFullPathName (const XnChar *strFilePath, XnChar *strFullPath, XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSGetCurrentDir (XnChar *cpDirName, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSSetCurrentDir (const XnChar *cpDirName) |
| XN_C_API XnStatus | xnOSDeleteFile (const XnChar *cpFileName) |
| XN_C_API XnStatus | xnOSReadStringFromINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnChar *cpDest, const XnUInt32 nDestLength) |
| XN_C_API XnStatus | xnOSReadFloatFromINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnFloat *fDest) |
| XN_C_API XnStatus | xnOSReadDoubleFromINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnDouble *fDest) |
| XN_C_API XnStatus | xnOSReadIntFromINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, XnUInt32 *nDest) |
| XN_C_API XnStatus | xnOSWriteStringToINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnChar *cpSrc) |
| XN_C_API XnStatus | xnOSWriteFloatToINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnFloat fSrc) |
| XN_C_API XnStatus | xnOSWriteDoubleToINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnDouble fSrc) |
| XN_C_API XnStatus | xnOSWriteIntToINI (const XnChar *cpINIFile, const XnChar *cpSection, const XnChar *cpKey, const XnUInt32 nSrc) |
| XN_C_API XnStatus | xnOSLoadLibrary (const XnChar *cpFileName, XN_LIB_HANDLE *pLibHandle) |
| XN_C_API XnStatus | xnOSFreeLibrary (const XN_LIB_HANDLE LibHandle) |
| XN_C_API XnStatus | xnOSGetProcAddress (const XN_LIB_HANDLE LibHandle, const XnChar *cpProcName, XnFarProc *pProcAddr) |
| XN_C_API XnStatus | xnOSGetEpochTime (XnUInt32 *nEpochTime) |
| XN_C_API XnStatus | xnOSGetTimeStamp (XnUInt64 *nTimeStamp) |
| XN_C_API XnStatus | xnOSGetHighResTimeStamp (XnUInt64 *nTimeStamp) |
| XN_C_API XnStatus | xnOSSleep (XnUInt32 nMilliseconds) |
| XN_C_API XnStatus | xnOSStartTimer (XnOSTimer *pTimer) |
| XN_C_API XnStatus | xnOSStartHighResTimer (XnOSTimer *pTimer) |
| XN_C_API XnStatus | xnOSQueryTimer (XnOSTimer Timer, XnUInt64 *pnTimeSinceStart) |
| XN_C_API XnStatus | xnOSStopTimer (XnOSTimer *pTimer) |
| XN_C_API XnStatus | xnOSGetMonoTime (struct timespec *pTime) |
| XN_C_API XnStatus | xnOSGetTimeout (struct timespec *pTime, XnUInt32 nMilliseconds) |
| XN_C_API XnStatus | xnOSGetAbsTimeout (struct timespec *pTime, XnUInt32 nMilliseconds) |
| XN_C_API XnStatus | xnOSCreateThread (XN_THREAD_PROC_PROTO pThreadProc, const XN_THREAD_PARAM pThreadParam, XN_THREAD_HANDLE *pThreadHandle) |
| XN_C_API XnStatus | xnOSTerminateThread (XN_THREAD_HANDLE *pThreadHandle) |
| XN_C_API XnStatus | xnOSCloseThread (XN_THREAD_HANDLE *pThreadHandle) |
| XN_C_API XnStatus | xnOSWaitForThreadExit (XN_THREAD_HANDLE ThreadHandle, XnUInt32 nMilliseconds) |
| XN_C_API XnStatus | xnOSSetThreadPriority (XN_THREAD_HANDLE ThreadHandle, XnThreadPriority nPriority) |
| XN_C_API XnStatus | xnOSGetCurrentThreadID (XN_THREAD_ID *pThreadID) |
| XN_C_API XnStatus | xnOSWaitAndTerminateThread (XN_THREAD_HANDLE *pThreadHandle, XnUInt32 nMilliseconds) |
| XN_C_API XnStatus | xnOSGetCurrentProcessID (XN_PROCESS_ID *pProcID) |
| XN_C_API XnStatus | xnOSCreateProcess (const XnChar *strExecutable, XnUInt32 nArgs, const XnChar **pstrArgs, XN_PROCESS_ID *pProcID) |
| XN_C_API XnStatus | xnOSCreateMutex (XN_MUTEX_HANDLE *pMutexHandle) |
| XN_C_API XnStatus | xnOSCreateNamedMutex (XN_MUTEX_HANDLE *pMutexHandle, const XnChar *cpMutexName) |
| XN_C_API XnStatus | xnOSCloseMutex (XN_MUTEX_HANDLE *pMutexHandle) |
| XN_C_API XnStatus | xnOSLockMutex (const XN_MUTEX_HANDLE MutexHandle, XnUInt32 nMilliseconds) |
| XN_C_API XnStatus | xnOSUnLockMutex (const XN_MUTEX_HANDLE MutexHandle) |
| XN_C_API XnStatus | xnOSCreateCriticalSection (XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle) |
| XN_C_API XnStatus | xnOSCloseCriticalSection (XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle) |
| XN_C_API XnStatus | xnOSEnterCriticalSection (XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle) |
| XN_C_API XnStatus | xnOSLeaveCriticalSection (XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle) |
| XN_C_API XnStatus | xnOSCreateEvent (XN_EVENT_HANDLE *pEventHandle, XnBool bManualReset) |
| XN_C_API XnStatus | xnOSCreateNamedEvent (XN_EVENT_HANDLE *pEventHandle, const XnChar *cpEventName, XnBool bManualReset) |
| XN_C_API XnStatus | xnOSOpenNamedEvent (XN_EVENT_HANDLE *pEventHandle, const XnChar *cpEventName) |
| XN_C_API XnStatus | xnOSCloseEvent (XN_EVENT_HANDLE *pEventHandle) |
| XN_C_API XnStatus | xnOSSetEvent (const XN_EVENT_HANDLE EventHandle) |
| XN_C_API XnStatus | xnOSResetEvent (const XN_EVENT_HANDLE EventHandle) |
| XN_C_API XnStatus | xnOSWaitEvent (const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds) |
| XN_C_API XnBool | xnOSIsEventSet (const XN_EVENT_HANDLE EventHandle) |
| XN_C_API XnStatus | xnOSCreateSemaphore (XN_SEMAPHORE_HANDLE *pSemaphoreHandle, XnUInt32 nInitialCount) |
| XN_C_API XnStatus | xnOSLockSemaphore (XN_SEMAPHORE_HANDLE hSemaphore, XnUInt32 nMilliseconds) |
| XN_C_API XnStatus | xnOSUnlockSemaphore (XN_SEMAPHORE_HANDLE hSemaphore) |
| XN_C_API XnStatus | xnOSCloseSemaphore (XN_SEMAPHORE_HANDLE *pSemaphoreHandle) |
| XN_C_API XnStatus | xnOSWaitForCondition (const XN_EVENT_HANDLE EventHandle, XnUInt32 nMilliseconds, XnConditionFunc pConditionFunc, void *pConditionData) |
| XN_C_API XnStatus | xnOSInitNetwork () |
| XN_C_API XnStatus | xnOSShutdownNetwork () |
| XN_C_API XnStatus | xnOSCreateSocket (const XnOSSocketType SocketType, const XnChar *cpIPAddress, const XnUInt16 nPort, XN_SOCKET_HANDLE *SocketPtr) |
| XN_C_API XnStatus | xnOSCloseSocket (XN_SOCKET_HANDLE Socket) |
| XN_C_API XnStatus | xnOSBindSocket (XN_SOCKET_HANDLE Socket) |
| XN_C_API XnStatus | xnOSListenSocket (XN_SOCKET_HANDLE Socket) |
| XN_C_API XnStatus | xnOSAcceptSocket (XN_SOCKET_HANDLE ListenSocket, XN_SOCKET_HANDLE *AcceptSocketPtr, XnUInt32 nMillisecsTimeout) |
| XN_C_API XnStatus | xnOSConnectSocket (XN_SOCKET_HANDLE Socket, XnUInt32 nMillisecsTimeout) |
| XN_C_API XnStatus | xnOSSetSocketBufferSize (XN_SOCKET_HANDLE Socket, const XnUInt32 nSocketBufferSize) |
| XN_C_API XnStatus | xnOSSendNetworkBuffer (XN_SOCKET_HANDLE Socket, const XnChar *cpBuffer, const XnUInt32 nBufferSize) |
| XN_C_API XnStatus | xnOSSendToNetworkBuffer (XN_SOCKET_HANDLE Socket, const XnChar *cpBuffer, const XnUInt32 nBufferSize, XN_SOCKET_HANDLE SocketTo) |
| XN_C_API XnStatus | xnOSReceiveNetworkBuffer (XN_SOCKET_HANDLE Socket, XnChar *cpBuffer, XnUInt32 *pnBufferSize, XnUInt32 nMillisecsTimeout) |
| XN_C_API XnStatus | xnOSReceiveFromNetworkBuffer (XN_SOCKET_HANDLE Socket, XnChar *cpBuffer, XnUInt32 *pnBufferSize, XN_SOCKET_HANDLE *SocketFrom) |
| XN_C_API XnStatus | xnOSCreateSharedMemory (const XnChar *strName, XnUInt32 nSize, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE *phSharedMem) |
| XN_C_API XnStatus | xnOSOpenSharedMemory (const XnChar *strName, XnUInt32 nAccessFlags, XN_SHARED_MEMORY_HANDLE *phSharedMem) |
| XN_C_API XnStatus | xnOSCloseSharedMemory (XN_SHARED_MEMORY_HANDLE hSharedMem) |
| XN_C_API XnStatus | xnOSSharedMemoryGetAddress (XN_SHARED_MEMORY_HANDLE hSharedMem, void **ppAddress) |
| XN_C_API XnBool | xnOSWasKeyboardHit () |
| XN_C_API XnChar | xnOSReadCharFromInput () |
| XN_C_API XnStatus | xnOSGetCurrentCallStack (XnUInt32 nFramesToSkip, XnChar **astrFrames, XnUInt32 nMaxNameLength, XnUInt32 *pnFrames) |
Variables | |
| XnOSTimer | g_xnOSHighResGlobalTimer |
| #define XN_ALIGNED_FREE_AND_NULL | ( | x | ) |
if (x != NULL) \ { \ xnOSFreeAligned(x); \ x = NULL; \ }
Validate that the aligned memory free request succeeded and set X to NULL.
| #define XN_DELETE | ( | p | ) | delete (p) |
| #define XN_DELETE_ARR | ( | p | ) | delete[] (p) |
| #define XN_FREE_AND_NULL | ( | x | ) |
if (x != NULL) \ { \ xnOSFree(x); \ x = NULL; \ }
Validate that the memory free request succeeded and set X to NULL.
| #define XN_MASK_OS "xnOS" |
| #define XN_MAX_OS_NAME_LENGTH 255 |
| #define XN_NEW | ( | type, | |||
| ... | ) | new type(__VA_ARGS__) |
| #define XN_NEW_ARR | ( | type, | |||
| count | ) | new type[count] |
| #define XN_OS_FILE_APPEND 0x10 |
File be opened in append mode
| #define XN_OS_FILE_AUTO_FLUSH 0x20 |
All writes will be immediately written to disk
| #define XN_OS_FILE_CREATE_NEW_ONLY 0x04 |
Create a new file (but only if it doesn't exist).
| #define XN_OS_FILE_READ 0x01 |
Open the file for reading.
| #define XN_OS_FILE_TRUNCATE 0x08 |
Truncate the file if it already exists.
| #define XN_OS_FILE_WRITE 0x02 |
Open the file for writing.
| #define XN_OS_NETWORK_LOCAL_HOST "127.0.0.1" |
| #define XN_VALIDATE_ALIGNED_ALLOC | ( | x, | |||
| y, | |||||
| w | ) |
x = (y*)xnOSMallocAligned(sizeof(y), w); \ XN_VALIDATE_ALLOC_PTR(x);
Allocate Y aligned bytes into the X pointer and make sure NULL wasn't returned.
| #define XN_VALIDATE_ALIGNED_CALLOC | ( | x, | |||
| y, | |||||
| z, | |||||
| w | ) |
x = (y*)xnOSCallocAligned(z, sizeof(y), w); \ XN_VALIDATE_ALLOC_PTR(x);
Allocate Z aligned elements of Y type into the X pointer and make sure NULL wasn't returned.
| #define XN_VALIDATE_ALLOC | ( | x, | |||
| y | ) |
x = (y*)xnOSMalloc(sizeof(y)); \ XN_VALIDATE_ALLOC_PTR(x);
Allocate Y bytes into the X pointer and make sure NULL wasn't returned.
| #define XN_VALIDATE_ALLOC_PTR | ( | x | ) | XN_VALIDATE_PTR(x, XN_STATUS_ALLOC_FAILED) |
Validate that a X pointer after a memory allocation call is not NULL.
| #define XN_VALIDATE_CALLOC | ( | x, | |||
| y, | |||||
| z | ) |
x = (y*)xnOSCalloc(z, sizeof(y)); \ XN_VALIDATE_ALLOC_PTR(x);
Allocate Z elements of Y type into the X pointer and make sure NULL wasn't returned.
| #define XN_VALIDATE_FILE_EXISTS | ( | x, | |||
| y, | |||||
| z | ) | XN_VALIDATE_FILE_EXISTS_RET(x,y,z,XN_STATUS_OS_FILE_NOT_FOUND) |
| #define XN_VALIDATE_FILE_EXISTS_RET | ( | x, | |||
| y, | |||||
| z, | |||||
| w | ) |
y = xnOSDoesFileExist(x, &z); \ XN_IS_STATUS_OK(y); \ if (z == FALSE) \ { \ return (w); \ }
Returns XN_STATUS_OS_FILE_NOT_FOUND if the file x doesn't exists.
| #define XN_VALIDATE_INPUT_PTR | ( | x | ) | XN_VALIDATE_PTR(x, XN_STATUS_NULL_INPUT_PTR) |
Validate that the input pointer X is not NULL.
| #define XN_VALIDATE_LOCK_MUTEX | ( | x, | |||
| y, | |||||
| z | ) |
z = xnOSLockMutex(x, y); \ XN_IS_STATUS_OK(z);
Lock the mutex x for a y period of time and check the status via z.
| #define XN_VALIDATE_NEW | ( | ptr, | |||
| type, | |||||
| ... | ) |
__pragma(warning (push)) \
__pragma(warning (disable: 4127)) \
do { \
(ptr) = XN_NEW(type, __VA_ARGS__); \
if ((ptr) == NULL) \
{ \
return (XN_STATUS_ALLOC_FAILED); \
} \
} while (0) \
__pragma(warning (pop))
Creates a new type object and validates that allocation succeeded.
| #define XN_VALIDATE_NEW_AND_INIT | ( | ptr, | |||
| type, | |||||
| ... | ) |
do { \ XN_VALIDATE_NEW(ptr, type, __VA_ARGS__); \ XnStatus rc = (ptr)->Init(); \ if (rc != XN_STATUS_OK) \ { \ XN_DELETE(ptr); \ return (rc); \ } \ } while (0)
Creates a new type object, validates that allocation succeeded, and initializes the object (type must have an Init function).
| #define XN_VALIDATE_OUTPUT_PTR | ( | x | ) | XN_VALIDATE_PTR(x, XN_STATUS_NULL_OUTPUT_PTR) |
Validate that the output pointer X is not NULL.
| #define XN_VALIDATE_READ_INI_DOUBLE | ( | v, | |||
| w, | |||||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSReadDoubleFromINI(v, w, x, y); \ XN_IS_STATUS_OK(z);
Read a double from the INI file and check the status via z.
| #define XN_VALIDATE_READ_INI_FLOAT | ( | v, | |||
| w, | |||||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSReadFloatFromINI(v, w, x, y); \ XN_IS_STATUS_OK(z);
Read a float from the INI file and check the status via z.
| #define XN_VALIDATE_READ_INI_INT | ( | v, | |||
| w, | |||||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSReadIntFromINI(v, w, x, y); \ XN_IS_STATUS_OK(z);
Read an int from the INI file and check the status via z.
| #define XN_VALIDATE_READ_INI_STR | ( | u, | |||
| v, | |||||
| w, | |||||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSReadStringFromINI(u, v, w, x, y); \ XN_IS_STATUS_OK(z);
Read a string from the INI file and check the status via z.
| #define XN_VALIDATE_STR_APPEND | ( | w, | |||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSStrAppend(w, x, y); \ XN_IS_STATUS_OK(z);
Append x into y (with z as the max size) and check the status via z.
| #define XN_VALIDATE_STR_COPY | ( | w, | |||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSStrCopy(w, x, y); \ XN_IS_STATUS_OK(z);
| #define XN_VALIDATE_STR_PREFIX | ( | w, | |||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSStrPrefix(w, x, y); \ XN_IS_STATUS_OK(z);
Prefix x into y (with z as the max size) and check the status via z.
| #define XN_VALIDATE_STRN_COPY | ( | v, | |||
| w, | |||||
| x, | |||||
| y, | |||||
| z | ) |
z = xnOSStrNCopy(v, w, x, y); \ XN_IS_STATUS_OK(z);
| #define XN_VALIDATE_UNLOCK_MUTEX | ( | x, | |||
| z | ) |
z = xnOSUnLockMutex(x); \ XN_IS_STATUS_OK(z);
UnLock the mutex x and check the status via z.
| typedef struct XnOSSharedMemory * XN_SHARED_MEMORY_HANDLE |
| typedef struct xnOSSocket* XN_SOCKET_HANDLE |
| typedef XnBool( * XnConditionFunc)(void *pConditionData) |
| typedef struct XnOSSharedMemory XnOSSharedMemory |
| typedef enum XnThreadPriority XnThreadPriority |
| enum XnAllocationType |
| enum XnOSSeekType |
| enum XnOSSocketType |
| enum XnThreadPriority |
| XN_C_API XnStatus xnOSAcceptSocket | ( | XN_SOCKET_HANDLE | ListenSocket, | |
| XN_SOCKET_HANDLE * | AcceptSocketPtr, | |||
| XnUInt32 | nMillisecsTimeout | |||
| ) |
| XN_C_API XnStatus xnOSAppendFile | ( | const XnChar * | cpFileName, | |
| const void * | pBuffer, | |||
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSBindSocket | ( | XN_SOCKET_HANDLE | Socket | ) |
| XN_C_API XnStatus xnOSCloseCriticalSection | ( | XN_CRITICAL_SECTION_HANDLE * | pCriticalSectionHandle | ) |
| XN_C_API XnStatus xnOSCloseEvent | ( | XN_EVENT_HANDLE * | pEventHandle | ) |
| XN_C_API XnStatus xnOSCloseFile | ( | XN_FILE_HANDLE * | pFile | ) |
| XN_C_API XnStatus xnOSCloseMutex | ( | XN_MUTEX_HANDLE * | pMutexHandle | ) |
| XN_C_API XnStatus xnOSCloseSemaphore | ( | XN_SEMAPHORE_HANDLE * | pSemaphoreHandle | ) |
| XN_C_API XnStatus xnOSCloseSharedMemory | ( | XN_SHARED_MEMORY_HANDLE | hSharedMem | ) |
Closes a shared memory block.
| hSharedMem | [in] A handle to the block to be closed. |
| XN_C_API XnStatus xnOSCloseSocket | ( | XN_SOCKET_HANDLE | Socket | ) |
| XN_C_API XnStatus xnOSCloseThread | ( | XN_THREAD_HANDLE * | pThreadHandle | ) |
| XN_C_API XnStatus xnOSConnectSocket | ( | XN_SOCKET_HANDLE | Socket, | |
| XnUInt32 | nMillisecsTimeout | |||
| ) |
| XN_C_API XnStatus xnOSCreateCriticalSection | ( | XN_CRITICAL_SECTION_HANDLE * | pCriticalSectionHandle | ) |
| XN_C_API XnStatus xnOSCreateDirectory | ( | const XnChar * | cpDirName | ) |
| XN_C_API XnStatus xnOSCreateEvent | ( | XN_EVENT_HANDLE * | pEventHandle, | |
| XnBool | bManualReset | |||
| ) |
| XN_C_API XnStatus xnOSCreateMutex | ( | XN_MUTEX_HANDLE * | pMutexHandle | ) |
| XN_C_API XnStatus xnOSCreateNamedEvent | ( | XN_EVENT_HANDLE * | pEventHandle, | |
| const XnChar * | cpEventName, | |||
| XnBool | bManualReset | |||
| ) |
| XN_C_API XnStatus xnOSCreateNamedMutex | ( | XN_MUTEX_HANDLE * | pMutexHandle, | |
| const XnChar * | cpMutexName | |||
| ) |
| XN_C_API XnStatus xnOSCreateProcess | ( | const XnChar * | strExecutable, | |
| XnUInt32 | nArgs, | |||
| const XnChar ** | pstrArgs, | |||
| XN_PROCESS_ID * | pProcID | |||
| ) |
| XN_C_API XnStatus xnOSCreateSemaphore | ( | XN_SEMAPHORE_HANDLE * | pSemaphoreHandle, | |
| XnUInt32 | nInitialCount | |||
| ) |
| XN_C_API XnStatus xnOSCreateSharedMemory | ( | const XnChar * | strName, | |
| XnUInt32 | nSize, | |||
| XnUInt32 | nAccessFlags, | |||
| XN_SHARED_MEMORY_HANDLE * | phSharedMem | |||
| ) |
Creates a shared memory block and maps it to the process memory.
| strName | [in] A machine-unique name that will be used by other processes to open this block. | |
| nSize | [in] The size of the buffer. | |
| nAccessFlags | [in] Creation flags. Can contain XN_OS_FILE_READ, XN_OS_FILE_WRITE or both. | |
| phSharedMem | [out] A handle to the shared-memory block. |
| XN_C_API XnStatus xnOSCreateSocket | ( | const XnOSSocketType | SocketType, | |
| const XnChar * | cpIPAddress, | |||
| const XnUInt16 | nPort, | |||
| XN_SOCKET_HANDLE * | SocketPtr | |||
| ) |
| XN_C_API XnStatus xnOSCreateThread | ( | XN_THREAD_PROC_PROTO | pThreadProc, | |
| const XN_THREAD_PARAM | pThreadParam, | |||
| XN_THREAD_HANDLE * | pThreadHandle | |||
| ) |
| XN_C_API XnStatus xnOSDeleteFile | ( | const XnChar * | cpFileName | ) |
| XN_C_API XnStatus xnOSDoesDirecotyExist | ( | const XnChar * | cpDirName, | |
| XnBool * | pbResult | |||
| ) |
| XN_C_API XnStatus xnOSDoesFileExist | ( | const XnChar * | cpFileName, | |
| XnBool * | pbResult | |||
| ) |
| XN_C_API XnStatus xnOSEnterCriticalSection | ( | XN_CRITICAL_SECTION_HANDLE * | pCriticalSectionHandle | ) |
| XN_C_API XnStatus xnOSFlushFile | ( | const XN_FILE_HANDLE | File | ) |
| XN_C_API XnStatus xnOSFreeLibrary | ( | const XN_LIB_HANDLE | LibHandle | ) |
| XN_C_API XnStatus xnOSGetAbsTimeout | ( | struct timespec * | pTime, | |
| XnUInt32 | nMilliseconds | |||
| ) |
| XN_C_API XnStatus xnOSGetCurrentCallStack | ( | XnUInt32 | nFramesToSkip, | |
| XnChar ** | astrFrames, | |||
| XnUInt32 | nMaxNameLength, | |||
| XnUInt32 * | pnFrames | |||
| ) |
| XN_C_API XnStatus xnOSGetCurrentDir | ( | XnChar * | cpDirName, | |
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSGetCurrentProcessID | ( | XN_PROCESS_ID * | pProcID | ) |
| XN_C_API XnStatus xnOSGetCurrentThreadID | ( | XN_THREAD_ID * | pThreadID | ) |
| XN_C_API XnStatus xnOSGetDirName | ( | const XnChar * | cpFilePath, | |
| XnChar * | cpDirName, | |||
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSGetEpochTime | ( | XnUInt32 * | nEpochTime | ) |
| XN_C_API XnStatus xnOSGetFileList | ( | const XnChar * | cpSearchPattern, | |
| const XnChar * | cpPrefixPath, | |||
| XnChar | cpFileList[][XN_FILE_MAX_PATH], | |||
| const XnUInt32 | nMaxFiles, | |||
| XnUInt32 * | pnFoundFiles | |||
| ) |
| XN_C_API XnStatus xnOSGetFileName | ( | const XnChar * | cpFilePath, | |
| XnChar * | cpFileName, | |||
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSGetFileSize | ( | const XnChar * | cpFileName, | |
| XnUInt32 * | pnFileSize | |||
| ) |
| XN_C_API XnStatus xnOSGetFullPathName | ( | const XnChar * | strFilePath, | |
| XnChar * | strFullPath, | |||
| XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSGetHighResTimeStamp | ( | XnUInt64 * | nTimeStamp | ) |
| XN_C_API XnStatus xnOSGetMonoTime | ( | struct timespec * | pTime | ) |
| XN_C_API XnStatus xnOSGetProcAddress | ( | const XN_LIB_HANDLE | LibHandle, | |
| const XnChar * | cpProcName, | |||
| XnFarProc * | pProcAddr | |||
| ) |
| XN_C_API XnStatus xnOSGetTimeout | ( | struct timespec * | pTime, | |
| XnUInt32 | nMilliseconds | |||
| ) |
| XN_C_API XnStatus xnOSGetTimeStamp | ( | XnUInt64 * | nTimeStamp | ) |
| XN_C_API XnStatus xnOSInit | ( | ) |
| XN_C_API XnStatus xnOSInitNetwork | ( | ) |
| XN_C_API XnBool xnOSIsEventSet | ( | const XN_EVENT_HANDLE | EventHandle | ) |
| XN_C_API XnStatus xnOSLeaveCriticalSection | ( | XN_CRITICAL_SECTION_HANDLE * | pCriticalSectionHandle | ) |
| XN_C_API XnStatus xnOSListenSocket | ( | XN_SOCKET_HANDLE | Socket | ) |
| XN_C_API XnStatus xnOSLoadFile | ( | const XnChar * | cpFileName, | |
| void * | pBuffer, | |||
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSLoadLibrary | ( | const XnChar * | cpFileName, | |
| XN_LIB_HANDLE * | pLibHandle | |||
| ) |
| XN_C_API XnStatus xnOSLockMutex | ( | const XN_MUTEX_HANDLE | MutexHandle, | |
| XnUInt32 | nMilliseconds | |||
| ) |
| XN_C_API XnStatus xnOSLockSemaphore | ( | XN_SEMAPHORE_HANDLE | hSemaphore, | |
| XnUInt32 | nMilliseconds | |||
| ) |
| XN_C_API void* xnOSLogMemAlloc | ( | void * | pMemBlock, | |
| XnAllocationType | nAllocType, | |||
| XnUInt32 | nBytes, | |||
| const XnChar * | csFunction, | |||
| const XnChar * | csFile, | |||
| XnUInt32 | nLine, | |||
| const XnChar * | csAdditional | |||
| ) |
Memory Profiling - Logs an allocation of memory.
| XN_C_API void xnOSLogMemFree | ( | const void * | pMemBlock | ) |
Memory Profiling - Logs freeing of memory.
| XN_C_API XnStatus xnOSOpenFile | ( | const XnChar * | cpFileName, | |
| const XnUInt32 | nFlags, | |||
| XN_FILE_HANDLE * | pFile | |||
| ) |
| XN_C_API XnStatus xnOSOpenNamedEvent | ( | XN_EVENT_HANDLE * | pEventHandle, | |
| const XnChar * | cpEventName | |||
| ) |
| XN_C_API XnStatus xnOSOpenSharedMemory | ( | const XnChar * | strName, | |
| XnUInt32 | nAccessFlags, | |||
| XN_SHARED_MEMORY_HANDLE * | phSharedMem | |||
| ) |
Opens a shared memory block, and returns the address in which it was mapped to the process' memory.
| strName | [in] A machine-unique name that will be used by other processes to open this block. | |
| nAccessFlags | [in] Creation flags. Must contain XN_OS_FILE_READ, and optionally XN_OS_FILE_WRITE. | |
| phSharedMem | [out] A handle to the shared-memory block. |
| XN_C_API XnStatus xnOSQueryTimer | ( | XnOSTimer | Timer, | |
| XnUInt64 * | pnTimeSinceStart | |||
| ) |
| XN_C_API XnChar xnOSReadCharFromInput | ( | ) |
| XN_C_API XnStatus xnOSReadDoubleFromINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| XnDouble * | fDest | |||
| ) |
| XN_C_API XnStatus xnOSReadFile | ( | const XN_FILE_HANDLE | File, | |
| void * | pBuffer, | |||
| XnUInt32 * | pnBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSReadFloatFromINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| XnFloat * | fDest | |||
| ) |
| XN_C_API XnStatus xnOSReadIntFromINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| XnUInt32 * | nDest | |||
| ) |
| XN_C_API XnStatus xnOSReadStringFromINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| XnChar * | cpDest, | |||
| const XnUInt32 | nDestLength | |||
| ) |
| XN_C_API XnStatus xnOSReceiveFromNetworkBuffer | ( | XN_SOCKET_HANDLE | Socket, | |
| XnChar * | cpBuffer, | |||
| XnUInt32 * | pnBufferSize, | |||
| XN_SOCKET_HANDLE * | SocketFrom | |||
| ) |
| XN_C_API XnStatus xnOSReceiveNetworkBuffer | ( | XN_SOCKET_HANDLE | Socket, | |
| XnChar * | cpBuffer, | |||
| XnUInt32 * | pnBufferSize, | |||
| XnUInt32 | nMillisecsTimeout | |||
| ) |
| XN_C_API XnStatus xnOSResetEvent | ( | const XN_EVENT_HANDLE | EventHandle | ) |
| XN_C_API XnStatus xnOSSaveFile | ( | const XnChar * | cpFileName, | |
| const void * | pBuffer, | |||
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSSeekFile | ( | const XN_FILE_HANDLE | File, | |
| const XnOSSeekType | SeekType, | |||
| const XnInt32 | nOffset | |||
| ) |
| XN_C_API XnStatus xnOSSendNetworkBuffer | ( | XN_SOCKET_HANDLE | Socket, | |
| const XnChar * | cpBuffer, | |||
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSSendToNetworkBuffer | ( | XN_SOCKET_HANDLE | Socket, | |
| const XnChar * | cpBuffer, | |||
| const XnUInt32 | nBufferSize, | |||
| XN_SOCKET_HANDLE | SocketTo | |||
| ) |
| XN_C_API XnStatus xnOSSetCurrentDir | ( | const XnChar * | cpDirName | ) |
| XN_C_API XnStatus xnOSSetEvent | ( | const XN_EVENT_HANDLE | EventHandle | ) |
| XN_C_API XnStatus xnOSSetSocketBufferSize | ( | XN_SOCKET_HANDLE | Socket, | |
| const XnUInt32 | nSocketBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSSetThreadPriority | ( | XN_THREAD_HANDLE | ThreadHandle, | |
| XnThreadPriority | nPriority | |||
| ) |
| XN_C_API XnStatus xnOSSharedMemoryGetAddress | ( | XN_SHARED_MEMORY_HANDLE | hSharedMem, | |
| void ** | ppAddress | |||
| ) |
Gets the address in which the shared-memory block is mapped in this process.
| hSharedMem | [in] A handle to the shared memory block. | |
| ppAddress | [out] The address. |
| XN_C_API XnStatus xnOSShutdown | ( | ) |
| XN_C_API XnStatus xnOSShutdownNetwork | ( | ) |
| XN_C_API XnStatus xnOSSleep | ( | XnUInt32 | nMilliseconds | ) |
| XN_C_API XnStatus xnOSStartHighResTimer | ( | XnOSTimer * | pTimer | ) |
| XN_C_API XnStatus xnOSStartTimer | ( | XnOSTimer * | pTimer | ) |
| XN_C_API XnStatus xnOSStopTimer | ( | XnOSTimer * | pTimer | ) |
| XN_C_API XnStatus xnOSTellFile | ( | const XN_FILE_HANDLE | File, | |
| XnUInt32 * | nFilePos | |||
| ) |
| XN_C_API XnStatus xnOSTerminateThread | ( | XN_THREAD_HANDLE * | pThreadHandle | ) |
| XN_C_API XnStatus xnOSUnLockMutex | ( | const XN_MUTEX_HANDLE | MutexHandle | ) |
| XN_C_API XnStatus xnOSUnlockSemaphore | ( | XN_SEMAPHORE_HANDLE | hSemaphore | ) |
| XN_C_API XnStatus xnOSWaitAndTerminateThread | ( | XN_THREAD_HANDLE * | pThreadHandle, | |
| XnUInt32 | nMilliseconds | |||
| ) |
| XN_C_API XnStatus xnOSWaitEvent | ( | const XN_EVENT_HANDLE | EventHandle, | |
| XnUInt32 | nMilliseconds | |||
| ) |
| XN_C_API XnStatus xnOSWaitForCondition | ( | const XN_EVENT_HANDLE | EventHandle, | |
| XnUInt32 | nMilliseconds, | |||
| XnConditionFunc | pConditionFunc, | |||
| void * | pConditionData | |||
| ) |
Waits for a condition to be met. The condition is evaluated every time an event is set.
| EventHandle | [in] The Event handle. | |
| nMilliseconds | [in] A timeout in milliseconds to wait. | |
| pConditionFunc | [in] A function that should be called to evaluate condition. | |
| pConditionData | [in] A cookie to be passed to the condition functions. |
| XN_C_API XnStatus xnOSWaitForThreadExit | ( | XN_THREAD_HANDLE | ThreadHandle, | |
| XnUInt32 | nMilliseconds | |||
| ) |
| XN_C_API XnBool xnOSWasKeyboardHit | ( | ) |
| XN_C_API XnStatus xnOSWriteDoubleToINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| const XnDouble | fSrc | |||
| ) |
| XN_C_API XnStatus xnOSWriteFile | ( | const XN_FILE_HANDLE | File, | |
| const void * | pBuffer, | |||
| const XnUInt32 | nBufferSize | |||
| ) |
| XN_C_API XnStatus xnOSWriteFloatToINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| const XnFloat | fSrc | |||
| ) |
| XN_C_API XnStatus xnOSWriteIntToINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| const XnUInt32 | nSrc | |||
| ) |
| XN_C_API void xnOSWriteMemoryReport | ( | const XnChar * | csFileName | ) |
Memory Profiling - Prints a current memory report to requested file.
| XN_C_API XnStatus xnOSWriteStringToINI | ( | const XnChar * | cpINIFile, | |
| const XnChar * | cpSection, | |||
| const XnChar * | cpKey, | |||
| const XnChar * | cpSrc | |||
| ) |
| XnOSTimer g_xnOSHighResGlobalTimer |
The time since Xiron Core was initialized
1.6.3