10#include "Arp/System/Nm/NotificationManagerTypes.hpp"
11#include "Arp/System/Nm/Severity.hpp"
12#include "Arp/System/Commons/Diagnostics/Logging/Loggable.hxx"
14namespace Arp {
namespace System {
namespace Nm
20template<
class Derived>
23 NotificationRegistrationBase<Derived >>
53 virtual
void DisposeImpl() = 0;
62template<class Derived>
65 : NotificationName(
std::move(notificationName)),
66 SenderName(
std::move(senderName)),
67 severity(
std::move(severity))
73template<
class Derived>
82 this->log.Error(
"Caught exception while unregistering notificationName={}: {}",
83 this->NotificationName, e.
ToString());
88 "Caught exception while unregistering notificationName={}", this->NotificationName);
94template<
class Derived>
97 return this->NotificationName;
102template<
class Derived>
105 return this->SenderName;
110template<
class Derived>
113 return this->severity;
118template<
class Derived>
121 return Derived::payload_type::GetPayloadTypeId();
This is the base class of all Arp exception classes.
Definition: Exception.hpp:21
String ToString(void) const
This operation should be used for logging and returns a reasonable description of the exception cause...
Definition: Exception.cpp:165
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Derive from this class to inherit logging functionality.
Definition: Loggable.hxx:28
Base class with common behavior of NotificationRegistration and NonBlockingNotificationRegistration
Definition: NotificationRegistrationBase.hpp:24
Severity GetSeverity() const
Returns the Severity
Definition: NotificationRegistrationBase.hpp:111
String GetSenderName() const
Returns the sender name
Definition: NotificationRegistrationBase.hpp:103
PayloadTypeIdType GetPayloadTypeId() const
Returns the PayloadTypeId
Definition: NotificationRegistrationBase.hpp:119
String GetNotificationName() const
Returns the notification name
Definition: NotificationRegistrationBase.hpp:95
void Dispose() noexcept
Unregisters the Notification and release all resources
Definition: NotificationRegistrationBase.hpp:74
enum ARP_CXX_SYMBOL_EXPORT Severity
Enumeration of Severities for notifications
Definition: Severity.hpp:14
Root namespace for the PLCnext API
Namespace of the C++ standard library