X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=inc%2FFBaseSysLog.h;h=ff1ccc675ee1f1fdc0e60cb90f17428bb16fbf2b;hb=9b44315473e675bcd332e2f56fac1ce00f87a8a6;hp=17e74e89bc0f53ebf366114beb8c9c860e6de851;hpb=f35aaec65fcf10d247f9b1bb74c36e75f7cf2fa7;p=platform%2Fframework%2Fnative%2Fappfw.git diff --git a/inc/FBaseSysLog.h b/inc/FBaseSysLog.h index 17e74e8..ff1ccc6 100644 --- a/inc/FBaseSysLog.h +++ b/inc/FBaseSysLog.h @@ -1,5 +1,4 @@ // -// Open Service Platform // Copyright (c) 2012 Samsung Electronics Co., Ltd. // // Licensed under the Apache License, Version 2.0 (the License); @@ -185,7 +184,7 @@ extern "C" { * The following example demonstrates how to use the SysTryLog macro. * * @code - * bool + * void * MyEngine::Init(int value) * { * //... @@ -334,7 +333,7 @@ extern "C" { * * @code * #define E_UNKNOWN_ERROR 1 - * bool + * result * MyEngine::Init(int value) * { * //... @@ -342,7 +341,7 @@ extern "C" { * SysTryReturnResult(NID, condition, E_UNKNOWN_ERROR, "An unexpected error has occurred."); * * //... - * return true; + * return E_SUCCESS; * } * @endcode * @hideinitializer @@ -370,7 +369,7 @@ extern "C" { * The following example demonstrates how to use the SysTryReturnVoidResult macro. * * @code - * bool + * void * MyEngine::Init(int value) * { * //... @@ -378,7 +377,7 @@ extern "C" { * SysTryReturnVoidResult(NID, condition, E_INVALID_ARG, "An unexpected error has occurred."); * * //... - * return true; + * return; * } * @endcode * @hideinitializer @@ -606,123 +605,343 @@ case condition: \ #else /** -* This macro is to protect informative log messages which needs to keep security. -* It allows display of informative log messages if compiled with "_SECURE_LOG" definition. -* Otherwise, it will be removed in the compile time. -* This system log macro is for the platform modules. -* -* @since 2.1 -* -* @param[in] NID The Tizen namespace ID -* @param[in] ... The message to display -* -* The following example demonstrates how to use the SysSecureLog macro. -* -* @code -* bool -* MyEngine::Init(int value) -* { -* SysSecureLog(NID, "User ID : 'JoneDoe'"); -* -* return true; -* } -* @endcode -* @hideinitializer -*/ + * This macro is to protect informative log messages which needs to keep security. + * It allows display of informative log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, it will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace ID + * @param[in] ... The message to display + * + * The following example demonstrates how to use the SysSecureLog macro. + * + * @code + * bool + * MyEngine::Init(int value) + * { + * SysSecureLog(NID, "User ID : 'JoneDoe'"); + * + * return true; + * } + * @endcode + * @hideinitializer + */ #define SysSecureLog(NID, ...) /** -* This macro is to protect exception log messages which needs to keep security, and sets the last result. -* It allows display of exception log messages if compiled with "_SECURE_LOG" definition. -* Otherwise, it will be removed in the compile time. -* This system log macro is for the platform modules. -* -* @since 2.1 -* -* @param[in] NID The Tizen namespace ID -* @param[in] r The last result to set -* @param[in] ... The message to display -* -* The following example demonstrates how to use the SysSecureLogException macro. -* -* @code -* bool -* MyEngine::Init(int value) -* { -* //... -* if (something_wrong) -* { -* SysSecureLogException(NID, E_INVALID_ARG, "User ID : 'JoneDoe' mismatch."); -* -* return false; -* } -* //... -* -* return true; -* } -* @endcode -* @hideinitializer -*/ -#define SysSecureLogException(NID, r,...) - -/** -* This macro is to protect informative log messages which needs to keep security, with a tag. -* It allows display of informative log messages if compiled with "_SECURE_LOG" definition. -* Otherwise, it will be removed in the compile time. -* This system log macro is for the platform modules. -* -* @since 2.1 -* -* @param[in] NID The Tizen namespace ID -* @param[in] tag The user defined tag -* @param[in] ... The message to display -* -* The following example demonstrates how to use the SysSecureLogTag macro. -* -* @code -* bool -* MyEngine::Init(int value) -* { -* SysSecureLogTag(NID, "MyTag", "User ID : 'JoneDoe'"); -* -* return true; -* } -* @endcode -* @hideinitializer -*/ + * This macro is to protect exception log messages which needs to keep security, and sets the last result. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace ID + * @param[in] r The last result to set + * @param[in] ... The message to display + * + * The following example demonstrates how to use the SysSecureLogException macro. + * + * @code + * bool + * MyEngine::Init(int value) + * { + * //... + * if (something_wrong) + * { + * SysSecureLogException(NID, E_INVALID_ARG, "User ID : 'JoneDoe' mismatch."); + * + * return false; + * } + * //... + * + * return true; + * } + * @endcode + * @hideinitializer + */ +#define SysSecureLogException(NID, r,...) SetLastResult(r); + +/** + * This macro is to protect informative log messages which needs to keep security, with a tag. + * It allows display of informative log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, it will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace ID + * @param[in] tag The user defined tag + * @param[in] ... The message to display + * + * The following example demonstrates how to use the SysSecureLogTag macro. + * + * @code + * bool + * MyEngine::Init(int value) + * { + * SysSecureLogTag(NID, "MyTag", "User ID : 'JoneDoe'"); + * + * return true; + * } + * @endcode + * @hideinitializer + */ #define SysSecureLogTag(NID, tag, ...) /** -* This macro is to protect exception log messages which needs to keep security, with a tag and sets the last result. -* It allows display of exception log messages if compiled with "_SECURE_LOG" definition. -* Otherwise, it will be removed in the compile time. -* This system log macro is for the platform modules. -* -* @since 2.1 -* -* @param[in] NID The Tizen namespace ID -* @param[in] tag The user defined tag -* @param[in] r The last result to set -* @param[in] ... The message to display -* -* The following example demonstrates how to use the SysSecureLogExceptionTag macro. -* -* @code -* bool -* MyEngine::Init(int value) -* { -* SysSecureLogExceptionTag(NID, "MyTag", E_INVALID_ARG, "User ID : 'JoneDoe' mismatch."); -* -* return true; -* } -* @endcode -* @hideinitializer -*/ -#define SysSecureLogExceptionTag(NID, tag, r, ...) + * This macro is to protect exception log messages which needs to keep security, with a tag and sets the last result. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace ID + * @param[in] tag The user defined tag + * @param[in] r The last result to set + * @param[in] ... The message to display + * + * The following example demonstrates how to use the SysSecureLogExceptionTag macro. + * + * @code + * bool + * MyEngine::Init(int value) + * { + * SysSecureLogExceptionTag(NID, "MyTag", E_INVALID_ARG, "User ID : 'JoneDoe' mismatch."); + * + * return true; + * } + * @endcode + * @hideinitializer + */ +#define SysSecureLogExceptionTag(NID, tag, r, ...) SetLastResult(r); + +#endif + +/** + * This macro allows display of informative log message with a tag, when the condition is @c false. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] ... The message to display + * + * The following example demonstrates how to use the SysSecureTry macro. + * + * @code + * bool + * MyEngine::Init(int value) + * { + * //... + * + * SysSecureTryLog(NID, condition, "Password mismatch : %s", password ); + * + * //... + * } + * @endcode + * @hideinitializer + */ +#define SysSecureTryLog(NID, condition, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysSecureLog(NID, __VA_ARGS__); \ + } \ + } while (0); + +/** + * This macro allows display of informative log message, when the condition is @c false. + * Executes statements and goes to label. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] expr Expressions that are evaluated before going to CATCH label + * @param[in] ... The message to display + * @hideinitializer + */ +#define SysSecureTryLogCatch(NID, condition, expr, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysSecureLog(NID, __VA_ARGS__); \ + expr; \ + goto CATCH; \ + } \ + } while (0); + +/** + * This macro allows display of informative log message and returns returnValue, when the condition is @c false. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] returnValue The value to return when the condition is @c false + * @param[in] ... The message to display + * @hideinitializer + */ +#define SysSecureTryLogReturn(NID, condition, returnValue, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysSecureLog(NID, __VA_ARGS__); \ + return returnValue; \ + } \ + } while (0); +/** + * This macro allows display of exception log message with a tag and sets the last result, when the condition is @c false. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] returnValue The value to return when the condition is @c false + * @param[in] r The last result to set + * @param[in] ... The message to display + * @hideinitializer + */ +#define SysSecureTryReturn(NID, condition, returnValue, r, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysSecureLogException(NID, r, __VA_ARGS__); \ + return returnValue; \ + } \ + } while (0); + +#if defined(_SECURE_LOG) +/** + * This macro allows display of exception log message with a tag and sets the last result, when the condition is @c false. + * This is a shorthand macro for SysSecureTryReturn(NID, condition, r, r, "[" # r "] " ...). + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] r The last result to set + * @param[in] ... The message to display + * @hideinitializer + */ +#define SysSecureTryReturnResult(NID, condition, r, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysTryReturnResultInternal(NID, r, __PRETTY_FUNCTION__, __LINE__, "[SECURE_LOG] "__VA_ARGS__); \ + return r; \ + } \ + } while (0); + +#else +#define SysSecureTryReturnResult(NID, condition, r, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SetLastResult(r); \ + return r; \ + } \ + } while (0); #endif /** + * This macro allows display of exception log message with a tag and sets the last result, when the condition is @c false. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] r The last result to set + * @param[in] ... The message to display + * @hideinitializer + */ +#define SysSecureTryReturnVoidResult(NID, condition, r, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysSecureLogException(NID, r, __VA_ARGS__); \ + return; \ + } \ + } while (0); + +/** + * This macro allows display of exception log message with a tag, when the condition is @c false. + * Executes statements, sets the last result and goes to label. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] expr Expressions that are evaluated before going to CATCH label + * @param[in] r The last result to set + * @param[in] ... The message to display + * @hideinitializer + */ +#define SysSecureTryCatch(NID, condition, expr, r, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysSecureLogException(NID, r, __VA_ARGS__); \ + expr; \ + goto CATCH; \ + } \ + } while (0); + +/** + * This macro allows display of exception log message with a tag, when the condition is @c false. + * Executes statements, sets the last result and goes to label. + * It allows display of exception log messages if compiled with "_SECURE_LOG" definition. + * Otherwise, log printing functionality will be removed in the compile time. + * This system log macro is for the platform modules. + * + * @since 2.1 + * + * @param[in] NID The Tizen namespace + * @param[in] condition The condition that is expected to be true + * @param[in] expr Expressions that are evaluated before going to catchLabel label + * @param[in] catchLabel The label for goto operation + * @param[in] r The last result to set + * @param[in] ... The message to display + * @hideinitializer + */ +#define SysSecureTryCatchLabel(NID, condition, expr, catchLabel, r, ...) \ + do \ + { \ + if (unlikely(!(condition))) { \ + SysSecureLogException(NID, r, __VA_ARGS__); \ + expr; \ + goto catchLabel; \ + } \ + } while (0); + + +/** * Defines the log ID. */ enum LogID