ML Reference
MeVis/Foundation/Sources/MLUtilities/mlUtilsAPI.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-----------------------------------------------------------------------------------
00005 
00010 //-----------------------------------------------------------------------------------
00011 // Attention: All includes must be pure C!
00012 
00013 #ifndef __mlUtilsAPI_H
00014 #define __mlUtilsAPI_H
00015 
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019 
00020 #ifndef __mlUtilsSystemC_H
00021 #include "mlUtilsSystemC.h"
00022 #endif
00023 
00024 //--------------------------------------------------------------------------------------------
00025 //
00027 
00028 //
00029 //--------------------------------------------------------------------------------------------
00030 
00032 extern ML_UTILS_EXPORT const char*  MLTerminatorStrings[MLNumTerminators];
00033 
00037 ML_UTILS_EXPORT const char*         MLGetErrorCodeDescription(MLErrorCode errCode);
00038 
00042 ML_UTILS_EXPORT MLErrorCode         MLAddNewErrorCodeDescription(const char* errorString) ML_RETURN_VALUE_SHOULD_BE_USED;
00043 
00046 ML_UTILS_EXPORT MLErrorCode         MLFindErrorCodeDescription(const char* errorString) ML_RETURN_VALUE_SHOULD_BE_USED;
00047 
00049 ML_UTILS_EXPORT MLuint32            MLGetNumErrorCodes();
00050 
00054 ML_UTILS_EXPORT const char* const* MLGetErrorCodeDescriptionTable();
00056 
00057 
00058 //-----------------------------------------------------------------------------------
00059 //
00061 
00062 //
00063 //-----------------------------------------------------------------------------------
00064 
00066 ML_UTILS_EXPORT MLint32             MLInitializeUtils();
00067 
00069 ML_UTILS_EXPORT MLint32             MLIsUtilsInitialized();
00070 
00072 ML_UTILS_EXPORT MLint32             MLUtilsDestroy();
00074 
00075 
00076 //-----------------------------------------------------------------------------------
00077 //
00079 
00080 //
00081 //-----------------------------------------------------------------------------------
00082 
00086 ML_UTILS_EXPORT MLuint32            MLGetCheckBitMask();
00087 
00092 ML_UTILS_EXPORT void                MLSetCheckBitMask(MLuint32 bitMask);
00094 
00095 
00096 
00097 //-----------------------------------------------------------------------------------
00098 //
00100 
00101 //
00102 //-----------------------------------------------------------------------------------
00103 
00105 ML_UTILS_EXPORT MLint32             MLIsMultithreadingActive();
00106 
00109 ML_UTILS_EXPORT void                _MLSetMultithreadingActive(MLint32 isActive);
00111 
00112 
00113 //-----------------------------------------------------------------------------------
00114 //
00116 
00117 //
00118 //-----------------------------------------------------------------------------------
00119 
00121 ML_UTILS_EXPORT MLThreadId MLGetCurrentThreadID();
00122 
00124 ML_UTILS_EXPORT MLint32    MLIsCurrentThreadMainThread();
00125 
00127 ML_UTILS_EXPORT MLThreadId MLGetMainThreadID();
00128 
00132 ML_UTILS_EXPORT void       MLSetMainThreadID(MLThreadId threadId);
00133 
00135 ML_UTILS_EXPORT MLint32    MLCompareThreadIDs(const MLThreadId& id1, const MLThreadId& id2);
00136 
00139 extern ML_UTILS_EXPORT MLThreadId _MLMainThreadId;
00140 
00142 ML_UTILS_EXPORT void MLSetThreadName(const char* threadName);
00143 
00145 
00146 
00147 //-----------------------------------------------------------------------------------
00148 //
00150 
00151 //
00152 //-----------------------------------------------------------------------------------
00153 
00159 ML_UTILS_EXPORT char* MLIntToStringCopy(int intValue);
00160 
00166 ML_UTILS_EXPORT char* MLInt64ToStringCopy(MLint64 int64Value);
00167 
00173 ML_UTILS_EXPORT char* MLDoubleToStringCopy(double doubleValue);
00175 
00176 
00177 
00178 //--------------------------------------------------------------------------------------------------
00179 //
00181 
00182 //
00183 //--------------------------------------------------------------------------------------------------
00184 
00189 ML_UTILS_EXPORT void* MLAlloc(MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00190 
00196 ML_UTILS_EXPORT void* MLRealloc(void* ptr, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00197 
00201 
00202 ML_UTILS_EXPORT void  MLFree(void* ptr);
00203 ML_UTILS_EXPORT void  MLFreeMemoryManagerCallback(void* ptr, const size_t size, void* userData);
00205 
00211 ML_UTILS_EXPORT void* MLMemDup(const void* src, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00212 
00216 ML_UTILS_EXPORT char* MLStrDup(const char* str, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00218 
00219 
00220 
00221 
00222 
00223 //-----------------------------------------------------------------------------------
00224 //
00226 
00227 //
00228 //-----------------------------------------------------------------------------------
00236 //      void MLMessageCB(void* usrData,
00237 //                       MLErrorCode errCode,
00238 //                       MLMessageType messageType,
00239 //                       const char* messStr,
00240 //                       int line,
00241 //                       const char** infos)
00265 ML_UTILS_EXPORT void          MLSetMessageCB(void* userData, MLMessageCB* callback);
00266 
00270 ML_UTILS_EXPORT void          MLGetMessageCB(void** userData, MLMessageCB** callback);
00272 
00273 
00274 
00275 //-----------------------------------------------------------------------------------
00276 //
00278 
00279 //
00280 //-----------------------------------------------------------------------------------
00283 ML_UTILS_EXPORT void          MLDebugAddEnvName(const char* envName);
00284 
00288 ML_UTILS_EXPORT void          MLDebugRemoveEnvName(const char* envName);
00289 
00292 ML_UTILS_EXPORT MLint32       MLDebugHasEnvName(const char* envName);
00293 
00296 ML_UTILS_EXPORT const char *  MLDebugGetEnvName(MLuint32 envNameIdx);
00297 
00300 ML_UTILS_EXPORT void          MLDebugRemoveAllEnvNames();
00301 
00303 ML_UTILS_EXPORT size_t        MLDebugGetNumEnvNames();
00305 
00306 
00307 
00308 //-----------------------------------------------------------------------------------
00309 //
00311 
00312 //
00313 //-----------------------------------------------------------------------------------
00332 ML_UTILS_EXPORT void MLPrintAndNotify(MLMessageType messageType,
00333                                       const char*  libraryPrefix,
00334                                       const char*  fPrefix,
00335                                       const char*  functionName,
00336                                       const char*  reason,
00337                                       const char*  handling,
00338                                       const char*  file,
00339                                       int           line,
00340                                       MLErrorCode   errCode);
00341 
00345 ML_UTILS_EXPORT void MLPrintAndNotifyFatal(const char*  file,
00346                                            int          line,
00347                                            MLErrorCode  errCode);
00348 
00356 ML_UTILS_EXPORT void MLHandleDebugPrint(const char* envVar,
00357                                         const char* libraryPrefix,
00358                                         const char* outStr,
00359                                         const char* file,
00360                                         int         line);
00362 
00363 
00364 //-----------------------------------------------------------------------------------
00365 //
00367 
00368 //
00369 //-----------------------------------------------------------------------------------
00374 ML_UTILS_EXPORT void          MLSetTerminationType(MLMessageType level, MLTerminator term);
00375 
00378 ML_UTILS_EXPORT MLTerminator  MLGetTerminationType(MLMessageType level);
00380 
00381 
00382 //-----------------------------------------------------------------------------------
00383 //
00385 
00386 //
00387 //-----------------------------------------------------------------------------------
00391 ML_UTILS_EXPORT MLErrorCode   MLEnableExceptionHandling(MLuint32 enable);
00392 
00394 ML_UTILS_EXPORT MLuint32      MLIsExceptionHandlingEnabled();
00396 
00397 
00398 //-----------------------------------------------------------------------------------
00399 //
00401 
00402 //
00403 //-----------------------------------------------------------------------------------
00409 ML_UTILS_EXPORT void          MLSetMessageFilter(MLuint32 messageTypes);
00410 
00413 ML_UTILS_EXPORT MLuint32      MLGetMessageFilter();
00415 
00416 
00417 //-----------------------------------------------------------------------------------
00418 //
00420 
00421 //
00422 //-----------------------------------------------------------------------------------
00430 ML_UTILS_EXPORT MLErrorCode   MLEnableFullDebugging(MLuint32 enable);
00431 
00433 ML_UTILS_EXPORT MLuint32      MLIsFullDebuggingEnabled();
00435 
00436 
00437 //-----------------------------------------------------------------------------------
00438 //
00440 
00441 //
00442 //-----------------------------------------------------------------------------------
00443 
00456 ML_UTILS_EXPORT void MLAddEventFilterCB(MLEventFilterCB* cb, void* usrData,
00457                                         MLuint32 fromMessageId, MLuint32 toMessageId);
00458 
00462 ML_UTILS_EXPORT void MLRemoveEventFilterCB(MLEventFilterCB* cb, void* usrData);
00464 
00465 
00466 //-----------------------------------------------------------------------------------
00467 //
00469 
00470 //
00471 //-----------------------------------------------------------------------------------
00472 
00477 ML_UTILS_EXPORT void MLSetApplicationPropertiesHook(MLApplicationPropertyCallbacks* callbacks);
00478 
00482 ML_UTILS_EXPORT const MLApplicationPropertyCallbacks* MLGetApplicationPropertiesHook();
00483 
00484 
00489 ML_UTILS_EXPORT void MLSetEventFilterApplicationHook(MLEventFilterApplicationHookCB* cb, void* usrData);
00490 
00492 ML_UTILS_EXPORT MLEventFilterApplicationHookCB* MLGetEventFilterApplicationHookCB();
00493 
00495 ML_UTILS_EXPORT void *MLGetEventFilterApplicationHookCBUserData();
00497 
00498 //-----------------------------------------------------------------------------------
00499 //
00501 
00502 //
00503 //-----------------------------------------------------------------------------------
00504 
00507 ML_UTILS_EXPORT MLint32 MLSetNotifyEnabled(MLint32 flag);
00508 
00510 ML_UTILS_EXPORT MLint32 MLIsNotifyEnabled();
00512 
00513 
00514 //-----------------------------------------------------------------------------------
00515 //
00517 
00518 //
00519 //-----------------------------------------------------------------------------------
00520 
00548 ML_UTILS_EXPORT void* MLStringToPtr(const char* valueString, int postError, const char* errFunc);
00550 
00551 
00552 
00553 //--------------------------------------------------------------------------------------------------
00554 //
00556 
00557 //
00558 //--------------------------------------------------------------------------------------------------
00560 ML_UTILS_EXPORT MLint32 MLIsLittleEndian();
00561 
00565 ML_UTILS_EXPORT void MLMakeLittleEndian(unsigned char* data, size_t numBytes, size_t dTypeSize);
00566 
00570 ML_UTILS_EXPORT void MLMakeBigEndian(unsigned char* data, size_t numBytes, size_t dTypeSize);
00571 
00577 ML_UTILS_EXPORT void MLSwapBytes(unsigned char* data, size_t numBytes, size_t dTypeSize);
00579 
00580 
00581 //-----------------------------------------------------------------------------------
00582 //
00584 
00585 //
00586 //-----------------------------------------------------------------------------------
00588 ML_UTILS_EXPORT void          MLSetMaxNumTraceListDumps(MLuint32 numMaxEntries);
00589 
00591 ML_UTILS_EXPORT MLuint32      MLGetMaxNumTraceListDumps();
00593 
00594 //-----------------------------------------------------------------------------------
00595 //
00597 
00598 //
00599 //-----------------------------------------------------------------------------------
00601 ML_UTILS_EXPORT void          MLSetMaxNumTraceStackDumps(MLuint32 numMaxEntries);
00602 
00604 ML_UTILS_EXPORT MLuint32      MLGetMaxNumTraceStackDumps();
00606 
00607 //-----------------------------------------------------------------------------------
00608 //
00610 
00611 //
00612 //-----------------------------------------------------------------------------------
00614 ML_UTILS_EXPORT void          MLSetTraceDumpMessageBits(MLuint32 messageBitMask);
00615 
00617 ML_UTILS_EXPORT MLuint32      MLGetTraceDumpMessageBits();
00619 
00620 #ifdef __cplusplus
00621 }
00622 #endif
00623 
00624 
00625 #endif // __mlUtilsAPI_H
00626 
00627 
00628