Skip to content

OcaTaskScheduler#

This document describes the device side implementation of OcaTaskScheduler. This class is documented in the AES70 standard as:

Optional scheduler for scheduling tasks to run programs and commandsets in the future.


Overview#

Class Declaration#

The device side implementation has the following signature.

namespace aes70::device
{
  template <class Implementation>
  class OcaTaskScheduler : public OcaAgent<Implementation>
  {

  };
}

The template argument Implementation may implement the following methods.

Note

The signatures given here are just one possibility and that most methods are optional. Implement only those methods which make sense in the context of your device. See the documentation in Implementing AES70 Classes for more details.

class MyOcaTaskSchedulerImplementation
{
  // Methods defined by OcaTaskScheduler
  void ActionStart();
  void ActionStop();
  void ActionPause();
  void ActionDrain();
  OcaTaskSchedulerState GetState();
  OcaList<OcaONo> GetTaskAgents();
  OcaList<OcaJobQueueItem> GetJobQueue();
  OcaJobQueueItem GetJob(OcaID32 ID);
  void SetJob(OcaID32 ID, OcaJobQueueItem Item);
  OcaID32 AddJob(OcaJobQueueItem Item);
  void DeleteJob(OcaID32 ID);
  void ClearJobQueue();

  // Methods defined by OcaAgent
  OcaString GetLabel();
  void SetLabel(OcaString Label);
  OcaONo GetOwner();
  std::tuple<OcaRolePath,OcaONoPath> GetPath();

  // Methods defined by OcaRoot
  OcaBoolean GetLockable();
  void SetLockNoReadWrite();
  void Unlock();
  OcaString GetRole();
  void SetLockNoWrite();
  OcaLockState GetLockState();

};

Events#