IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DataItemAttributeSrcMacros.h
Go to the documentation of this file.
1 // DataItemAttributeSrcMacros.h:
3 // -----------------------------
4 //
15 
16 #ifndef __IPSDKBASEPROCESSING_DATAITEMATTRIBUTESRCMACROS_H__
17 #define __IPSDKBASEPROCESSING_DATAITEMATTRIBUTESRCMACROS_H__
18 
21 
23 // Mandatory attributes
25 
29 #define IPSDK_IMPLEMENT_DATAITEM_ATTRIBUTE_BODY(libraryName, namespaceSeq, \
30  className, eMsgEnum) \
31  IPSDK_IMPLEMENT_SERIAL_WITHOUT_COPY(libraryName, namespaceSeq, className, 1) \
32  const std::string& className::getNodeType() const \
33  { \
34  return className::ValueType::getTypeName(); \
35  } \
36  const std::string& className::getNodeTypeStr() \
37  { \
38  return className::ValueType::getTypeName(); \
39  } \
40  void className::init(const ValueType& dataItemNode) \
41  { \
42  boost::shared_ptr<ValueType> pDataItemNode(boost::make_shared<ValueType>(dataItemNode)); \
43  initBase(pDataItemNode); \
44  } \
45  void className::init(const StorageType& pDataItemNode) \
46  { \
47  initBase(boost::const_pointer_cast<ValueType>(pDataItemNode)); \
48  } \
49  IPSDK_IMPLEMENT_ATTRIBUTE_BASE_BODY(className, eMsgEnum) \
50  className::className() \
51  { \
52  StorageType pDefaultValue = retrieveDefaultValue(); \
53  if (pDefaultValue.get() != 0) \
54  init(pDefaultValue); \
55  } \
56  className::~className() \
57  { \
58  } \
59  IPSDK_IMPLEMENT_SERIAL_WRITE(className, className::BaseDataItemAttributeClassType) \
60  return true; \
61  } \
62  IPSDK_IMPLEMENT_SERIAL_READ(className, className::BaseDataItemAttributeClassType) \
63  return true; \
64  }
65 
69 #define IPSDK_IMPLEMENT_FROM_EXISTING_DATAITEM_ATTRIBUTE(libraryName, namespaceSeq, \
70  className, eMsgEnum) \
71  IPSDK_IMPLEMENT_DATAITEM_ATTRIBUTE_BODY(libraryName, namespaceSeq, className, eMsgEnum) \
72  IPSDK_IMPLEMENT_TOOLTIP(libraryName, className, eMsgEnum)
73 
74 
77 #define IPSDK_IMPLEMENT_DATAITEM_ATTRIBUTE(libraryName, namespaceSeq, className, eMsgEnum) \
78  IPSDK_IMPLEMENT_NODE_DATA(libraryName, namespaceSeq, BOOST_PP_CAT(className, Node), eMsgEnum) \
79  IPSDK_IMPLEMENT_DATAITEM_ATTRIBUTE_BODY(libraryName, namespaceSeq, className, eMsgEnum) \
80  const std::string& className::getObjectName() const \
81  { \
82  return className::ValueType::getObjectNameStr(); \
83  } \
84  const std::string& className::getToolTip() const \
85  { \
86  return className::ValueType::getToolTipStr(); \
87  } \
88  const std::string& className::getObjectNameStr() \
89  { \
90  return className::ValueType::getObjectNameStr(); \
91  } \
92  const std::string& className::getToolTipStr() \
93  { \
94  return className::ValueType::getToolTipStr(); \
95  }
96 
99 
100 #endif // __IPSDKBASEPROCESSING_DATAITEMATTRIBUTESRCMACROS_H__
Source part of data item node implementation macros.
Source part of macros set for attribute class implementation.