PLCnext API Documentation  22.3.0.20
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:
22  std::unique_ptr<NonBlockingNotificationSendingAdapter> notificationSending);
24 
25 public:
28 
31 
32 protected:
33  bool HasImpl() const;
34 
35  NotificationNameIdType GetNotificationNameIdInternal() const;
36 
37  const Future<NotificationIdType>& GetFutureNotificationId() const;
38  void ResetFutureNotificationId();
39 
40 protected:
41  void Register(
42  const String& notificationName, const String& senderName, Severity severity, PayloadTypeIdType payloadTypeId);
43  void Unregister();
44  void SendNotificationInternal(const DateTime& timestamp,
45  std::shared_ptr<NonBlockingNotificationRegistration3ArgumentsBufferBase> argumentsBuffer,
47  NonBlockingNotificationSendingAdapter::CreatePayloadFunctor createPayloadFunctor);
48 
49  bool IsReadyToSend() const;
50 
51 public:
53  bool IsCompleted() const;
54 
57 
58 private:
59  class Impl;
61  Pimpl pimpl;
62 };
63 
64 }}} // namespace Arp::System::Nm
The class contains date and time informations.
Definition: DateTime.hpp:44
Internal class for pimpl pattern
Definition: NonBlockingNotificationRegistration3Base.hpp:18
Definition: NonBlockingNotificationRegistration3ArgumentsBufferBase.hpp:37
NotificationIdType GetLastNotificationId() const
Returns the id of the last send Notification
bool IsCompleted() const
Returns true if the last operation is completed
Severity
Enumeration of Severities for notifications
Definition: Severity.hpp:15
Root namespace for the PLCnext API
Future object as proxy for return value an asynchronous function call
Definition: Future.hpp:114
System components used by the System, Device, Plc or Io domains.