PLCnext API Documentation  22.9.0.33
NonBlockingNotificationRegistration3Base.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 
7 #pragma once
8 
9 #include "Arp/System/Core/PimplPtr.hxx"
10 #include "Arp/System/Nm/NonBlockingNotificationRegistration3ArgumentsBufferBase.hpp"
11 #include "Arp/System/Nm/NonBlockingNotificationSendingAdapter.hpp"
12 
13 namespace Arp { namespace System { namespace Nm
14 {
15 
19 {
20 protected:
23  std::unique_ptr<NonBlockingNotificationSendingAdapter> notificationSending);
25 
26 public:
29 
32 
33 protected:
34  bool HasImpl() const;
35 
36  NotificationNameIdType GetNotificationNameIdInternal() const;
37 
38  const Future<NotificationIdType>& GetFutureNotificationId() const;
39  void ResetFutureNotificationId();
40 
41 protected:
42  void Register(
43  const String& notificationName, const String& senderName, Severity severity, PayloadTypeIdType payloadTypeId);
44  void Unregister();
45  void SendNotificationInternal(const DateTime& timestamp,
46  std::shared_ptr<NonBlockingNotificationRegistration3ArgumentsBufferBase> argumentsBuffer,
48  NonBlockingNotificationSendingAdapter::CreatePayloadFunctor createPayloadFunctor);
49 
50  bool IsReadyToSend() const;
51 
52 public:
54  bool IsCompleted() const;
55 
58 
59 private:
60  class Impl;
62  Pimpl pimpl;
63 };
64 
65 }}} // namespace Arp::System::Nm
The class contains date and time informations.
Definition: DateTime.hpp:45
Future object as proxy for return value an asynchronous function call
Definition: Future.hpp:114
Internal class for pimpl pattern
Definition: NonBlockingNotificationRegistration3Base.hpp:19
NotificationIdType GetLastNotificationId() const
Returns the id of the last send Notification
bool IsCompleted() const
Returns true if the last operation is completed
@ System
System components used by the System, Device, Plc or Io domains.
Severity
Enumeration of Severities for notifications
Definition: Severity.hpp:15
Root namespace for the PLCnext API
Definition: NonBlockingNotificationRegistration3ArgumentsBufferBase.hpp:38