PLCnext API Documentation 25.0.2.69
NonBlockingNotificationRegistration3Base.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
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
58 NotificationIdType GetLastNotificationId() const;
59
60private:
61 class Impl;
63 Pimpl pimpl;
64};
65
66}}} // namespace Arp::System::Nm
This class contains date and time informations.
Definition: DateTime.hpp:27
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Future object as proxy for return value an asynchronous function call
Definition: Future.hpp:68
Internal class for pimpl pattern
Definition: NonBlockingNotificationRegistration3Base.hpp:20
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