PLCnext API Documentation 23.0.2.9
NonBlockingNotificationRegistration3Base.hpp
1
2//
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
13namespace Arp { namespace System { namespace Nm
14{
15
19{
20protected:
23 std::unique_ptr<NonBlockingNotificationSendingAdapter> notificationSending);
25
26public:
29
32
33protected:
34 bool HasImpl() const;
35
36 NotificationNameIdType GetNotificationNameIdInternal() const;
37
38 const Future<NotificationIdType>& GetFutureNotificationId() const;
39 void ResetFutureNotificationId();
40
41protected:
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
52public:
54 bool IsCompleted() const;
55
58
59private:
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