|
| NotificationManager (size_t nonBlockingNotificationSendingProxyQueueLength=128) |
|
| NotificationManager (const NotificationManager &)=delete |
|
| NotificationManager (NotificationManager &&) noexcept=delete |
|
NotificationManager & | operator= (const NotificationManager &)=delete |
|
NotificationManager & | operator= (NotificationManager &&) noexcept=delete |
|
template<typename PayloadType > |
NotificationRegistration< PayloadType > | CreateNotificationRegistration (const String ¬ificationName, const String &senderName, Severity severity) |
| Creates a NotificationRegistration proxy More...
|
|
template<typename PayloadType > |
NonBlockingNotificationRegistration< PayloadType > | CreateNonBlockingNotificationRegistration (const String ¬ificationName, const String &senderName, Severity severity) |
| Creates a NonBlockingNotificationRegistration proxy More...
|
|
template<typename PayloadType > |
NonBlockingNotificationRegistration< PayloadType > | CreateNonBlockingNotificationRegistration2 (const String ¬ificationName, const String &senderName, Severity severity) |
| Creates a NonBlockingNotificationRegistration proxy More...
|
|
template<typename PayloadType , typename ArgumentsType = typename PayloadType::ArgumentsType> |
NonBlockingNotificationRegistration3< PayloadType, ArgumentsType > | CreateNonBlockingNotificationRegistration3 (const String ¬ificationName, const String &senderName, Severity severity, size_t argumentsBufferCapacity=GetDefaultArgumentsBufferCapacity()) |
| Creates a NonBlockingNotificationRegistration3 proxy More...
|
|
NotificationSubscriber | CreateNotificationSubscriber (const String ¬ificationName) |
| Creates a NotificationSubscriber proxy More...
|
|
NotificationNameIdType | RegisterNotification (const String ¬ificationName, const String &senderName, Severity severity, PayloadTypeIdType payloadTypeId) override |
| Registers a new Notification More...
|
|
void | UnregisterNotification (NotificationNameIdType notificationNameId) override |
| Unregisters a Nototification More...
|
|
NotificationIdType | SendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const RawPayloadType &payload) override |
| Sends a notification More...
|
|
NotificationIdType | SendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const IPayload &payload) override |
| Sends a notification More...
|
|
Future< NotificationNameIdType > | NonBlockingRegisterNotification (const String ¬ificationName, const String &senderName, Severity severity, PayloadTypeIdType payloadTypeId) override |
| Registers a new Notification (non-blocking) More...
|
|
void | NonBlockingRegisterNotification (const String ¬ificationName, const String &senderName, Severity severity, PayloadTypeIdType payloadTypeId, Future< NotificationNameIdType > result) |
|
Future< void > | NonBlockingUnregisterNotification (NotificationNameIdType notificationNameId) override |
| Unregisters a Nototification (non-blocking) More...
|
|
void | NonBlockingUnregisterNotification (NotificationNameIdType notificationNameId, Future< void > result) |
|
Future< NotificationIdType > | NonBlockingSendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const RawPayloadType &payload) override |
| Sends a notification (non-blocking) More...
|
|
void | NonBlockingSendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, std::function< RawPayloadType()> createPayloadFunctor, Future< NotificationIdType > result) |
|
Future< NotificationIdType > | NonBlockingSendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const IPayload &payload) override |
| Sends a notification (non-blocking) More...
|
|
String | GetNotificationName (NotificationNameIdType notificationNameId) const override |
| Queries the NotifictionName More...
|
|
NotificationNameIdType | GetNotificationNameId (const String ¬ificationName) override |
| Queries the id of an NotificationName More...
|
|
NotificationNameIdList | GetNotificationNameIdsByStatus (const NotificationRegistrationStatus &status) const override |
| Queries the ids of Notifications with a given NotificationRegistrationStatus More...
|
|
NotificationNameIdList | GetAllKnownNotificationNameIds () const override |
| Queries of all known NotificationNameIds More...
|
|
NotificationRegistrationInfo | GetNotificationRegistration (NotificationNameIdType notificationNameId) const override |
| Queries information about an Notification More...
|
|
PayloadTypeIdType | GetPayloadTypeId (const String &payloadTypeName) override |
| Query an id for a given PayloadType More...
|
|
String | GetPayloadTypeName (const PayloadTypeIdType &payloadTypeId) const override |
| Query the payload type name of a given id More...
|
|
Arp::uint64 | GetNumberOfSubmittedNotifications () const override |
| Returns the number of Notifications submitted since startup of the controller More...
|
|
NotificationNameIdType | Subscribe (const String ¬ificationName, INotificationSubscriber *subscriber) override |
| Subscribe to a Notification More...
|
|
void | Unsubscribe (NotificationNameIdType notificationNameId, INotificationSubscriber *subscriber) override |
| Unsubscribe from a Notification More...
|
|
void | UnsubscribeFromAll (INotificationSubscriber *subscriber) override |
| Unsubscribe from all Notification More...
|
|
void | ReplaceSubscriber (INotificationSubscriber *oldSubscriber, INotificationSubscriber *newSubscriber) |
|
virtual NotificationNameIdType | RegisterNotification (const String ¬ificationName, const String &senderName, Severity severity, PayloadTypeIdType payloadTypeId)=0 |
| Registers a new Notification More...
|
|
virtual void | UnregisterNotification (NotificationNameIdType notificationNameId)=0 |
| Unregisters a Nototification More...
|
|
virtual NotificationIdType | SendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const RawPayloadType &payload)=0 |
| Sends a notification More...
|
|
virtual NotificationIdType | SendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const IPayload &payload)=0 |
| Sends a notification More...
|
|
virtual Future< NotificationNameIdType > | NonBlockingRegisterNotification (const String ¬ificationName, const String &senderName, Severity severity, PayloadTypeIdType payloadTypeId)=0 |
| Registers a new Notification (non-blocking) More...
|
|
virtual Future< void > | NonBlockingUnregisterNotification (NotificationNameIdType notificationNameId)=0 |
| Unregisters a Nototification (non-blocking) More...
|
|
virtual Future< NotificationIdType > | NonBlockingSendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const RawPayloadType &payload)=0 |
| Sends a notification (non-blocking) More...
|
|
virtual Future< NotificationIdType > | NonBlockingSendNotification (NotificationNameIdType notificationNameId, Arp::DateTime timestamp, const IPayload &payload)=0 |
| Sends a notification (non-blocking) More...
|
|
virtual String | GetNotificationName (NotificationNameIdType notificationNameId) const =0 |
| Queries the NotifictionName More...
|
|
virtual NotificationNameIdType | GetNotificationNameId (const String ¬ificationName)=0 |
| Queries the id of an NotificationName More...
|
|
virtual NotificationNameIdList | GetNotificationNameIdsByStatus (const NotificationRegistrationStatus &status) const =0 |
| Queries the ids of Notifications with a given NotificationRegistrationStatus More...
|
|
virtual NotificationNameIdList | GetAllKnownNotificationNameIds () const =0 |
| Queries of all known NotificationNameIds More...
|
|
virtual NotificationRegistrationInfo | GetNotificationRegistration (NotificationNameIdType notificationNameId) const =0 |
| Queries information about an Notification More...
|
|
virtual PayloadTypeIdType | GetPayloadTypeId (const String &payloadTypeName)=0 |
| Query an id for a given PayloadType More...
|
|
virtual String | GetPayloadTypeName (const PayloadTypeIdType &payloadTypeId) const =0 |
| Query the payload type name of a given id More...
|
|
virtual Arp::uint64 | GetNumberOfSubmittedNotifications () const =0 |
| Returns the number of Notifications submitted since startup of the controller More...
|
|
virtual NotificationNameIdType | Subscribe (const String ¬ificationName, INotificationSubscriber *subscriber)=0 |
| Subscribe to a Notification More...
|
|
virtual void | Unsubscribe (NotificationNameIdType notificationNameId, INotificationSubscriber *subscriber)=0 |
| Unsubscribe from a Notification More...
|
|
virtual void | UnsubscribeFromAll (INotificationSubscriber *subscriber)=0 |
| Unsubscribe from all Notification More...
|
|
Primary access to the NotificationManager
The NotificationManager provides a communication system with 1:n communication and loose coupling between components. Notifications contain some meta data like name and timestamp and also a payload defined by the sender. The payload should be defined by deriving a class from SpecializedPayload. See namespace Arp::System::NmPayload for examples.
The NotificationManager is implemented as a singleton. To access it use NotificationManager::GetInstance().
To send notifications they must be registered in advance. The simplest way is to use a NotificationRegistration object created by CreateNotificationRegistration(...). This acts a a proxy like a smart pointer.
To receive a notification a class must implement the INotificationSubscriber interface and subscribe to a Notification. This can be simplified using CreateNotificationSubscriber(...) method to create a NotificationSubscriber and add a callback function to its OnNotification event.