.. _program_listing_file__tmp_ws_src_slam_toolbox_include_slam_toolbox_slam_toolbox_sync.hpp: Program Listing for File slam_toolbox_sync.hpp ============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/slam_toolbox/include/slam_toolbox/slam_toolbox_sync.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * slam_toolbox * Copyright Work Modifications (c) 2018, Simbe Robotics, Inc. * Copyright Work Modifications (c) 2019, Steve Macenski * * THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE * COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY * COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS * AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. * * BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO * BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS * CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND * CONDITIONS. * */ /* Author: Steven Macenski */ #ifndef SLAM_TOOLBOX__SLAM_TOOLBOX_SYNC_HPP_ #define SLAM_TOOLBOX__SLAM_TOOLBOX_SYNC_HPP_ #include #include #include "slam_toolbox/slam_toolbox_common.hpp" namespace slam_toolbox { class SynchronousSlamToolbox : public SlamToolbox { public: explicit SynchronousSlamToolbox(rclcpp::NodeOptions options); ~SynchronousSlamToolbox() {} void run(); protected: void laserCallback(sensor_msgs::msg::LaserScan::ConstSharedPtr scan) override; bool clearQueueCallback( const std::shared_ptr request_header, const std::shared_ptr req, std::shared_ptr resp); bool deserializePoseGraphCallback( const std::shared_ptr request_header, const std::shared_ptr req, std::shared_ptr resp) override; std::queue q_; std::shared_ptr> ssClear_; boost::mutex q_mutex_; }; } // namespace slam_toolbox #endif // SLAM_TOOLBOX__SLAM_TOOLBOX_SYNC_HPP_