IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
IpEnumAttributeSrcMacros.h
Go to the documentation of this file.
1 // IpEnumAttributeSrcMacros.h:
3 // ---------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_IPENUMATTRIBUTESRCMACROS_H__
17 #define __IPSDKIMAGEPROCESSING_IPENUMATTRIBUTESRCMACROS_H__
18 
22 
24 // Mandatory attributes
26 
30 #define IPSDK_IMPLEMENT_IPENUM_ATTRIBUTE(libraryName, namespaceSeq, className, eMsgEnum) \
31  IPSDK_IMPLEMENT_SERIAL_WITHOUT_COPY(libraryName, namespaceSeq, className, 1) \
32  IPSDK_IMPLEMENT_TOOLTIP(libraryName, className, eMsgEnum) \
33  IPSDK_IMPLEMENT_ATTRIBUTE_BASE_BODY(className, eMsgEnum) \
34  className::className() \
35  { \
36  } \
37  className::~className() \
38  { \
39  } \
40  className::ValueType className::getValue() const \
41  { \
42  return *className::ValueType::get_by_index(static_cast<ipsdk::ipInt32>(accessEnumValue())); \
43  } \
44  void className::init(const ValueType& enumValue) \
45  { \
46  BaseIPEnumAttribute::initBase(enumValue.value()); \
47  } \
48  bool className::checkEnumValue(ipsdk::ipUInt32 enumValue) const \
49  { \
50  return enumValue < ValueType::size; \
51  } \
52  IPSDK_IMPLEMENT_SERIAL_WRITE(className, BaseIPEnumAttribute) \
53  return true; \
54  } \
55  IPSDK_IMPLEMENT_SERIAL_READ(className, BaseIPEnumAttribute) \
56  return true; \
57  }
58 
60 // Optional attributes
62 
66 #define IPSDK_IMPLEMENT_OPTIONAL_IPENUM_ATTRIBUTE(libraryName, namespaceSeq, className, eMsgEnum) \
67  IPSDK_IMPLEMENT_SERIAL_WITHOUT_COPY(libraryName, namespaceSeq, className, 1) \
68  IPSDK_IMPLEMENT_TOOLTIP(libraryName, className, eMsgEnum) \
69  IPSDK_IMPLEMENT_ATTRIBUTE_BASE_BODY(className, eMsgEnum) \
70  className::className() \
71  { \
72  BaseIPEnumAttribute::initBase(getDefaultValue().value()); \
73  } \
74  className::~className() \
75  { \
76  } \
77  className::ValueType className::getValue() const \
78  { \
79  return *className::ValueType::get_by_index(static_cast<ipsdk::ipInt32>(accessEnumValue())); \
80  } \
81  void className::init(const ValueType& enumValue) \
82  { \
83  BaseIPEnumAttribute::initBase(enumValue.value()); \
84  } \
85  bool className::checkEnumValue(ipsdk::ipUInt32 enumValue) const \
86  { \
87  return enumValue < ValueType::size; \
88  } \
89  IPSDK_IMPLEMENT_SERIAL_WRITE(className, BaseIPEnumAttribute) \
90  return true; \
91  } \
92  IPSDK_IMPLEMENT_SERIAL_READ(className, BaseIPEnumAttribute) \
93  return true; \
94  }
95 
98 
99 #endif // __IPSDKIMAGEPROCESSING_IPENUMATTRIBUTESRCMACROS_H__
Log messages description.
Logger api for library IPSDKBaseProcessing.
Source part of macros set for attribute class implementation.