StatusPublisherInterface Class Referenceabstract

Publishes the lifecycle of gaze targets. More...

#include <armarx/view_selection/gaze_scheduler/StatusPublisherInterface.h>

+ Inheritance diagram for StatusPublisherInterface:

Public Member Functions

virtual void aborted (const armem::MemoryID &gazeTargetID, const std::string &reason)=0
 Left the queue without ever being reached. Terminal, and a failure.
 
virtual void preempted (const armem::MemoryID &gazeTargetID, const std::string &reason)=0
 Lost the active slot but stays in the queue. Not terminal.
 
virtual void reached (const armem::MemoryID &gazeTargetID, const gaze_controller::GazeResidual &residual)=0
 The gaze settled on the target.
 
virtual void released (const armem::MemoryID &gazeTargetID, const std::string &reason)=0
 Left the queue having been reached. Terminal, and a success for whoever asked.
 
virtual void requested (const armem::MemoryID &gazeTargetID, const armarx::DateTime &creationTimestamp)=0
 Admitted to the scheduler's queue.
 
virtual void scheduled (const armem::MemoryID &gazeTargetID)=0
 Submitted to the low-level controller.
 
virtual bool wasReached (const armem::MemoryID &gazeTargetID) const =0
 Whether this target was reached at any point.
 
virtual ~StatusPublisherInterface ()=default
 

Detailed Description

Publishes the lifecycle of gaze targets.

The seam keeps the Scheduler itself free of the memory (mirroring navigation's server::EventPublishingInterface), so its queue logic can be tested without one.

Targets are addressed by the memory ID of the request they came from – which pins the requester, the target name and the exact snapshot, so two targets scheduled at the same time under one name stay distinguishable.

Definition at line 24 of file StatusPublisherInterface.h.

Constructor & Destructor Documentation

◆ ~StatusPublisherInterface()

virtual ~StatusPublisherInterface ( )
virtualdefault

Member Function Documentation

◆ aborted()

virtual void aborted ( const armem::MemoryID & gazeTargetID,
const std::string & reason )
pure virtual

Left the queue without ever being reached. Terminal, and a failure.

Implemented in MemoryStatusPublisher.

◆ preempted()

virtual void preempted ( const armem::MemoryID & gazeTargetID,
const std::string & reason )
pure virtual

Lost the active slot but stays in the queue. Not terminal.

Implemented in MemoryStatusPublisher.

◆ reached()

virtual void reached ( const armem::MemoryID & gazeTargetID,
const gaze_controller::GazeResidual & residual )
pure virtual

The gaze settled on the target.

Implemented in MemoryStatusPublisher.

◆ released()

virtual void released ( const armem::MemoryID & gazeTargetID,
const std::string & reason )
pure virtual

Left the queue having been reached. Terminal, and a success for whoever asked.

Implemented in MemoryStatusPublisher.

◆ requested()

virtual void requested ( const armem::MemoryID & gazeTargetID,
const armarx::DateTime & creationTimestamp )
pure virtual

Admitted to the scheduler's queue.

Implemented in MemoryStatusPublisher.

◆ scheduled()

virtual void scheduled ( const armem::MemoryID & gazeTargetID)
pure virtual

Submitted to the low-level controller.

Implemented in MemoryStatusPublisher.

◆ wasReached()

virtual bool wasReached ( const armem::MemoryID & gazeTargetID) const
pure virtual

Whether this target was reached at any point.

This is what separates released from aborted when a target stops being active, so it is answered from the same accumulated lifecycle that gets published – not from the scheduler's queue, which may no longer hold the target at all.

Implemented in MemoryStatusPublisher.


The documentation for this class was generated from the following file: