OcaSubscriptionManager#
This document describes the device side implementation of OcaSubscriptionManager. This class is documented in the AES70 standard as:
Manager that collects and controls the event subscriptions of the device. Must be instantiated exactly once in every device., Object number must be 4.
Overview#
- ClassID: 1.3.4
- Header:
aes70/device/OcaSubscriptionManager.hpp
- Namespace:
aes70::device
- Inheritance: aes70::device::OcaManager, aes70::device::OcaRoot, aes70::device::object
Class Declaration#
The device side implementation has the following signature.
namespace aes70::device
{
template <class Implementation>
class OcaSubscriptionManager : 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 MyOcaSubscriptionManagerImplementation
{
// Methods defined by OcaSubscriptionManager
void AddSubscription(OcaEvent Event, OcaMethod Subscriber, OcaBlob SubscriberContext, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
void RemoveSubscription(OcaEvent Event, OcaMethod Subscriber);
void DisableNotifications();
void ReEnableNotifications();
void AddPropertyChangeSubscription(OcaONo Emitter, OcaPropertyID Property, OcaMethod Subscriber, OcaBlob SubscriberContext, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
void RemovePropertyChangeSubscription(OcaONo Emitter, OcaPropertyID Property, OcaMethod Subscriber);
OcaUint16 GetMaximumSubscriberContextLength();
void AddSubscription2(OcaEvent Event, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
void RemoveSubscription2(OcaEvent Event, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
void AddPropertyChangeSubscription2(OcaONo Emitter, OcaPropertyID Property, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
void RemovePropertyChangeSubscription2(OcaONo Emitter, OcaPropertyID Property, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
OcaList<OcaStatus> AddSubscription2List(OcaList<OcaEvent> Events, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
void RemoveSubscription2List(OcaList<OcaEvent> Events, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
void AddPropertyChangeSubscription2List(OcaList<OcaONo> Emitters, OcaList<OcaPropertyID> Properties, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation, OcaList<OcaStatus> ResultStatuses);
void RemovePropertyChangeSubscription2List(OcaList<OcaONo> Emitters, OcaList<OcaPropertyID> Properties, OcaNotificationDeliveryMode NotificationDeliveryMode, OcaNetworkAddress DestinationInformation);
// Methods defined by OcaRoot
OcaBoolean GetLockable();
void SetLockNoReadWrite();
void Unlock();
OcaString GetRole();
void SetLockNoWrite();
OcaLockState GetLockState();
};