![]() |
F´ Flight Software - C/C++ Documentation
devel
A framework for building embedded system applications to NASA flight quality standards.
|
#include <Drv/TcpServer/TcpServerComponentImpl.hpp>
Public Member Functions | |
TcpServerComponentImpl (const char *const compName) | |
construct the TcpClient component. More... | |
~TcpServerComponentImpl () | |
Destroy the component. More... | |
SocketIpStatus | configure (const char *hostname, const U16 port, const U32 send_timeout_seconds=SOCKET_SEND_TIMEOUT_SECONDS, const U32 send_timeout_microseconds=SOCKET_SEND_TIMEOUT_MICROSECONDS) |
Configures the TcpClient settings but does not open the connection. More... | |
![]() | |
void | init (NATIVE_INT_TYPE instance=0) |
Initialize TcpServerComponentBase object. More... | |
Drv::InputByteStreamSendPort * | get_send_InputPort (NATIVE_INT_TYPE portNum) |
void | set_allocate_OutputPort (NATIVE_INT_TYPE portNum, Fw::InputBufferGetPort *port) |
Connect port to allocate[portNum]. More... | |
void | set_deallocate_OutputPort (NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port) |
Connect port to deallocate[portNum]. More... | |
void | set_ready_OutputPort (NATIVE_INT_TYPE portNum, Drv::InputByteStreamReadyPort *port) |
Connect port to ready[portNum]. More... | |
void | set_recv_OutputPort (NATIVE_INT_TYPE portNum, Drv::InputByteStreamRecvPort *port) |
Connect port to recv[portNum]. More... | |
![]() | |
void | setIdBase (const U32) |
Set the ID base. More... | |
U32 | getIdBase () const |
![]() | |
SocketReadTask () | |
constructs the socket read task More... | |
virtual | ~SocketReadTask () |
destructor of the socket read task More... | |
void | startSocketTask (const Fw::StringBase &name, const bool reconnect=true, const NATIVE_UINT_TYPE priority=Os::Task::TASK_DEFAULT, const NATIVE_UINT_TYPE stack=Os::Task::TASK_DEFAULT, const NATIVE_UINT_TYPE cpuAffinity=Os::Task::TASK_DEFAULT) |
start the socket read task to start producing data More... | |
SocketIpStatus | startup () |
startup the socket for communications More... | |
SocketIpStatus | open () |
open the socket for communications More... | |
void | close () |
close the socket communications More... | |
void | shutdown () |
shutdown the socket communications More... | |
void | stopSocketTask () |
stop the socket read task and close the associated socket. More... | |
Os::Task::TaskStatus | joinSocketTask (void **value_ptr) |
joins to the stopping read task to wait for it to close More... | |
Protected Member Functions | |
IpSocket & | getSocketHandler () |
returns a reference to the socket handler More... | |
Fw::Buffer | getBuffer () |
returns a buffer to fill with data More... | |
void | sendBuffer (Fw::Buffer buffer, SocketIpStatus status) |
sends a buffer to be filled with data More... | |
void | connected () |
called when the IPv4 system has been connected More... | |
![]() | |
TcpServerComponentBase (const char *compName="") | |
Construct TcpServerComponentBase object. More... | |
virtual | ~TcpServerComponentBase () |
Destroy TcpServerComponentBase object. More... | |
NATIVE_INT_TYPE | getNum_send_InputPorts () const |
NATIVE_INT_TYPE | getNum_allocate_OutputPorts () const |
NATIVE_INT_TYPE | getNum_deallocate_OutputPorts () const |
NATIVE_INT_TYPE | getNum_ready_OutputPorts () const |
NATIVE_INT_TYPE | getNum_recv_OutputPorts () const |
bool | isConnected_allocate_OutputPort (NATIVE_INT_TYPE portNum) |
bool | isConnected_deallocate_OutputPort (NATIVE_INT_TYPE portNum) |
bool | isConnected_ready_OutputPort (NATIVE_INT_TYPE portNum) |
bool | isConnected_recv_OutputPort (NATIVE_INT_TYPE portNum) |
Drv::SendStatus | send_handlerBase (NATIVE_INT_TYPE portNum, Fw::Buffer &sendBuffer) |
Handler base-class function for input port send. More... | |
Fw::Buffer | allocate_out (NATIVE_INT_TYPE portNum, U32 size) |
Invoke output port allocate. More... | |
void | deallocate_out (NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer) |
Invoke output port deallocate. More... | |
void | ready_out (NATIVE_INT_TYPE portNum) |
Invoke output port ready. More... | |
void | recv_out (NATIVE_INT_TYPE portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus) |
Invoke output port recv. More... | |
virtual void | lock () |
Lock the guarded mutex. More... | |
virtual void | unLock () |
Unlock the guarded mutex. More... | |
![]() | |
PassiveComponentBase (const char *name) | |
Named constructor. More... | |
virtual | ~PassiveComponentBase () |
Destructor. More... | |
void | init (NATIVE_INT_TYPE instance) |
Initialization function. More... | |
NATIVE_INT_TYPE | getInstance () const |
![]() | |
ObjBase (const char *name) | |
ObjBase constructor. More... | |
virtual | ~ObjBase () |
Destructor. More... | |
void | init () |
Object initializer. More... | |
Additional Inherited Members | |
![]() | |
enum | { NUM_SEND_INPUT_PORTS = 1 } |
Enumerations for numbers of typed input ports. More... | |
enum | { NUM_ALLOCATE_OUTPUT_PORTS = 1 , NUM_DEALLOCATE_OUTPUT_PORTS = 1 , NUM_READY_OUTPUT_PORTS = 1 , NUM_RECV_OUTPUT_PORTS = 1 } |
Enumerations for numbers of typed output ports. More... | |
![]() | |
static void | readTask (void *pointer) |
a task designed to read from the socket and output incoming data More... | |
![]() | |
Os::Task | m_task |
bool | m_reconnect |
Force reconnection. More... | |
bool | m_stop |
Stops the task when set to true. More... | |
Definition at line 24 of file TcpServerComponentImpl.hpp.
Drv::TcpServerComponentImpl::TcpServerComponentImpl | ( | const char *const | compName | ) |
construct the TcpClient component.
compName | name of this component |
Definition at line 23 of file TcpServerComponentImpl.cpp.
Drv::TcpServerComponentImpl::~TcpServerComponentImpl | ( | ) |
Destroy the component.
Definition at line 34 of file TcpServerComponentImpl.cpp.
SocketIpStatus Drv::TcpServerComponentImpl::configure | ( | const char * | hostname, |
const U16 | port, | ||
const U32 | send_timeout_seconds = SOCKET_SEND_TIMEOUT_SECONDS , |
||
const U32 | send_timeout_microseconds = SOCKET_SEND_TIMEOUT_MICROSECONDS |
||
) |
Configures the TcpClient settings but does not open the connection.
The TcpClientComponent needs to connect to a remote TCP server. This call configures the hostname, port and send timeouts for that socket connection. This call should be performed on system startup before recv or send are called. Note: hostname must be a dot-notation IP address of the form "x.x.x.x". DNS translation is left up to the user.
hostname | ip address of remote tcp server in the form x.x.x.x |
port | port of remote tcp server |
send_timeout_seconds | send timeout seconds component. Defaults to: SOCKET_TIMEOUT_SECONDS |
send_timeout_microseconds | send timeout microseconds component. Must be less than 1000000. Defaults to: SOCKET_TIMEOUT_MICROSECONDS |
Definition at line 27 of file TcpServerComponentImpl.cpp.
|
protectedvirtual |
called when the IPv4 system has been connected
Implements Drv::SocketReadTask.
Definition at line 53 of file TcpServerComponentImpl.cpp.
|
protectedvirtual |
returns a buffer to fill with data
Gets a reference to a buffer to fill with data. This allows the component to determine how to provide a buffer and the socket read task just fills said buffer.
Implements Drv::SocketReadTask.
Definition at line 44 of file TcpServerComponentImpl.cpp.
|
protectedvirtual |
returns a reference to the socket handler
Gets a reference to the current socket handler in order to operate generically on the IpSocket instance. Used for receive, and open calls. This socket handler will be a TcpClient.
Implements Drv::SocketReadTask.
Definition at line 40 of file TcpServerComponentImpl.cpp.
|
protectedvirtual |
sends a buffer to be filled with data
Sends the buffer gotten by getBuffer that has now been filled with data. This is used to delegate to the component how to send back the buffer. Ignores buffers with error status error.
Implements Drv::SocketReadTask.
Definition at line 48 of file TcpServerComponentImpl.cpp.