pub struct ActionServerHandle<A>where
A: RosAction,{ /* private fields */ }Expand description
Handle to an action server registered in the executor’s arena.
Returned by Executor::register_action_server(). Provides methods
to interact with the server (publish feedback, complete goals) while the
executor automatically handles goal acceptance, cancel requests, and
result serving during spin_once().
Implementations§
Source§impl<A> ActionServerHandle<A>where
A: RosAction,
impl<A> ActionServerHandle<A>where
A: RosAction,
Sourcepub fn handle_id(&self) -> HandleId
pub fn handle_id(&self) -> HandleId
Get the HandleId for this action server.
Used with Trigger::One or HandleSet for trigger configuration.
Sourcepub fn publish_feedback(
&self,
executor: &mut Executor,
goal_id: &GoalId,
feedback: &<A as RosAction>::Feedback,
) -> Result<(), NodeError>
pub fn publish_feedback( &self, executor: &mut Executor, goal_id: &GoalId, feedback: &<A as RosAction>::Feedback, ) -> Result<(), NodeError>
Publish feedback for an active goal.
Serialises the feedback message and sends it to all clients monitoring this goal. Returns an error if the handle slot has been removed from the executor.
Sourcepub fn complete_goal(
&self,
executor: &mut Executor,
goal_id: &GoalId,
status: GoalStatus,
result: <A as RosAction>::Result,
)
pub fn complete_goal( &self, executor: &mut Executor, goal_id: &GoalId, status: GoalStatus, result: <A as RosAction>::Result, )
Complete a goal with a terminal status and result payload.
The goal is moved from the active set to the completed-results
slab. Clients waiting on a result will receive the response.
status should be one of Succeeded, Aborted, or Canceled.
Sourcepub fn set_goal_status(
&self,
executor: &mut Executor,
goal_id: &GoalId,
status: GoalStatus,
)
pub fn set_goal_status( &self, executor: &mut Executor, goal_id: &GoalId, status: GoalStatus, )
Update a goal’s status without completing it.
Use this to transition a goal to Executing or Canceling
while it is still active. To finish a goal, use complete_goal.
Sourcepub fn active_goal_count(&self, executor: &Executor) -> usize
pub fn active_goal_count(&self, executor: &Executor) -> usize
Get the number of currently active goals.
Returns 0 if the action server handle has been removed from the executor.
Sourcepub fn for_each_active_goal(
&self,
executor: &Executor,
f: impl FnMut(&ActiveGoal<A>),
)
pub fn for_each_active_goal( &self, executor: &Executor, f: impl FnMut(&ActiveGoal<A>), )
Iterate over all currently active goals.
Calls f for each goal that has been accepted but not yet
completed. Useful for monitoring progress or canceling stale goals.
Trait Implementations§
Source§impl<A> Clone for ActionServerHandle<A>where
A: RosAction,
impl<A> Clone for ActionServerHandle<A>where
A: RosAction,
Source§fn clone(&self) -> ActionServerHandle<A>
fn clone(&self) -> ActionServerHandle<A>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more