PLCnext API Documentation 25.0.2.69
EthernetLinkStatePayload.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Nm/SpecializedPayload.hpp"
9#include "Arp/System/NmPayload/Device/EthernetLinkState.hpp"
10#include <tuple>
11
12namespace Arp { namespace System { namespace NmPayload { namespace Device
13{
14
17class ARP_CXX_SYMBOL_EXPORT EthernetLinkStatePayload
18 : public Arp::System::Nm::SpecializedPayload<EthernetLinkStatePayload>
19{
20public:
22 using ArgumentsType = std::tuple<uint32, uint32, EthernetLinkState>;
24 explicit EthernetLinkStatePayload(const ArgumentsType& args);
25 EthernetLinkStatePayload(uint32 interface, uint32 port, EthernetLinkState state);
26 uint32 GetInterface() const;
27 uint32 GetPort() const;
28 EthernetLinkState GetState() const;
29
30private:
31 // Do not change the order of the field initialization!
32 const size_t indexInterface = this->AddField<uint32>();
33 const size_t indexPort = this->AddField<uint32>();
34 const size_t indexState = this->AddField<EthernetLinkState>();
35};
36
37
38}}}} // namespace Arp::System::NmPayload::Device
Payload class for changes of the link state of an Ethernet port
Definition: EthernetLinkStatePayload.hpp:19
std::tuple< uint32, uint32, EthernetLinkState > ArgumentsType
ArgumentsType to be used with NonBlockingNotificationRegistration3
Definition: EthernetLinkStatePayload.hpp:22
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:44
SpecializedPayload(const Notification &notification)
Creates a view on a Notification object
Definition: SpecializedPayload.hpp:211
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:33
Root namespace for the PLCnext API