PLCnext API Documentation 23.0.2.9
NmSubscribeFailedPayload.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6
7#pragma once
8
9#include "Arp/System/Nm/SpecializedPayload.hpp"
10
11
12namespace Arp { namespace System { namespace Nm
13{
14
15
17template<typename Derived>
18class NmSubscribeFailedPayload : public SpecializedPayload<NmSubscribeFailedPayload<Derived>>
19{
20private:
22
23protected:
24 using Base::Base;
25
26 NmSubscribeFailedPayload(const String& formatString, const String& notificationName)
27 : Base(formatString)
28 {
29 this->SetFieldValue(this->indexNotificationName, notificationName);
30 }
31
32public:
35 {
36 return this->template GetFieldValueAs<String>(this->indexNotificationName);
37 }
38
39private: // fields
40 const size_t indexNotificationName = this->template AddField<String>();
41};
42
43
49{
50public:
51 using NmSubscribeFailedPayload::NmSubscribeFailedPayload;
52
53 explicit NmSubscribeToNotRegisteredPayload(const String& notificationName)
55 "A subscriber subscribed to not registered notification name: {}", notificationName)
56 {
57 }
58};
59
60
66{
67public:
68 using NmSubscribeFailedPayload::NmSubscribeFailedPayload;
69
70 explicit NmSubscribeToUnregisteredPayload(const String& notificationName)
72 "A subscriber subscribed to unregistered notification name: {}", notificationName)
73 {
74 }
75};
76
77
78}}} // end of namespace Arp::System::Nm
Payload base class for failed subscriptions
Definition: NmSubscribeFailedPayload.hpp:19
const String GetNotificationName() const
Returns the affected NotificationName
Definition: NmSubscribeFailedPayload.hpp:34
Payload class for subscribing to a not registered Notification
Definition: NmSubscribeFailedPayload.hpp:49
Payload class for subscribing to an unregistered Notification
Definition: NmSubscribeFailedPayload.hpp:66
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:43
void SetFieldValue(size_t fieldIndex, const T &value)
Sets the value of a payload field
Definition: SpecializedPayload.hpp:129
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API