.. _program_listing_file_include_tracetools_tracetools.h: Program Listing for File tracetools.h ===================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/tracetools/tracetools.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright 2019 Robert Bosch GmbH // Copyright 2020 Christophe Bedard // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef TRACETOOLS__TRACETOOLS_H_ #define TRACETOOLS__TRACETOOLS_H_ #include #include #include #include "tracetools/config.h" #include "tracetools/visibility_control.hpp" #ifndef TRACETOOLS_DISABLED # define _GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, NAME, ...) NAME # define _TRACEPOINT_NOARGS(event_name) \ (ros_trace_ ## event_name)() # define _TRACEPOINT_ARGS(event_name, ...) \ (ros_trace_ ## event_name)(__VA_ARGS__) # define _DECLARE_TRACEPOINT_NOARGS(event_name) \ TRACETOOLS_PUBLIC void ros_trace_ ## event_name(); # define _DECLARE_TRACEPOINT_ARGS(event_name, ...) \ TRACETOOLS_PUBLIC void ros_trace_ ## event_name(__VA_ARGS__); # define _GET_MACRO_TRACEPOINT(...) \ _GET_MACRO( \ __VA_ARGS__, \ _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, \ _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_ARGS, _TRACEPOINT_NOARGS, \ shoud_not_be_called_without_any_arguments) # define _GET_MACRO_DECLARE_TRACEPOINT(...) \ _GET_MACRO( \ __VA_ARGS__, \ _DECLARE_TRACEPOINT_ARGS, _DECLARE_TRACEPOINT_ARGS, _DECLARE_TRACEPOINT_ARGS, \ _DECLARE_TRACEPOINT_ARGS, _DECLARE_TRACEPOINT_ARGS, _DECLARE_TRACEPOINT_ARGS, \ _DECLARE_TRACEPOINT_ARGS, _DECLARE_TRACEPOINT_ARGS, _DECLARE_TRACEPOINT_ARGS, \ _DECLARE_TRACEPOINT_NOARGS, shoud_not_be_called_without_any_arguments) # define TRACEPOINT(...) \ _GET_MACRO_TRACEPOINT(__VA_ARGS__)(__VA_ARGS__) # define DECLARE_TRACEPOINT(...) \ _GET_MACRO_DECLARE_TRACEPOINT(__VA_ARGS__)(__VA_ARGS__) #else # define TRACEPOINT(...) ((void) (0)) # define DECLARE_TRACEPOINT(...) #endif // TRACETOOLS_DISABLED #ifdef __cplusplus extern "C" { #endif TRACETOOLS_PUBLIC bool ros_trace_compile_status(); DECLARE_TRACEPOINT( rcl_init, const void * context_handle) DECLARE_TRACEPOINT( rcl_node_init, const void * node_handle, const void * rmw_handle, const char * node_name, const char * node_namespace) DECLARE_TRACEPOINT( rmw_publisher_init, const void * rmw_publisher_handle, const uint8_t * gid) DECLARE_TRACEPOINT( rcl_publisher_init, const void * publisher_handle, const void * node_handle, const void * rmw_publisher_handle, const char * topic_name, const size_t queue_depth) DECLARE_TRACEPOINT( rclcpp_publish, const void * publisher_handle, const void * message) DECLARE_TRACEPOINT( rcl_publish, const void * publisher_handle, const void * message) DECLARE_TRACEPOINT( rmw_publish, const void * message) DECLARE_TRACEPOINT( rmw_subscription_init, const void * rmw_subscription_handle, const uint8_t * gid) DECLARE_TRACEPOINT( rcl_subscription_init, const void * subscription_handle, const void * node_handle, const void * rmw_subscription_handle, const char * topic_name, const size_t queue_depth) DECLARE_TRACEPOINT( rclcpp_subscription_init, const void * subscription_handle, const void * subscription) DECLARE_TRACEPOINT( rclcpp_subscription_callback_added, const void * subscription, const void * callback) DECLARE_TRACEPOINT( rmw_take, const void * rmw_subscription_handle, const void * message, int64_t source_timestamp, const bool taken) DECLARE_TRACEPOINT( rcl_take, const void * message) DECLARE_TRACEPOINT( rclcpp_take, const void * message) DECLARE_TRACEPOINT( rcl_service_init, const void * service_handle, const void * node_handle, const void * rmw_service_handle, const char * service_name) DECLARE_TRACEPOINT( rclcpp_service_callback_added, const void * service_handle, const void * callback) DECLARE_TRACEPOINT( rcl_client_init, const void * client_handle, const void * node_handle, const void * rmw_client_handle, const char * service_name) DECLARE_TRACEPOINT( rcl_timer_init, const void * timer_handle, int64_t period) DECLARE_TRACEPOINT( rclcpp_timer_callback_added, const void * timer_handle, const void * callback) DECLARE_TRACEPOINT( rclcpp_timer_link_node, const void * timer_handle, const void * node_handle) DECLARE_TRACEPOINT( rclcpp_callback_register, const void * callback, const char * function_symbol) DECLARE_TRACEPOINT( callback_start, const void * callback, const bool is_intra_process) DECLARE_TRACEPOINT( callback_end, const void * callback) DECLARE_TRACEPOINT( rcl_lifecycle_state_machine_init, const void * node_handle, const void * state_machine) DECLARE_TRACEPOINT( rcl_lifecycle_transition, const void * state_machine, const char * start_label, const char * goal_label) DECLARE_TRACEPOINT( rclcpp_executor_get_next_ready) DECLARE_TRACEPOINT( rclcpp_executor_wait_for_work, const int64_t timeout) DECLARE_TRACEPOINT( rclcpp_executor_execute, const void * handle) #ifdef __cplusplus } #endif #endif // TRACETOOLS__TRACETOOLS_H_