Revised version with adapted macros
This commit is contained in:
@ -467,17 +467,18 @@ asynStatus setAxisParam(A *axis, C *controller, const char *indexName,
|
||||
* ```
|
||||
* =============================================================================
|
||||
*/
|
||||
#define setAxisParamChecked(axis, indexGetterFunction, writeValue) \
|
||||
{ \
|
||||
asynStatus setStatus = setAxisParam( \
|
||||
axis, axis->pController(), #indexGetterFunction, \
|
||||
&std::remove_pointer< \
|
||||
decltype(axis->pController())>::type::indexGetterFunction, \
|
||||
writeValue, __PRETTY_FUNCTION__, __LINE__); \
|
||||
if (setStatus != asynSuccess) { \
|
||||
#define setAxisParamChecked(axis, indexSetterFunction, writeValue) \
|
||||
do { \
|
||||
auto *ctrlPtr = (axis)->pController(); \
|
||||
using ControllerType = \
|
||||
typename std::remove_pointer<decltype(ctrlPtr)>::type; \
|
||||
asynStatus setStatus = \
|
||||
setAxisParam(axis, ctrlPtr, #indexSetterFunction, \
|
||||
&ControllerType::indexSetterFunction, writeValue, \
|
||||
__PRETTY_FUNCTION__, __LINE__); \
|
||||
if (setStatus != asynSuccess) \
|
||||
return setStatus; \
|
||||
} \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
// =============================================================================
|
||||
// Helper functions and definitions for the macro getAxisParamChecked
|
||||
@ -533,15 +534,16 @@ asynStatus getAxisParam(A *axis, C *controller, const char *indexName,
|
||||
* =============================================================================
|
||||
*/
|
||||
#define getAxisParamChecked(axis, indexGetterFunction, readValue) \
|
||||
{ \
|
||||
asynStatus getStatus = getAxisParam( \
|
||||
axis, axis->pController(), #indexGetterFunction, \
|
||||
&std::remove_pointer< \
|
||||
decltype(axis->pController())>::type::indexGetterFunction, \
|
||||
readValue, __PRETTY_FUNCTION__, __LINE__); \
|
||||
if (getStatus != asynSuccess) { \
|
||||
do { \
|
||||
auto *ctrlPtr = (axis)->pController(); \
|
||||
using ControllerType = \
|
||||
typename std::remove_pointer<decltype(ctrlPtr)>::type; \
|
||||
asynStatus getStatus = \
|
||||
getAxisParam(axis, ctrlPtr, #indexGetterFunction, \
|
||||
&ControllerType::indexGetterFunction, readValue, \
|
||||
__PRETTY_FUNCTION__, __LINE__); \
|
||||
if (getStatus != asynSuccess) \
|
||||
return getStatus; \
|
||||
} \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user