PLCnext API Documentation 24.0.0.71
NonBlockingNotificationRegistration3Base.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6
7#pragma once
8
10#include "Arp/System/Core/PimplPtr.hxx"
11#include "Arp/System/Nm/NonBlockingNotificationRegistration3ArgumentsBufferBase.hpp"
12#include "Arp/System/Nm/NonBlockingNotificationSendingAdapter.hpp"
13
14namespace Arp { namespace System { namespace Nm
15{
16
20{
21protected:
24 std::unique_ptr<NonBlockingNotificationSendingAdapter> notificationSending);
26
27public:
30
33
34protected:
35 bool HasImpl() const;
36
37 NotificationNameIdType GetNotificationNameIdInternal() const;
38
39 const Future<NotificationIdType>& GetFutureNotificationId() const;
40 void ResetFutureNotificationId();
41
42protected:
43 void Register(
44 const String& notificationName, const String& senderName, Severity severity, PayloadTypeIdType payloadTypeId);
45 void Unregister();
46 void SendNotificationInternal(const DateTime& timestamp,
47 std::shared_ptr<NonBlockingNotificationRegistration3ArgumentsBufferBase> argumentsBuffer,
49 NonBlockingNotificationSendingAdapter::CreatePayloadFunctor createPayloadFunctor);
50
51 bool IsReadyToSend() const;
52
53public:
55 bool IsCompleted() const;
56
59
60private:
61 class Impl;
63 Pimpl pimpl;
64};
65
66}}} // namespace Arp::System::Nm
The class contains date and time informations.
Definition: DateTime.hpp:46
Future object as proxy for return value an asynchronous function call
Definition: Future.hpp:115
Internal class for pimpl pattern
Definition: NonBlockingNotificationRegistration3Base.hpp:20
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.
enum ARP_CXX_SYMBOL_EXPORT Severity
Enumeration of Severities for notifications
Definition: Severity.hpp:14
Root namespace for the PLCnext API
Definition: NonBlockingNotificationRegistration3ArgumentsBufferBase.hpp:39