1212// See the License for the specific language governing permissions and
1313// limitations under the License.
1414
15- #ifndef RCLCPP__NODE_INTERFACES__NODE_BUILTIN_EXECUTOR_HPP_
16- #define RCLCPP__NODE_INTERFACES__NODE_BUILTIN_EXECUTOR_HPP_
15+ #ifndef RCLCPP__NODE_BUILTIN_EXECUTOR_HPP_
16+ #define RCLCPP__NODE_BUILTIN_EXECUTOR_HPP_
17+
18+ #include < memory>
1719
1820#include " rclcpp/executor.hpp"
1921#include " rclcpp/macros.hpp"
2527#include " rclcpp/node_options.hpp"
2628#include " rclcpp/visibility_control.hpp"
2729
30+ #include " rcl_interfaces/srv/get_logger_levels.hpp"
31+ #include " rcl_interfaces/srv/set_logger_levels.hpp"
32+
2833namespace rclcpp
2934{
30- namespace node_interfaces
31- {
32-
3335class NodeBuiltinExecutor
3436{
3537public:
@@ -46,23 +48,12 @@ class NodeBuiltinExecutor
4648 RCLCPP_PUBLIC
4749 ~NodeBuiltinExecutor ();
4850
49- RCLCPP_PUBLIC
50- bool builtin_thread_joinable ();
51-
5251private:
5352 RCLCPP_DISABLE_COPY (NodeBuiltinExecutor)
54-
55- node_interfaces::NodeBaseInterface::SharedPtr node_base_;
56- node_interfaces::NodeTopicsInterface::SharedPtr node_topics_;
57- node_interfaces::NodeServicesInterface::SharedPtr node_services_;
58- node_interfaces::NodeLoggingInterface::SharedPtr node_logging_;
59-
60- rclcpp::Executor::SharedPtr executor_;
61- std::promise<void > executor_promise_;
62- std::thread thread_;
53+ class NodeBuiltinExecutorImpl ;
54+ std::shared_ptr<NodeBuiltinExecutorImpl> impl_;
6355};
6456
65- } // namespace node_interfaces
6657} // namespace rclcpp
6758
68- #endif // RCLCPP__NODE_INTERFACES__NODE_BUILTIN_EXECUTOR_HPP_
59+ #endif // RCLCPP__NODE_BUILTIN_EXECUTOR_HPP_
0 commit comments