Skip to content

OcaDeviceTimeManager#

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

Manager that allows controlling and monitoring a device's time-of-day clock, and that collects the device's time source objects. Must be instantiated in every device that has more than one time source object. In this context, a "time source object" is an instance of OcaTimeSource or a subclass of it., May be instantiated at most once in any device., If instantiated, object number must be 10.

Note: The clock value is accessible via Get and Set methods, but has not been defined as a public property because its value is volatile and should not cause property-change events.

The current value of the OcaTimeSource object designated by the CurrentDeviceTimeSource property of this Manager is known as the Device Time.

The property TimeSources was added in version 2 of this class.


Overview#

Class Declaration#

The device side implementation has the following signature.

namespace aes70::device
{
  template <class Implementation>
  class OcaDeviceTimeManager : 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 MyOcaDeviceTimeManagerImplementation
{
  // Methods defined by OcaDeviceTimeManager
  OcaTimeNTP GetDeviceTimeNTP();
  void SetDeviceTimeNTP(OcaTimeNTP DeviceTime);
  OcaList<OcaONo> GetTimeSources();
  OcaONo GetCurrentDeviceTimeSource();
  void SetCurrentDeviceTimeSource(OcaONo TimeSourceONo);
  OcaTime GetDeviceTime();
  void SetDeviceTime(OcaTime DeviceTime);

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

};

Events#