8#include "Arp/System/Ve/IServiceObject.hpp"
10namespace Arp {
namespace System {
namespace Ve
22 enum class SocketDomain
30 enum class SocketBlockingMode
72 SocketOptionReuseAddress = 0x0004,
79 SocketOptionKeepAlive = 0x0008,
86 SocketOptionBroadcast = 0x0020,
91 SocketOptionLinger = 0x0080,
96 SocketOptionReceiveTimeout = 0x0200,
101 SocketOptionSendTimeout = 0x0800,
108 SocketOptionNoDelay = 1,
113 SocketOptionPeerCredentials = 2,
125 SocketOptionUserTimeout = 100,
133 SocketOptionKeepAliveIdleTime = 101,
141 SocketOptionKeepAliveProbeInterval = 102,
149 SocketOptionKeepAliveProbeCount = 103,
161 Interrupted = (10000 + 4),
163 InvalidArgument = (10000 + 22),
165 TooManyOpenSockets = (10000 + 24),
167 WouldBlock = (10000 + 35),
169 InProgress = (10000 + 36),
171 AlreadyInProgress = (10000 + 37),
173 NotSocket = (10000 + 38),
175 DestinationAddressRequired = (10000 + 39),
180 MessageSize = (10000 + 40),
185 ProtoType = (10000 + 41),
187 ProtocolOption = (10000 + 42),
189 ProtocolNotSupported = (10000 + 43),
191 SocketNotSupported = (10000 + 44),
193 OperationNotSupported = (10000 + 45),
195 ProtocolFamilyNotSupported = (10000 + 46),
197 AddressFamilyNotSupported = (10000 + 47),
199 AddressAlreadyInUse = (10000 + 48),
201 AddressNotAvailable = (10000 + 49),
203 NetworkDown = (10000 + 50),
205 NetworkUnreachable = (10000 + 51),
207 NetworkReset = (10000 + 52),
209 ConnectionAborted = (10000 + 53),
211 ConnectionReset = (10000 + 54),
213 NoBufferSpaceAvailable = (10000 + 55),
215 IsConnected = (10000 + 56),
220 NotConnected = (10000 + 57),
225 Shutdown = (10000 + 58),
230 TimedOut = (10000 + 60),
232 ConnectionRefused = (10000 + 61),
234 HostDown = (10000 + 64),
236 HostUnreachable = (10000 + 65),
238 ProcessLimit = (10000 + 67),
243 SystemNotReady = (10000 + 91),
245 VersionNotSupported = (10000 + 92),
247 NotInitialized = (10000 + 93),
249 Disconnecting = (10000 + 101),
251 HostNotFound = (10000 + 1001),
256 TryAgain = (10000 + 1002)
276 virtual int Select(SelectMode mode,
size_t timeout_us,
SocketError& error) = 0;
277 virtual int Poll(PollMode mode,
size_t timeoutMillis,
SocketError& error) = 0;
281 virtual int Send(
const void* pBuffer,
size_t len,
SocketError& error) = 0;
282 virtual int SendTo(
const void* pBuffer,
size_t len,
SocketError& error,
uint32 ip4Address,
int port) = 0;
283 virtual int Recv(
void* pBuffer,
size_t len,
SocketError& error) = 0;
284 virtual int RecvFrom(
void* pBuffer,
size_t len,
SocketError& error,
uint32& ip4Address,
int& port) = 0;
285 virtual SocketError SetOptionBlocking(
bool enable) = 0;
287 virtual SocketError SetOptionLinger(
bool enable,
size_t timeout) = 0;
288 virtual SocketError GetOptionLinger(
bool& enable,
size_t& timeout) = 0;
290 virtual SocketError SetOptionUserTimeout(
size_t timeout_ms) = 0;
291 virtual SocketError GetOptionUserTimeout(
size_t& timeout_ms) = 0;
293 virtual SocketError SetOptionKeepAliveIdleTime(
int seconds) = 0;
294 virtual SocketError GetOptionKeepAliveIdleTime(
int& seconds) = 0;
295 virtual SocketError SetOptionKeepAliveProbeInterval(
int seconds) = 0;
296 virtual SocketError GetOptionKeepAliveProbeInterval(
int& seconds) = 0;
297 virtual SocketError SetOptionKeepAliveProbeCount(
int probeCount) = 0;
298 virtual SocketError GetOptionKeepAliveProbeCount(
int& probeCount) = 0;
300 virtual intptr GetNativeHandle()
const = 0;
Definition: IServiceObject.hpp:14
Definition: ISocketService.hpp:13
SocketOptionName
Specifies socket options to be set by the application. Copied from Eclr Socket Adaption
Definition: ISocketService.hpp:66
SocketError
Definition: ISocketService.hpp:155
ShutdownMode
Definition: ISocketService.hpp:55
uint32 intptr
The Arp integer type matching pointer size.
Definition: TypeSystem.h:85
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
Definition: ISocketService.hpp:260