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.

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: