F´ Flight Software - C/C++ Documentation
devel
A framework for building embedded system applications to NASA flight quality standards.
|
Helper for setting up Tcp using Berkeley sockets as a client. More...
#include <Drv/Ip/TcpClientSocket.hpp>
Public Member Functions | |
TcpClientSocket () | |
Constructor for client socket tcp implementation. More... | |
Public Member Functions inherited from Drv::IpSocket | |
IpSocket () | |
virtual | ~IpSocket () |
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 More... | |
SocketIpStatus | open (SocketDescriptor &socketDescriptor) |
open the IP socket for communications More... | |
SocketIpStatus | send (const SocketDescriptor &socketDescriptor, const U8 *const data, const U32 size) |
send data out the IP socket from the given buffer More... | |
SocketIpStatus | recv (const SocketDescriptor &fd, U8 *const data, U32 &size) |
receive data from the IP socket from the given buffer More... | |
void | close (const SocketDescriptor &socketDescriptor) |
closes the socket More... | |
void | shutdown (const SocketDescriptor &socketDescriptor) |
shutdown the socket More... | |
Protected Member Functions | |
bool | isValidPort (U16 port) override |
Check if the given port is valid for the socket. More... | |
SocketIpStatus | openProtocol (SocketDescriptor &socketDescriptor) override |
Tcp specific implementation for opening a client socket. More... | |
I32 | sendProtocol (const SocketDescriptor &socketDescriptor, const U8 *const data, const U32 size) override |
Protocol specific implementation of send. Called directly with retry from send. More... | |
I32 | recvProtocol (const SocketDescriptor &socketDescriptor, U8 *const data, const U32 size) override |
Protocol specific implementation of recv. Called directly with error handling from recv. More... | |
Protected Member Functions inherited from Drv::IpSocket | |
SocketIpStatus | setupTimeouts (PlatformIntType socketFd) |
setup the socket timeout properties of the opened outgoing socket More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from Drv::IpSocket | |
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. More... | |
Protected Attributes inherited from Drv::IpSocket | |
U32 | m_timeoutSeconds |
U32 | m_timeoutMicroseconds |
U16 | m_port |
IP address port used. More... | |
char | m_hostname [SOCKET_MAX_HOSTNAME_SIZE] |
Hostname to supply. More... | |
Helper for setting up Tcp using Berkeley sockets as a client.
Certain IP headers have conflicting definitions with the m_data member of various types in fprime. TcpClientSocket separates the ip setup from the incoming Fw::Buffer in the primary component class preventing this collision.
Definition at line 26 of file TcpClientSocket.hpp.
Drv::TcpClientSocket::TcpClientSocket | ( | ) |
Constructor for client socket tcp implementation.
Definition at line 43 of file TcpClientSocket.cpp.
|
overrideprotectedvirtual |
Check if the given port is valid for the socket.
Some ports should be allowed for sockets and disabled on others (e.g. port 0 is a valid tcp server port but not a client. This will check the port and return "true" if the port is valid, or "false" otherwise. In the tcp client implementation, all ports are considered valid except for "0".
port | port to check |
Reimplemented from Drv::IpSocket.
Definition at line 45 of file TcpClientSocket.cpp.
|
overrideprotectedvirtual |
Tcp specific implementation for opening a client socket.
socketDescriptor | (output) descriptor opened. Only valid on SOCK_SUCCESS. Otherwise will be invalid |
Implements Drv::IpSocket.
Definition at line 50 of file TcpClientSocket.cpp.
|
overrideprotectedvirtual |
Protocol specific implementation of recv. Called directly with error handling from recv.
socketDescriptor | descriptor to recv from |
data | data pointer to fill |
size | size of data buffer |
Implements Drv::IpSocket.
Definition at line 93 of file TcpClientSocket.cpp.
|
overrideprotectedvirtual |
Protocol specific implementation of send. Called directly with retry from send.
socketDescriptor | descriptor to send to |
data | data to send |
size | size of data to send |
Implements Drv::IpSocket.
Definition at line 89 of file TcpClientSocket.cpp.