+namespace
+{
+#ifndef START_DURATION_CHECK
+#define START_DURATION_CHECK() \
+ uint64_t startTimeNanoSeconds = 0ull; \
+ uint64_t endTimeNanoSeconds = 0ull; \
+ if(mLogEnabled) \
+ { \
+ TimeService::GetNanoseconds(startTimeNanoSeconds); \
+ }
+#endif
+
+#ifndef FINISH_DURATION_CHECK
+#define FINISH_DURATION_CHECK(functionName) \
+ if(mLogEnabled) \
+ { \
+ TimeService::GetNanoseconds(endTimeNanoSeconds); \
+ if(static_cast<uint32_t>((endTimeNanoSeconds - startTimeNanoSeconds) / 1000000ull) >= mLogThreshold) \
+ { \
+ DALI_LOG_RELEASE_INFO("%s takes long time! [%.6lf ms]\n", functionName, static_cast<double>(endTimeNanoSeconds - startTimeNanoSeconds) / 1000000.0); \
+ } \
+ }
+#endif
+
+#ifndef FINISH_DURATION_CHECK_WITH_FORMAT
+#define FINISH_DURATION_CHECK_WITH_FORMAT(functionName, format, args...) \
+ if(mLogEnabled) \
+ { \
+ TimeService::GetNanoseconds(endTimeNanoSeconds); \
+ if(static_cast<uint32_t>((endTimeNanoSeconds - startTimeNanoSeconds) / 1000000ull) >= mLogThreshold) \
+ { \
+ DALI_LOG_RELEASE_INFO("%s takes long time! [%.6lf ms] " format "\n", functionName, static_cast<double>(endTimeNanoSeconds - startTimeNanoSeconds) / 1000000.0, args); \
+ } \
+ }
+#endif
+} // namespace