|
PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
|
UDP transport implementation for PROFINET DCE/RPC. More...
#include "profinet/rpcTransport.h"#include <algorithm>#include <atomic>#include <future>#include <memory>#include <system_error>#include <utility>#include <vector>#include "profinet/exceptions.h"
Include dependency graph for rpcTransport.cpp:Go to the source code of this file.
Namespaces | |
| namespace | profinet |
| namespace | profinet::rpc |
UDP transport implementation for PROFINET DCE/RPC.
Provides the synchronous UDP transport used by PROFINET DCE/RPC. The implementation uses standalone Asio for socket management, asynchronous receive operations, and timeout handling while exposing a synchronous SendReceive() API to the RPC layer.
Definition in file rpcTransport.cpp.
| Bytes buffer |
Definition at line 36 of file rpcTransport.cpp.
Referenced by profinet::UdpSocket::Recv(), profinet::rpc::RpcTests::ReplyToEpmLookup(), profinet::sim::VirtualProfinetRpcDevice::Run(), and TestRpcDevice::Run().
| std::atomic_bool completed {false} |
Definition at line 43 of file rpcTransport.cpp.
| std::promise<void> completion |
Definition at line 45 of file rpcTransport.cpp.
Referenced by profinet::rpc::RpcTransport::Receive(), profinet::AsioEthernetSocket::EthernetPacketBackend::Recv(), and profinet::rpc::RpcTransport::SendReceive().
| asio::error_code error |
Definition at line 39 of file rpcTransport.cpp.
Referenced by profinet::AsioEthernetSocket::EthernetPacketBackend::~EthernetPacketBackend(), profinet::AsioEthernetSocket::EthernetPacketBackend::AsyncWaitForPacket(), profinet::AsioEthernetSocket::EthernetPacketBackend::CancelPacketWait(), profinet::AsioEthernetSocket::EthernetPacketBackend::CompleteHandler(), profinet::AsioEthernetSocket::EthernetPacketBackend::FailOperation(), profinet::dcp::GetDcpBlockErrorDescription(), profinet::GetExecutableDirectory(), profinet::AsioEthernetSocket::EthernetPacketBackend::HandlePacketReady(), profinet::AsioEthernetSocket::EthernetPacketBackend::HandleTimeout(), profinet::AsioEthernetSocket::EthernetPacketBackend::InitializePacketWait(), profinet::AlarmListener::ProcessAlarm(), profinet::AsioEthernetSocket::EthernetPacketBackend::Recv(), profinet::sim::VirtualProfinetRpcDevice::Run(), profinet::sim::VirtualProfinetRpcDevice::SendApplicationReady(), profinet::sim::VirtualProfinetRpcDevice::SendResponse(), profinet::sim::VirtualProfinetRpcDevice::Start(), profinet::sim::VirtualProfinetRpcDevice::Stop(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_F(), profinet::TEST_P(), and profinet::sim::VirtualProfinetRpcDevice::WakeWorker().
| std::size_t receivedBytes = 0 |
Definition at line 40 of file rpcTransport.cpp.
Referenced by profinet::UdpSocket::Recv(), and profinet::UdpSocket::RecvFrom().
| asio::ip::udp::endpoint remoteEndpoint |
Definition at line 37 of file rpcTransport.cpp.
Referenced by profinet::rpc::RpcTests::TestRpcTransport::Receive(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
| std::atomic_bool timedOut {false} |
Definition at line 42 of file rpcTransport.cpp.
Referenced by profinet::UdpSocket::Recv(), and profinet::UdpSocket::RecvFrom().
| asio::steady_timer timer |
Definition at line 35 of file rpcTransport.cpp.
Referenced by profinet::dcp::ReadResponse(), profinet::dcp::ReceiveHello(), profinet::UdpSocket::Recv(), profinet::UdpSocket::RecvFrom(), and profinet::dcp::RecvSetResponse().