12#ifndef DRV_IP_IPHELPER_HPP_
13#define DRV_IP_IPHELPER_HPP_
68 const U32 send_timeout_microseconds);
PlatformIntType NATIVE_INT_TYPE
uint8_t U8
8-bit unsigned integer
C++-compatible configuration header for fprime configuration.
@ SOCKET_MAX_HOSTNAME_SIZE
Helper base-class for setting up Berkley sockets.
virtual I32 sendProtocol(const U8 *const data, const U32 size)=0
Protocol specific implementation of send. Called directly with retry from send.
void close()
closes the socket
U16 m_port
IP address port used.
virtual I32 recvProtocol(U8 *const data, const U32 size)=0
Protocol specific implementation of recv. Called directly with error handling from recv.
bool isOpened()
check if IP socket has previously been opened
char m_hostname[SOCKET_MAX_HOSTNAME_SIZE]
Hostname to supply.
SocketIpStatus recv(U8 *const data, I32 &size)
receive data from the IP socket from the given buffer
bool m_open
Have we successfully opened.
SocketIpStatus send(const U8 *const data, const U32 size)
send data out the IP socket from the given buffer
SocketIpStatus configure(const char *hostname, const U16 port, const U32 send_timeout_seconds, const U32 send_timeout_microseconds)
configure the ip socket with host and transmission timeouts
U32 m_timeoutMicroseconds
static SocketIpStatus addressToIp4(const char *address, void *ip4)
converts a given address in dot form x.x.x.x to an ip address. ONLY works for IPv4.
SocketIpStatus setupTimeouts(NATIVE_INT_TYPE socketFd)
setup the socket timeout properties of the opened outgoing socket
virtual SocketIpStatus openProtocol(NATIVE_INT_TYPE &fd)=0
Protocol specific open implementation, called from open.
SocketIpStatus open()
open the IP socket for communications
SocketIpStatus
Status enumeration for socket return values.
@ SOCK_INVALID_IP_ADDRESS
Bad IP address supplied.
@ SOCK_FAILED_TO_GET_HOST_IP
Host IP lookup failed.
@ SOCK_FAILED_TO_ACCEPT
Failed to accept connection.
@ SOCK_SUCCESS
Socket operation successful.
@ SOCK_FAILED_TO_BIND
Failed to bind to socket.
@ SOCK_DISCONNECTED
Failed to read socket with disconnect.
@ SOCK_READ_ERROR
Failed to read socket.
@ SOCK_FAILED_TO_SET_SOCKET_OPTIONS
Failed to configure socket.
@ SOCK_FAILED_TO_GET_SOCKET
Socket open failed.
@ SOCK_FAILED_TO_LISTEN
Failed to listen on socket.
@ SOCK_INTERRUPTED_TRY_AGAIN
Interrupted status for retries.
@ SOCK_FAILED_TO_CONNECT
Failed to connect socket.
@ SOCK_SEND_ERROR
Failed to send after configured retries.