8#include "Arp/System/Commons/Net/IpAddress.hpp" 
    9#include "Arp/System/Commons/Net/SocketType.hpp" 
   10#include "Arp/System/Commons/Net/PollMode.hpp" 
   11#include "Arp/System/Commons/Net/SelectMode.hpp" 
   12#include "Arp/System/Commons/Net/ShutdownMode.hpp" 
   13#include "Arp/System/Commons/Net/SocketError.hpp" 
   14#include "Arp/System/Commons/Net/SocketDomain.hpp" 
   15#include "Arp/System/Commons/Net/SocketOptionName.hpp" 
   18namespace Arp { 
namespace System { 
namespace Ve
 
   23namespace Arp { 
namespace System { 
namespace Commons { 
namespace Net
 
  122    typedef std::shared_ptr<Socket> 
Ptr;
 
  187    using ISocketService = Arp::System::Ve::ISocketService;
 
  190    Socket(ISocketService *pSocket); 
 
  193    ISocketService *pSocketService;
 
Unified representation for ip address schemes.
Definition: IpAddress.hpp:14
 
Interface to realizes ethernet based communications.
Definition: Socket.hpp:118
 
SocketType GetSocketType(void) const
Returns the type of the socket.
Definition: Socket.cpp:58
 
SocketError Shutdown(void)
Shuts down a full-duplex connection.
Definition: Socket.cpp:252
 
SocketDomain GetSocketDomain(void) const
Returns the utilized domain.
Definition: Socket.cpp:66
 
int Send(const void *pBuffer, size_t length, SocketError &error)
Transmit data over the socket that is in a connected state.
Definition: Socket.cpp:304
 
SocketError SetSocketOption(SocketOptionName optionName, const void *optionValue, size_t optionLength)
Sets a single option on the socket.
Definition: Socket.cpp:459
 
SocketError SetOptionKeepAliveProbeInterval(int seconds)
Sets the interval time in between each Keep Alive probe, if the KeepAlive SocketOption is set to true...
Definition: Socket.cpp:782
 
SocketError GetOptionKeepAliveProbeInterval(int &seconds)
Gets the interval time in between each Keep Alive probe, if the KeepAlive SocketOption is set to true...
Definition: Socket.cpp:801
 
int Receive(void *pBuffer, size_t length, SocketError &error)
Reads data from connected socket.
Definition: Socket.cpp:352
 
Socket & operator=(const Socket &arg)=delete
Assignment operator.
 
SocketError Close(void)
Closes the socket. This ends all communication on the socket.
Definition: Socket.cpp:285
 
int Poll(PollMode mode, Milliseconds timeout, SocketError &error)
Checks if an i/o operation can be processed without blocking.
Definition: Socket.cpp:437
 
SocketError SetOptionLinger(bool enable, size_t timeout)
Sets the amount of time a socket resides in TIME_WAIT state after active close.
Definition: Socket.cpp:661
 
int SendTo(const void *pBuffer, size_t length, IpAddress ip4Adress, int port, SocketError &error)
Like Send but this method is to be used on sockets created with SocketType::Udp.
Definition: Socket.cpp:329
 
SocketError SetOptionNoDelay(bool enabled)
Enables/Disables no-delay for this socket.
Definition: Socket.cpp:602
 
Ptr Accept(IpAddress &ip4address, int &port, SocketError &error)
Accepts a pending connection request.
Definition: Socket.cpp:124
 
Socket(const Socket &arg)=delete
Copy contructor.
 
Socket(SocketType type, SocketDomain domain, SocketBlockingMode blockingMode)
Constructs an Socket instance.
Definition: Socket.cpp:17
 
SocketError GetOptionKeepAlive(bool &enabled) const
Checks if keep-alive is enabled.
Definition: Socket.cpp:549
 
SocketError GetOptionKeepAliveIdleTime(int &seconds)
Gets the time that the socket needs to be idle for, before the Keep Alive mechanism can start if the ...
Definition: Socket.cpp:764
 
SocketError GetOptionBroadcast(bool &enabled) const
Checks if broadcast is enabled.
Definition: Socket.cpp:582
 
IpAddress GetRemoteIpAddress(void) const
If this socket is connected this method returns the ip-address (v4).
Definition: Socket.cpp:92
 
SocketError SetOptionUserTimeout(size_t timeout_ms)
Sets the retransmission timeout of a socket. This only works on Linux.
Definition: Socket.cpp:708
 
SocketError SetOptionBlocking(bool enable)
Enables/disables the blocking mode of this socket..
Definition: Socket.cpp:630
 
SocketError SetOptionKeepAliveIdleTime(int seconds)
Sets the time that the socket needs to be idle for, before the Keep Alive mechanism can start if the ...
Definition: Socket.cpp:745
 
SocketError SetOptionKeepAliveProbeCount(int probeCount)
Sets the amount of probes to be sent, if the KeepAlive SocketOption is set to true.
Definition: Socket.cpp:819
 
SocketError GetOptionNoDelay(bool &enabled) const
Checks if no-delay is enabled.
Definition: Socket.cpp:616
 
SocketError Bind(const IpAddress &ip4Address, int port)
Binds the socket to a specific address and port combination.
Definition: Socket.cpp:166
 
SocketError GetSocketOption(SocketOptionName optionName, void *optionValue, size_t *optionLength) const
Returns current value of queried socket option.
Definition: Socket.cpp:478
 
int ReceiveFrom(void *pBuffer, size_t length, IpAddress &ip4Adress, int &port, SocketError &error)
Like Receive but this method is to be used on sockets created with SocketType::Udp.
Definition: Socket.cpp:378
 
bool Select(SelectMode mode, Microseconds timeout, SocketError &error)
Checks if an i/o operation can be performed without blocking the calling thread.
Definition: Socket.cpp:409
 
~Socket(void)
Destructs this instance and frees all resouces.
Definition: Socket.cpp:50
 
SocketError GetOptionKeepAliveProbeCount(int &probeCount)
Gets the amount of probes to be sent, if the KeepAlive SocketOption is set to true....
Definition: Socket.cpp:838
 
SocketError GetOptionReuseAddress(bool &enabled) const
Checks if reuse-address is enabled.
Definition: Socket.cpp:513
 
SocketError GetOptionLinger(bool &enable, size_t &timeout)
Returns the current linger options. For more information see Arp::System::Commons::Net::Socket::SetOp...
Definition: Socket.cpp:678
 
SocketError Connect(const IpAddress &ip4Address, int port)
Tries to connect with a remote socket.
Definition: Socket.cpp:206
 
SocketError Bind2(const IpAddress &ip4Address, int &port)
Binds the socket to a specific address and port combination.
Definition: Socket.cpp:185
 
int GetRemotePort(void) const
If this socket is connected this method returns the port of the connection.
Definition: Socket.cpp:102
 
bool IsBlocking(void) const
Checks if the socket is in blocking mode.
Definition: Socket.cpp:74
 
SocketError SetOptionReuseAddress(bool enabled)
Enables/Disables the reuse-address option for this socket.
Definition: Socket.cpp:499
 
SocketError SetOptionKeepAlive(bool enabled)
Enables/Disables the keep-alive option for this socket.
Definition: Socket.cpp:535
 
SocketError Listen(size_t backlog)
Marks this socket as a passive socket that accepts incoming connection requests.
Definition: Socket.cpp:236
 
bool IsConnected(void) const
Checks if the socket was connected yet with a remote peer.
Definition: Socket.cpp:82
 
std::shared_ptr< Socket > Ptr
Contextual definition of pointer type.
Definition: Socket.hpp:122
 
SocketError SetOptionBroadcast(bool enabled)
Enables/Disables broadcast for this socket.
Definition: Socket.cpp:568
 
SocketError GetOptionUserTimeout(size_t &timeout_ms)
Gets the retransmission timeout of a socket. This only works on Linux. For more information see Arp::...
Definition: Socket.cpp:727
 
Interface to realize TLS Connection over TCP
Definition: TlsSocket2.hpp:32
 
Definition: TlsSocket.hpp:40
 
std::chrono::microseconds Microseconds
The Arp Microseconds unit class.
Definition: ChronoTypes.hpp:40
 
std::chrono::milliseconds Milliseconds
The Arp Milliseconds unit class.
Definition: ChronoTypes.hpp:43
 
PollMode
This enum is used to specifiy the poll mode of the <cref name="Socket::Poll" > operation.
Definition: PollMode.hpp:15
 
SelectMode
Modes for Select call to check different data channels.
Definition: SelectMode.hpp:14
 
SocketDomain
Supported communication domains, selecting the protocol for communication.
Definition: SocketDomain.hpp:14
 
SocketType
Enumeration of supported socket types.
Definition: SocketType.hpp:14
 
ShutdownMode
This enum is used to specifiy the shutdown mode of the <cref name="Socket::Shutdown(ShutdownMode)" > ...
Definition: ShutdownMode.hpp:15
 
SocketError
Possible error codes for socket operation results.
Definition: SocketError.hpp:15
 
SocketOptionName
Specifies socket options to be set by the application. Copied from Eclr Socket Adaption
Definition: SocketOptionName.hpp:17
 
SocketBlockingMode
Supported blocking modes.
Definition: Socket.hpp:28
 
@ Blocking
Socket is in blocking mode, i.e. the Send*, Receive* and Accept methods will block if no data is avai...
 
@ NoneBlocking
Socket is in non-blocking mode, i.e. the Send*, Receive* and Accept methods will not block if no data...
 
Root namespace for the PLCnext API