Extract util methods

This commit is contained in:
Christophe Bedard 2019-06-04 16:37:11 +02:00
parent 51f3c16205
commit ee813caaf1
5 changed files with 52 additions and 20 deletions

View file

@ -158,7 +158,7 @@ void TRACEPOINT(
void TRACEPOINT(
rclcpp_callback_register,
const void * callback,
const void * function_target);
const char * function_symbol);
#ifdef __cplusplus
}

View file

@ -0,0 +1,19 @@
#ifndef __TRACETOOLS_UTILS_H_
#define __TRACETOOLS_UTILS_H_
#include <stddef.h>
template<typename T, typename... U>
size_t get_address(std::function<T(U...)> f) {
typedef T(fnType)(U...);
fnType ** fnPointer = f.template target<fnType*>();
// Might be a lambda
if (fnPointer == nullptr) {
return 0;
}
return (size_t)*fnPointer;
}
const char * get_symbol(void * funptr);
#endif /* __TRACETOOLS_UTILS_H_ */