26 #ifndef PAL_STATISTICS_MACROS_H 27 #define PAL_STATISTICS_MACROS_H 44 #define REGISTER_VARIABLE_3_ARGS(TOPIC, ID, VARIABLE) \ 45 customRegister(*pal_statistics::getRegistry(TOPIC), ID, VARIABLE); 46 #define REGISTER_VARIABLE_4_ARGS(TOPIC, ID, VARIABLE, BOOKKEEPING) \ 47 customRegister(*pal_statistics::getRegistry(TOPIC), ID, VARIABLE, BOOKKEEPING); 49 #define GET_5TH_ARG(arg1, arg2, arg3, arg4, arg5, ...) arg5 50 #define REGISTER_MACRO_CHOOSER(...) \ 51 GET_5TH_ARG(__VA_ARGS__, REGISTER_VARIABLE_4_ARGS, \ 52 REGISTER_VARIABLE_3_ARGS) 54 #define REGISTER_VARIABLE(...) REGISTER_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__) 57 #define REGISTER_VARIABLE_SIMPLE(TOPIC, VARIABLE, BOOKKEEPING) \ 58 customRegister(*pal_statistics::getRegistry(TOPIC), #VARIABLE, VARIABLE, BOOKKEEPING); 61 #define PUBLISH_STATISTICS(TOPIC) pal_statistics::getRegistry(TOPIC)->publish(); 63 #define PUBLISH_ASYNC_STATISTICS(TOPIC) pal_statistics::getRegistry(TOPIC)->publishAsync(); 65 #define START_PUBLISH_THREAD(TOPIC) pal_statistics::getRegistry(TOPIC)->startPublishThread(); 67 #define PUBLISH_CUSTOM_STATISTIC(TOPIC, ID, VALUE) pal_statistics::getRegistry(TOPIC)->publishCustomStatistic(ID, VALUE) 69 #define PUBLISH_CUSTOM_STATISTICS_MSG(TOPIC, MSG) pal_statistics::getRegistry(TOPIC)->publishCustomStatistics(MSG) 72 #define UNREGISTER_VARIABLE_2_ARGS(TOPIC, ID) \ 73 pal_statistics::getRegistry(TOPIC)->unregisterVariable(ID); 74 #define UNREGISTER_VARIABLE_3_ARGS(TOPIC, ID, BOOKKEEPING) \ 75 pal_statistics::getRegistry(TOPIC)->unregisterVariable(ID, BOOKKEEPING); 77 #define GET_4TH_ARG(arg1, arg2, arg3, arg4, ...) arg4 78 #define UNREGISTER_MACRO_CHOOSER(...) \ 79 GET_4TH_ARG(__VA_ARGS__, UNREGISTER_VARIABLE_3_ARGS, \ 80 UNREGISTER_VARIABLE_2_ARGS) 84 #define UNREGISTER_VARIABLE(...) UNREGISTER_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__) 87 #endif // PAL_STATISTICS_MACROS_H
boost::shared_ptr< StatisticsRegistry > getRegistry(const std::string &topic)
constexpr char DEFAULT_STATISTICS_TOPIC[]