IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DataStatusHdrMacros.h
Go to the documentation of this file.
1 // DataStatusHdrMacros.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKBASEDATA_DATASTATUSHDRMACROS_H__
16 #define __IPSDKBASEDATA_DATASTATUSHDRMACROS_H__
17 
19 
22 
23 namespace ipsdk {
24 
27 template <ipsdk::eIOStatus::domain>
28 struct DataIOStatus;
29 
31 template <>
33 {
35  BOOST_STATIC_CONSTANT(bool, g_bInput = true);
36  BOOST_STATIC_CONSTANT(bool, g_bOutput = false);
37  BOOST_STATIC_CONSTANT(bool, g_bInOut = false);
38 };
39 template <>
41 {
43  BOOST_STATIC_CONSTANT(bool, g_bInput = false);
44  BOOST_STATIC_CONSTANT(bool, g_bOutput = true);
45  BOOST_STATIC_CONSTANT(bool, g_bInOut = false);
46 };
47 template <>
48 struct DataIOStatus<ipsdk::eIOStatus::eIOS_InOut>
49 {
51  BOOST_STATIC_CONSTANT(bool, g_bInput = true);
52  BOOST_STATIC_CONSTANT(bool, g_bOutput = true);
53  BOOST_STATIC_CONSTANT(bool, g_bInOut = true);
54 };
56 
59 template <ipsdk::eOptStatus::domain>
61 
63 template <>
65 {
67  BOOST_STATIC_CONSTANT(bool, g_bMandatory = true);
68  BOOST_STATIC_CONSTANT(bool, g_bOptional = false);
69 };
70 template <>
72 {
74  BOOST_STATIC_CONSTANT(bool, g_bMandatory = false);
75  BOOST_STATIC_CONSTANT(bool, g_bOptional = true);
76 };
78 
79 } // end of namespace ipsdk
80 
83 
86 #define IPSDK_DECLARE_IO_DATA() \
87 public: \
88  BOOST_STATIC_CONSTANT(bool, g_bInput = ipsdk::DataIOStatus<g_dataIOStatus>::g_bInput); \
89  BOOST_STATIC_CONSTANT(bool, g_bOutput = ipsdk::DataIOStatus<g_dataIOStatus>::g_bOutput); \
90  BOOST_STATIC_CONSTANT(bool, g_bInOut = ipsdk::DataIOStatus<g_dataIOStatus>::g_bInOut); \
91  inline ipsdk::eIOStatus getIOStatus() const { \
92  return g_dataIOStatus; \
93  } \
94  inline bool isInput() const { \
95  return DataIOStatus<g_dataIOStatus>::g_bInput; \
96  } \
97  inline bool isOutput() const { \
98  return DataIOStatus<g_dataIOStatus>::g_bOutput; \
99  } \
100  inline bool isInOut() const { \
101  return DataIOStatus<g_dataIOStatus>::g_bInOut; \
102  }
103 
106 #define IPSDK_DECLARE_INPUT_DATA() \
107 public: \
108  BOOST_STATIC_CONSTANT(ipsdk::eIOStatus::domain, g_dataIOStatus = ipsdk::eIOStatus::eIOS_Input); \
109  IPSDK_DECLARE_IO_DATA();
110 
113 #define IPSDK_DECLARE_OUTPUT_DATA() \
114 public: \
115  BOOST_STATIC_CONSTANT(ipsdk::eIOStatus::domain, g_dataIOStatus = ipsdk::eIOStatus::eIOS_Output); \
116  IPSDK_DECLARE_IO_DATA();
117 
120 #define IPSDK_DECLARE_INOUT_DATA() \
121 public: \
122  BOOST_STATIC_CONSTANT(ipsdk::eIOStatus::domain, g_dataIOStatus = ipsdk::eIOStatus::eIOS_InOut); \
123  IPSDK_DECLARE_IO_DATA();
124 
127 
130 #define IPSDK_DECLARE_OPT_DATA() \
131 public: \
132  BOOST_STATIC_CONSTANT(bool, g_bMandatory = ipsdk::DataOptStatus<g_dataOptStatus>::g_bMandatory); \
133  BOOST_STATIC_CONSTANT(bool, g_bOptional = ipsdk::DataOptStatus<g_dataOptStatus>::g_bOptional); \
134  inline ipsdk::eOptStatus getOptStatus() const { \
135  return g_dataOptStatus; \
136  } \
137  inline bool isMandatory() const { \
138  return ipsdk::DataOptStatus<g_dataOptStatus>::g_bMandatory; \
139  } \
140  inline bool isOptional() const { \
141  return ipsdk::DataOptStatus<g_dataOptStatus>::g_bOptional; \
142  }
143 
146 #define IPSDK_DECLARE_MANDATORY_DATA() \
147 public: \
148  BOOST_STATIC_CONSTANT(ipsdk::eOptStatus::domain, g_dataOptStatus = ipsdk::eOptStatus::eOS_Mandatory); \
149  IPSDK_DECLARE_OPT_DATA()
150 
153 #define IPSDK_DECLARE_OPTIONAL_DATA() \
154 public: \
155  BOOST_STATIC_CONSTANT(ipsdk::eOptStatus::domain, g_dataOptStatus = ipsdk::eOptStatus::eOS_Optional); \
156  IPSDK_DECLARE_OPT_DATA()
157 
160 
161 #endif // __IPSDKBASEDATA_DATASTATUSHDRMACROS_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Data has a mandatory status.
Definition: DataStatusTypes.h:49
Data has an output IO status.
Definition: DataStatusTypes.h:35
template class used for data optional state interpretation
Definition: DataStatusHdrMacros.h:60
Data has an input and output IO status.
Definition: DataStatusTypes.h:37
Predefined types for data with IO status management.
Data has an input IO status.
Definition: DataStatusTypes.h:33
template class used for data io state interpretation
Definition: DataStatusHdrMacros.h:28
Data has an optional status.
Definition: DataStatusTypes.h:51