PLCnext API Documentation 24.0.0.71
EthernetLinkStatePayload.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
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>;
23
24 using SpecializedPayload::SpecializedPayload;
25
28
33 EthernetLinkStatePayload(uint32 interface, uint32 port, EthernetLinkState state);
34
37
39 uint32 GetPort() const;
40
42 EthernetLinkState GetState() const;
43
44private:
45 // Do not change the order of the field initialization!
46 const size_t indexInterface = this->AddField<uint32>();
47 const size_t indexPort = this->AddField<uint32>();
48 const size_t indexState = this->AddField<EthernetLinkState>();
49};
50
51
52}}}} // namespace Arp::System::NmPayload::Device
Payload class for changes of the link state of an Ethernet port
Definition: EthernetLinkStatePayload.hpp:19
uint32 GetInterface() const
Returns the id of interface
EthernetLinkStatePayload(const ArgumentsType &args)
Creates a payload object
uint32 GetPort() const
Returns the id of the port
EthernetLinkStatePayload(uint32 interface, uint32 port, EthernetLinkState state)
Creates a payload object
std::tuple< uint32, uint32, EthernetLinkState > ArgumentsType
ArgumentsType to be used with NonBlockingNotificationRegistration3
Definition: EthernetLinkStatePayload.hpp:22
EthernetLinkState GetState() const
Returns the state of the interface
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:44
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:36
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API