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 & initialize(
52 const HardwareInfo & system_info, rclcpp::Logger logger, rclcpp::Clock::SharedPtr clock);
54 const rclcpp_lifecycle::State & configure();
56 const rclcpp_lifecycle::State & cleanup();
58 const rclcpp_lifecycle::State & shutdown();
60 const rclcpp_lifecycle::State & activate();
62 const rclcpp_lifecycle::State & deactivate();
64 const rclcpp_lifecycle::State & error();
66 std::vector<StateInterface::ConstSharedPtr> export_state_interfaces();
68 std::vector<CommandInterface::SharedPtr> export_command_interfaces();
70 return_type prepare_command_mode_switch(
71 const std::vector<std::string> & start_interfaces,
72 const std::vector<std::string> & stop_interfaces);
74 return_type perform_command_mode_switch(
75 const std::vector<std::string> & start_interfaces,
76 const std::vector<std::string> & stop_interfaces);
78 const std::string & get_name()
const;
80 const std::string & get_group_name()
const;
82 const rclcpp_lifecycle::State & get_lifecycle_state()
const;
84 const rclcpp::Time & get_last_read_time()
const;
86 const rclcpp::Time & get_last_write_time()
const;
88 return_type read(
const rclcpp::Time & time,
const rclcpp::Duration & period);
90 return_type write(
const rclcpp::Time & time,
const rclcpp::Duration & period);
92 std::recursive_mutex & get_mutex();
95 std::unique_ptr<SystemInterface> impl_;
96 mutable std::recursive_mutex system_mutex_;
98 rclcpp::Time last_read_cycle_time_;
100 rclcpp::Time last_write_cycle_time_;