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 
00143 
00144 //-----------------------------------------------------------------------------------
00145 //
00147 
00148 //
00149 //-----------------------------------------------------------------------------------
00150 
00156 ML_UTILS_EXPORT char* MLIntToStringCopy(int intValue);
00157 
00163 ML_UTILS_EXPORT char* MLInt64ToStringCopy(MLint64 int64Value);
00164 
00170 ML_UTILS_EXPORT char* MLDoubleToStringCopy(double doubleValue);
00172 
00173 
00174 
00175 //--------------------------------------------------------------------------------------------------
00176 //
00178 
00179 //
00180 //--------------------------------------------------------------------------------------------------
00181 
00186 ML_UTILS_EXPORT void* MLAlloc(MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00187 
00193 ML_UTILS_EXPORT void* MLRealloc(void* ptr, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00194 
00198 
00199 ML_UTILS_EXPORT void  MLFree(void* ptr);
00200 ML_UTILS_EXPORT void  MLFreeMemoryManagerCallback(void* ptr, const size_t size, void* userData);
00202 
00208 ML_UTILS_EXPORT void* MLMemDup(const void* src, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00209 
00213 ML_UTILS_EXPORT char* MLStrDup(const char* str, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED;
00215 
00216 
00217 
00218 
00219 
00220 //-----------------------------------------------------------------------------------
00221 //
00223 
00224 //
00225 //-----------------------------------------------------------------------------------
00233 //      void MLMessageCB(void* usrData,
00234 //                       MLErrorCode errCode,
00235 //                       MLMessageType messageType,
00236 //                       const char* messStr,
00237 //                       int line,
00238 //                       const char** infos)
00262 ML_UTILS_EXPORT void          MLSetMessageCB(void* userData, MLMessageCB* callback);
00263 
00267 ML_UTILS_EXPORT void          MLGetMessageCB(void** userData, MLMessageCB** callback);
00269 
00270 
00271 
00272 //-----------------------------------------------------------------------------------
00273 //
00275 
00276 //
00277 //-----------------------------------------------------------------------------------
00280 ML_UTILS_EXPORT void          MLDebugAddEnvName(const char* envName);
00281 
00285 ML_UTILS_EXPORT void          MLDebugRemoveEnvName(const char* envName);
00286 
00289 ML_UTILS_EXPORT MLint32       MLDebugHasEnvName(const char* envName);
00290 
00293 ML_UTILS_EXPORT const char *  MLDebugGetEnvName(MLuint32 envNameIdx);
00294 
00297 ML_UTILS_EXPORT void          MLDebugRemoveAllEnvNames();
00298 
00300 ML_UTILS_EXPORT size_t        MLDebugGetNumEnvNames();
00302 
00303 
00304 
00305 //-----------------------------------------------------------------------------------
00306 //
00308 
00309 //
00310 //-----------------------------------------------------------------------------------
00329 ML_UTILS_EXPORT void MLPrintAndNotify(MLMessageType messageType,
00330                                       const char*  libraryPrefix,
00331                                       const char*  fPrefix,
00332                                       const char*  functionName,
00333                                       const char*  reason,
00334                                       const char*  handling,
00335                                       const char*  file,
00336                                       int           line,
00337                                       MLErrorCode   errCode);
00338 
00342 ML_UTILS_EXPORT void MLPrintAndNotifyFatal(const char*  file,
00343                                            int          line,
00344                                            MLErrorCode  errCode);
00345 
00353 ML_UTILS_EXPORT void MLHandleDebugPrint(const char* envVar,
00354                                         const char* libraryPrefix,
00355                                         const char* outStr,
00356                                         const char* file,
00357                                         int         line);
00359 
00360 
00361 //-----------------------------------------------------------------------------------
00362 //
00364 
00365 //
00366 //-----------------------------------------------------------------------------------
00371 ML_UTILS_EXPORT void          MLSetTerminationType(MLMessageType level, MLTerminator term);
00372 
00375 ML_UTILS_EXPORT MLTerminator  MLGetTerminationType(MLMessageType level);
00377 
00378 
00379 //-----------------------------------------------------------------------------------
00380 //
00382 
00383 //
00384 //-----------------------------------------------------------------------------------
00388 ML_UTILS_EXPORT MLErrorCode   MLEnableExceptionHandling(MLuint32 enable);
00389 
00391 ML_UTILS_EXPORT MLuint32      MLIsExceptionHandlingEnabled();
00393 
00394 
00395 //-----------------------------------------------------------------------------------
00396 //
00398 
00399 //
00400 //-----------------------------------------------------------------------------------
00406 ML_UTILS_EXPORT void          MLSetMessageFilter(MLuint32 messageTypes);
00407 
00410 ML_UTILS_EXPORT MLuint32      MLGetMessageFilter();
00412 
00413 
00414 //-----------------------------------------------------------------------------------
00415 //
00417 
00418 //
00419 //-----------------------------------------------------------------------------------
00427 ML_UTILS_EXPORT MLErrorCode   MLEnableFullDebugging(MLuint32 enable);
00428 
00430 ML_UTILS_EXPORT MLuint32      MLIsFullDebuggingEnabled();
00432 
00433 
00434 //-----------------------------------------------------------------------------------
00435 //
00437 
00438 //
00439 //-----------------------------------------------------------------------------------
00440 
00453 ML_UTILS_EXPORT void MLAddEventFilterCB(MLEventFilterCB* cb, void* usrData,
00454                                         MLuint32 fromMessageId, MLuint32 toMessageId);
00455 
00459 ML_UTILS_EXPORT void MLRemoveEventFilterCB(MLEventFilterCB* cb, void* usrData);
00461 
00462 
00463 //-----------------------------------------------------------------------------------
00464 //
00466 
00467 //
00468 //-----------------------------------------------------------------------------------
00469 
00474 ML_UTILS_EXPORT void MLSetApplicationPropertiesHook(MLApplicationPropertyCallbacks* callbacks);
00475 
00479 ML_UTILS_EXPORT const MLApplicationPropertyCallbacks* MLGetApplicationPropertiesHook();
00480 
00481 
00486 ML_UTILS_EXPORT void MLSetEventFilterApplicationHook(MLEventFilterApplicationHookCB* cb, void* usrData);
00487 
00489 ML_UTILS_EXPORT MLEventFilterApplicationHookCB* MLGetEventFilterApplicationHookCB();
00490 
00492 ML_UTILS_EXPORT void *MLGetEventFilterApplicationHookCBUserData();
00494 
00495 //-----------------------------------------------------------------------------------
00496 //
00498 
00499 //
00500 //-----------------------------------------------------------------------------------
00501 
00504 ML_UTILS_EXPORT MLint32 MLSetNotifyEnabled(MLint32 flag);
00505 
00507 ML_UTILS_EXPORT MLint32 MLIsNotifyEnabled();
00509 
00510 
00511 //-----------------------------------------------------------------------------------
00512 //
00514 
00515 //
00516 //-----------------------------------------------------------------------------------
00517 
00545 ML_UTILS_EXPORT void* MLStringToPtr(const char* valueString, int postError, const char* errFunc);
00547 
00548 
00549 
00550 //--------------------------------------------------------------------------------------------------
00551 //
00553 
00554 //
00555 //--------------------------------------------------------------------------------------------------
00557 ML_UTILS_EXPORT MLint32 MLIsLittleEndian();
00558 
00562 ML_UTILS_EXPORT void MLMakeLittleEndian(unsigned char* data, size_t numBytes, size_t dTypeSize);
00563 
00567 ML_UTILS_EXPORT void MLMakeBigEndian(unsigned char* data, size_t numBytes, size_t dTypeSize);
00568 
00574 ML_UTILS_EXPORT void MLSwapBytes(unsigned char* data, size_t numBytes, size_t dTypeSize);
00576 
00577 
00578 //-----------------------------------------------------------------------------------
00579 //
00581 
00582 //
00583 //-----------------------------------------------------------------------------------
00585 ML_UTILS_EXPORT void          MLSetMaxNumTraceListDumps(MLuint32 numMaxEntries);
00586 
00588 ML_UTILS_EXPORT MLuint32      MLGetMaxNumTraceListDumps();
00590 
00591 //-----------------------------------------------------------------------------------
00592 //
00594 
00595 //
00596 //-----------------------------------------------------------------------------------
00598 ML_UTILS_EXPORT void          MLSetMaxNumTraceStackDumps(MLuint32 numMaxEntries);
00599 
00601 ML_UTILS_EXPORT MLuint32      MLGetMaxNumTraceStackDumps();
00603 
00604 //-----------------------------------------------------------------------------------
00605 //
00607 
00608 //
00609 //-----------------------------------------------------------------------------------
00611 ML_UTILS_EXPORT void          MLSetTraceDumpMessageBits(MLuint32 messageBitMask);
00612 
00614 ML_UTILS_EXPORT MLuint32      MLGetTraceDumpMessageBits();
00616 
00617 #ifdef __cplusplus
00618 }
00619 #endif
00620 
00621 
00622 #endif // __mlUtilsAPI_H
00623 
00624 
00625