PLCnext API Documentation  20.0.0.24462
INotificationManagerService.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/System/Rsc/Services/IRscService.hpp"
9 #include "NotificationManagerServiceProxyFactory.hpp"
10 #include "Arp/System/Rsc/Services/RscString.hxx"
11 #include "Arp/System/Rsc/Services/RscVariant.hxx"
12 #include "NotificationRegistrationInfo.hpp"
13 #include "NotificationRegistrationStatus.hpp"
14 #include "Severity.hpp"
15 #include <vector>
16 
17 // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY INotificationManagerService.cs
18 
19 namespace Arp { namespace System { namespace Nm { namespace Services
20 {
21 
22 using namespace Arp;
23 using namespace Arp::System::Rsc::Services;
24 
29 {
30 public: // typedefs
31  typedef std::shared_ptr<INotificationManagerService> Ptr;
32 
33 public: // construction/destruction
37  virtual ~INotificationManagerService(void);
38 
39 public: // static policy operation
40  static IRscServiceProxyFactory& GetProxyFactory(void);
41 
42 public: // abstract operations
51  virtual uint32 RegisterNotification(const RscString<512>& notificationName, const RscString<512>& senderName, Severity severity, const RscString<512>& payloadTypeName) = 0;
52 
57  virtual void UnregisterNotification(uint32 notificationNameId) = 0;
58 
66  virtual uint64 SendNotification(uint32 notificationNameId, DateTime timestamp, const std::vector<RscVariant<512>>& payload) = 0;
67 
73  virtual RscString<512> GetNotificationName(uint32 notificationNameId) = 0;
74 
80  virtual uint32 GetNotificationNameId(const RscString<512>& notificationName) = 0;
81 
87  virtual std::vector<uint32> GetNotificationNameIdsByStatus(NotificationRegistrationStatus status) = 0;
88 
93  virtual std::vector<uint32> GetAllKnownNotificationNameIds() = 0;
94 
100  virtual NotificationRegistrationInfo GetNotificationRegistration(uint32 notificationNameId) = 0;
101 
107  virtual uint16 GetPayloadTypeId(const RscString<512>& payloadTypeName) = 0;
108 
114  virtual RscString<512> GetPayloadTypeName(uint16 payloadTypeId) = 0;
115 
120  virtual uint64 GetNumberOfSubmittedNotifications() = 0;
121 
122 private: // deleted methods (for non-copyable classes)
124  INotificationManagerService& operator=(const INotificationManagerService& arg) = delete;
125 };
126 
128 // inline methods of class INotificationManagerService
130 {
131 }
132 
134 {
135 }
136 
137 inline IRscServiceProxyFactory& INotificationManagerService::GetProxyFactory()
138 {
139  return NotificationManagerServiceProxyFactory::GetInstance();
140 }
141 
142 }}}} // end of namespace Arp::System::Nm::Services
Service to send Notifications and query information about the NotificationManager ...
Definition: INotificationManagerService.hpp:28
Namespace for classes and interfaces for the Remote Service Call implementation
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
The class contains date and time informations.
Definition: DateTime.hpp:43
virtual ~INotificationManagerService(void)
Destructs this instance and frees all resouces.
Definition: INotificationManagerService.hpp:133
NotificationRegistrationStatus
Enumeration to represent the status of the Notification
Definition: NotificationRegistrationStatus.hpp:16
Severity
Enumeration of Severities for notifications
Definition: Severity.hpp:15
Root namespace for the PLCnext API
Information about the registration of a Notification
Definition: NotificationRegistrationInfo.hpp:21
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
std::uint64_t uint64
The Arp unsigned integer type of 8 byte size.
Definition: PrimitiveTypes.hpp:39
Base interface for all Rsc service interface.
Definition: IRscService.hpp:18
System components used by the System, Device, Plc or Io domains.
INotificationManagerService(void)
Constructs an INotificationManagerService instance.
Definition: INotificationManagerService.hpp:129