PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
Loading...
Searching...
No Matches
rpcTransport.cpp File Reference

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
 

Detailed Description

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.

Variable Documentation

◆ buffer

◆ completed

std::atomic_bool completed {false}

Definition at line 43 of file rpcTransport.cpp.

◆ completion

◆ error

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().

◆ receivedBytes

std::size_t receivedBytes = 0

Definition at line 40 of file rpcTransport.cpp.

Referenced by profinet::UdpSocket::Recv(), and profinet::UdpSocket::RecvFrom().

◆ remoteEndpoint

asio::ip::udp::endpoint remoteEndpoint

◆ timedOut

std::atomic_bool timedOut {false}

Definition at line 42 of file rpcTransport.cpp.

Referenced by profinet::UdpSocket::Recv(), and profinet::UdpSocket::RecvFrom().

◆ timer