12 #ifndef DRV_IP_IPHELPER_HPP_
13 #define DRV_IP_IPHELPER_HPP_
78 const U32 send_timeout_microseconds);
uint8_t U8
8-bit unsigned integer
int PlatformIntType
DefaultTypes.hpp provides fallback defaults for the platform types.
C++-compatible configuration header for fprime configuration.
@ SOCKET_MAX_HOSTNAME_SIZE
Helper base-class for setting up Berkeley sockets.
U16 m_port
IP address port used.
virtual SocketIpStatus openProtocol(SocketDescriptor &fd)=0
Protocol specific open implementation, called from open.
char m_hostname[SOCKET_MAX_HOSTNAME_SIZE]
Hostname to supply.
SocketIpStatus setupTimeouts(PlatformIntType socketFd)
setup the socket timeout properties of the opened outgoing socket
SocketIpStatus open(SocketDescriptor &socketDescriptor)
open the IP socket for communications
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
virtual I32 sendProtocol(const SocketDescriptor &socketDescriptor, const U8 *const data, const U32 size)=0
Protocol specific implementation of send. Called directly with retry from send.
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.
virtual bool isValidPort(U16 port)
Check if the given port is valid for the socket.
virtual I32 recvProtocol(const SocketDescriptor &socketDescriptor, U8 *const data, const U32 size)=0
Protocol specific implementation of recv. Called directly with error handling from recv.
SocketIpStatus send(const SocketDescriptor &socketDescriptor, const U8 *const data, const U32 size)
send data out the IP socket from the given buffer
void shutdown(const SocketDescriptor &socketDescriptor)
shutdown the socket
SocketIpStatus recv(const SocketDescriptor &fd, U8 *const data, U32 &size)
receive data from the IP socket from the given buffer
void close(const SocketDescriptor &socketDescriptor)
closes the socket
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_ANOTHER_THREAD_OPENING
Another thread is opening.
@ 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_FAILED_TO_READ_BACK_PORT
Failed to read back port from connection.
@ 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.
@ SOCK_NO_DATA_AVAILABLE
No data available or read operation would block.
@ SOCK_NOT_STARTED
Socket has not been started.
PlatformIntType serverFd
Used for server sockets to track the listening file descriptor.
PlatformIntType fd
Used for all sockets to track the communication file descriptor.