IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LogMessageManagerHdrMacros.h
Go to the documentation of this file.
1 // LogMessageManagerHdrMacros.h:
3 // -----------------------------
4 //
15 
16 #ifndef __IPSDKUTIL_LOGMESSAGEMANAGERHDRMACROS_H__
17 #define __IPSDKUTIL_LOGMESSAGEMANAGERHDRMACROS_H__
18 
20 
23 
27 #define DECLARE_LOG_MESSAGE_MAP(libraryName, enumTypeStr, enumSeq) \
28  BOOST_ENUM(enumTypeStr, \
29  BOOST_PP_IF( \
30  BOOST_PP_DEC(BOOST_PP_SEQ_SIZE((_)enumSeq)), \
31  enumSeq, \
32  (__EmptyEnum__))) \
33  template <typename EnumType, typename Derived> \
34  struct IPSDK_LIB_API(libraryName) MsgMapRegistrator; \
35  template <typename Derived> \
36  struct MsgMapRegistrator<enumTypeStr, Derived> \
37  { \
38  static bool registerMessageMap() { \
39  static bool g_bAlreadyRegistred = false; \
40  if (g_bAlreadyRegistred == false) { \
41  g_bAlreadyRegistred = true; \
42  ipsdk::LogMessageManager& msgManager = \
43  ipsdk::LogMessageManager::getInstance(#libraryName); \
44  BOOST_PP_SEQ_FOR_EACH_I(ADD_LOG_MSG_ITEM_MACRO, \
45  enumTypeStr, (_)enumSeq); \
46  } \
47  return true; \
48  } \
49  };
50 
51 
54 
55 #endif // __IPSDKUTIL_LOGMESSAGEMANAGERHDRMACROS_H__
Details for header part of macros set allowing to manager log messages map into libraries.