PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
Loading...
Searching...
No Matches
alarmListenerTestAccess.h
Go to the documentation of this file.
1
15
16#pragma once
17
18#include <cstddef>
19#include <memory>
20
22
23namespace profinet
24{
25
37{
38 public:
46 static void SetSock(
47 AlarmListener& listener,
48 std::unique_ptr<IRawEthernetSocket> sock)
49 {
50 listener.l2Sock = std::move(sock);
51 }
52
56 static void HandleLayer2Frame(AlarmListener& listener)
57 {
58 listener.HandleLayer2Frame();
59 }
60
65 [[nodiscard]] static std::size_t CallbackCount(
66 const AlarmListener& listener)
67 {
68 return listener.alarmNotificationCallbacks.size();
69 }
70
75 [[nodiscard]] static const MacAddress& ControllerMac(
76 const AlarmListener& listener)
77 {
78 return listener.controllerMac;
79 }
80};
81
82} // namespace profinet
Declares the PROFINET RTA alarm listener and AlarmAck transmission support.
Narrow private-access adapter used only by AlarmListener tests.
static const MacAddress & ControllerMac(const AlarmListener &listener)
Return the listener's configured controller MAC address.
static void SetSock(AlarmListener &listener, std::unique_ptr< IRawEthernetSocket > sock)
Set the Layer 2 Ethernet socket used by the listener.
static void HandleLayer2Frame(AlarmListener &listener)
Receive and process one Layer 2 RTA frame.
static std::size_t CallbackCount(const AlarmListener &listener)
Return the number of callbacks registered with the listener.
Background listener for PROFINET alarm notifications.
std::unique_ptr< IRawEthernetSocket > l2Sock
Raw Ethernet transport used for Layer 2 alarm reception.
MacAddress controllerMac
This host's MAC address.
void HandleLayer2Frame()
Receive and process one Layer 2 (RTA-PDU) frame.
std::vector< std::function< void(const AlarmNotification &)> > alarmNotificationCallbacks
Registered callbacks invoked for successfully parsed alarmsnotifications.
std::array< std::uint8_t, macAddressLength > MacAddress
A 6-byte Ethernet MAC address.
Definition util.h:48