41 explicit System(std::unique_ptr<SystemInterface> impl);
47 const rclcpp_lifecycle::State & initialize(
49 rclcpp::node_interfaces::NodeClockInterface::SharedPtr clock_interface);
51 const rclcpp_lifecycle::State & configure();
53 const rclcpp_lifecycle::State & cleanup();
55 const rclcpp_lifecycle::State & shutdown();
57 const rclcpp_lifecycle::State & activate();
59 const rclcpp_lifecycle::State & deactivate();
61 const rclcpp_lifecycle::State & error();
63 std::vector<StateInterface::ConstSharedPtr> export_state_interfaces();
65 std::vector<CommandInterface::SharedPtr> export_command_interfaces();
67 return_type prepare_command_mode_switch(
68 const std::vector<std::string> & start_interfaces,
69 const std::vector<std::string> & stop_interfaces);
71 return_type perform_command_mode_switch(
72 const std::vector<std::string> & start_interfaces,
73 const std::vector<std::string> & stop_interfaces);
75 std::string get_name()
const;
77 std::string get_group_name()
const;
79 const rclcpp_lifecycle::State & get_lifecycle_state()
const;
81 const rclcpp::Time & get_last_read_time()
const;
83 const rclcpp::Time & get_last_write_time()
const;
85 return_type read(
const rclcpp::Time & time,
const rclcpp::Duration & period);
87 return_type write(
const rclcpp::Time & time,
const rclcpp::Duration & period);
89 std::recursive_mutex & get_mutex();
92 std::unique_ptr<SystemInterface> impl_;
93 mutable std::recursive_mutex system_mutex_;
95 rclcpp::Time last_read_cycle_time_;
97 rclcpp::Time last_write_cycle_time_;