Skip to content

OcaTaskManager#

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

This class is deprecated in version 2 (OCA 1.5).

Optional manager that collects OcaTask and OcaProgram objects. May be instantiated once in any device., If instantiated, object number must be 11.

Tasks shall be device execution threads that start, execute, and (normally) stop. The action of an OcaTask is defined by an OcaProgram. The idea is that OcaTasks shall execute OcaPrograms.

OcaTaskManager offers global control over tasks in the device.

Device task processing state is Enabled by default. In Enabled state, tasks may be running., Device task processing state may be Disabled by the OcaTaskManager Disable command., The Disable command will succeed only if no tasks are running.

Tasks may be stopped by: passing the OcaTaskManager a Stop or Abort command, which will stop designated tasks in the device;.


Overview#

Class Declaration#

The device side implementation has the following signature.

namespace aes70::device
{
  template <class Implementation>
  class OcaTaskManager : public OcaManager<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 MyOcaTaskManagerImplementation
{
  // Methods defined by OcaTaskManager
  void Enable(OcaBoolean Enable);
  void ControlAllTasks(OcaTaskCommand Command, OcaBlob ApplicationTaskParameter);
  void ControlTaskGroup(OcaID16 GroupID, OcaTaskCommand Command, OcaBlob ApplicationTaskParameter);
  void ControlTask(OcaTaskID TaskID, OcaTaskCommand Command, OcaBlob ApplicationTaskParameter);
  OcaTaskManagerState GetState();
  OcaTaskStatus GetTaskStatuses();
  OcaTaskStatus GetTaskStatus(OcaTaskID TaskID);
  void AddTask();
  OcaMap<OcaTaskID, OcaTask> GetTasks();
  OcaTask GetTask(OcaTaskID ID);
  void SetTask(OcaTaskID ID, OcaTask Task);
  void DeleteTask(OcaTaskID ID);

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

};

Events#