Loading [MathJax]/extensions/tex2jax.js
iCub-main
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
YarpDevReturnValueCompat.h
Go to the documentation of this file.
1#ifndef YARP_DEV_RETURN_VALUE_COMPAT_H
2#define YARP_DEV_RETURN_VALUE_COMPAT_H
3
4// Defines YARP_VERSION_* macro
5#include <yarp/conf/version.h>
6
7// These macros simplify the migration of the devices implementation from YARP 3.11 to YARP 3.12,
8// where the interfaces migrated from using bool as return values to use yarp::dev::ReturnValue,
9// see https://github.com/robotology/yarp/discussions/3168
10//
11// For the latest version of this header, check https://gist.github.com/traversaro/ab7ab377c70c50d312a7b5edd4da6242
12//
13// The _CH312 suffix is used as this macro are used in the interface that migrated from bool
14// to yarp::dev::ReturnValue in YARP 3.12, if more interfaces will migrate in YARP 3.13
15// _CH313 macro could be added
16#if (YARP_VERSION_MAJOR > 3) || \
17 (YARP_VERSION_MAJOR == 3 && YARP_VERSION_MINOR > 11) || \
18 (YARP_VERSION_MAJOR == 3 && YARP_VERSION_MINOR == 11 && YARP_VERSION_PATCH >= 100)
19
20#define YARP_DEV_RETURN_VALUE_TYPE_CH312 yarp::dev::ReturnValue
21#define YARP_DEV_RETURN_VALUE_OK_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_ok)
22#define YARP_DEV_RETURN_VALUE_ERROR_GENERIC_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_error_generic)
23#define YARP_DEV_RETURN_VALUE_ERROR_NOT_IMPLEMENTED_BY_DEVICE_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_error_not_implemented_by_device)
24#define YARP_DEV_RETURN_VALUE_ERROR_NWS_NWC_COMMUNICATION_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_error_nws_nwc_communication_error)
25#define YARP_DEV_RETURN_VALUE_ERROR_DEPRECATED_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_error_deprecated)
26#define YARP_DEV_RETURN_VALUE_ERROR_METHOD_FAILED_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_error_method_failed)
27#define YARP_DEV_RETURN_VALUE_ERROR_NOT_READY_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_error_not_ready)
28#define YARP_DEV_RETURN_VALUE_ERROR_UNITIALIZED_CH312 yarp::dev::ReturnValue(yarp::dev::ReturnValue::return_code::return_value_uninitialized)
29
30#else
31
32#define YARP_DEV_RETURN_VALUE_TYPE_CH312 bool
33#define YARP_DEV_RETURN_VALUE_OK_CH312 true
34#define YARP_DEV_RETURN_VALUE_ERROR_GENERIC_CH312 false
35#define YARP_DEV_RETURN_VALUE_ERROR_NOT_IMPLEMENTED_BY_DEVICE_CH312 false
36#define YARP_DEV_RETURN_VALUE_ERROR_NWS_NWC_COMMUNICATION_CH312 false
37#define YARP_DEV_RETURN_VALUE_ERROR_DEPRECATED_CH312 false
38#define YARP_DEV_RETURN_VALUE_ERROR_METHOD_FAILED_CH312 false
39#define YARP_DEV_RETURN_VALUE_ERROR_NOT_READY_CH312 false
40#define YARP_DEV_RETURN_VALUE_ERROR_UNITIALIZED_CH312 false
41
42#endif
43
44#endif