F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
Drv::TcpServerComponentImpl Class Reference

#include <Drv/TcpServer/TcpServerComponentImpl.hpp>

Inheritance diagram for Drv::TcpServerComponentImpl:
Drv::TcpServerComponentBase Drv::SocketReadTask Fw::PassiveComponentBase Fw::ObjBase

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...
 
U16 getListenPort ()
 get the port being listened on More...
 
- Public Member Functions inherited from Drv::TcpServerComponentBase
void init (FwEnumStoreType instance=0)
 Initialize TcpServerComponentBase object. More...
 
Drv::InputByteStreamSendPortget_send_InputPort (FwIndexType portNum)
 
void set_allocate_OutputPort (FwIndexType portNum, Fw::InputBufferGetPort *port)
 Connect port to allocate[portNum]. More...
 
void set_deallocate_OutputPort (FwIndexType portNum, Fw::InputBufferSendPort *port)
 Connect port to deallocate[portNum]. More...
 
void set_ready_OutputPort (FwIndexType portNum, Drv::InputByteStreamReadyPort *port)
 Connect port to ready[portNum]. More...
 
void set_recv_OutputPort (FwIndexType portNum, Drv::InputByteStreamRecvPort *port)
 Connect port to recv[portNum]. More...
 
- Public Member Functions inherited from Fw::PassiveComponentBase
void setIdBase (const U32)
 Set the ID base. More...
 
U32 getIdBase () const
 
- Public Member Functions inherited from Drv::SocketReadTask
 SocketReadTask ()
 constructs the socket read task More...
 
virtual ~SocketReadTask ()
 destructor of the socket read task More...
 
void start (const Fw::StringBase &name, const bool reconnect=true, const Os::Task::ParamType priority=Os::Task::TASK_DEFAULT, const Os::Task::ParamType stack=Os::Task::TASK_DEFAULT, const Os::Task::ParamType 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 stop ()
 stop the socket read task and close the associated socket. More...
 
Os::Task::Status join ()
 joins to the stopping read task to wait for it to close More...
 

Protected Member Functions

IpSocketgetSocketHandler ()
 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...
 
- Protected Member Functions inherited from Drv::TcpServerComponentBase
 TcpServerComponentBase (const char *compName="")
 Construct TcpServerComponentBase object. More...
 
virtual ~TcpServerComponentBase ()
 Destroy TcpServerComponentBase object. More...
 
FwIndexType getNum_send_InputPorts () const
 
FwIndexType getNum_allocate_OutputPorts () const
 
FwIndexType getNum_deallocate_OutputPorts () const
 
FwIndexType getNum_ready_OutputPorts () const
 
FwIndexType getNum_recv_OutputPorts () const
 
bool isConnected_allocate_OutputPort (FwIndexType portNum)
 
bool isConnected_deallocate_OutputPort (FwIndexType portNum)
 
bool isConnected_ready_OutputPort (FwIndexType portNum)
 
bool isConnected_recv_OutputPort (FwIndexType portNum)
 
Drv::SendStatus send_handlerBase (FwIndexType portNum, Fw::Buffer &sendBuffer)
 Handler base-class function for input port send. More...
 
Fw::Buffer allocate_out (FwIndexType portNum, U32 size)
 Invoke output port allocate. More...
 
void deallocate_out (FwIndexType portNum, Fw::Buffer &fwBuffer)
 Invoke output port deallocate. More...
 
void ready_out (FwIndexType portNum)
 Invoke output port ready. More...
 
void recv_out (FwIndexType 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...
 
- Protected Member Functions inherited from Fw::PassiveComponentBase
 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
 
- Protected Member Functions inherited from Fw::ObjBase
 ObjBase (const char *name)
 ObjBase constructor. More...
 
virtual ~ObjBase ()
 Destructor. More...
 
void init ()
 Object initializer. More...
 

Additional Inherited Members

- Protected Types inherited from Drv::TcpServerComponentBase
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 Protected Member Functions inherited from Drv::SocketReadTask
static void readTask (void *pointer)
 a task designed to read from the socket and output incoming data More...
 
- Protected Attributes inherited from Drv::SocketReadTask
Os::Task m_task
 
bool m_reconnect
 Force reconnection. More...
 
bool m_stop
 Stops the task when set to true. More...
 

Detailed Description

Definition at line 24 of file TcpServerComponentImpl.hpp.

Constructor & Destructor Documentation

◆ TcpServerComponentImpl()

Drv::TcpServerComponentImpl::TcpServerComponentImpl ( const char *const  compName)

construct the TcpClient component.

Parameters
compNamename of this component

Definition at line 23 of file TcpServerComponentImpl.cpp.

◆ ~TcpServerComponentImpl()

Drv::TcpServerComponentImpl::~TcpServerComponentImpl ( )

Destroy the component.

Definition at line 34 of file TcpServerComponentImpl.cpp.

Member Function Documentation

◆ configure()

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.

Parameters
hostnameip address of remote tcp server in the form x.x.x.x
portport of remote tcp server
send_timeout_secondssend timeout seconds component. Defaults to: SOCKET_TIMEOUT_SECONDS
send_timeout_microsecondssend timeout microseconds component. Must be less than 1000000. Defaults to: SOCKET_TIMEOUT_MICROSECONDS
Returns
status of the configure

Definition at line 27 of file TcpServerComponentImpl.cpp.

◆ connected()

void Drv::TcpServerComponentImpl::connected ( )
protectedvirtual

called when the IPv4 system has been connected

Implements Drv::SocketReadTask.

Definition at line 57 of file TcpServerComponentImpl.cpp.

◆ getBuffer()

Fw::Buffer Drv::TcpServerComponentImpl::getBuffer ( )
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.

Returns
Fw::Buffer to fill with data

Implements Drv::SocketReadTask.

Definition at line 48 of file TcpServerComponentImpl.cpp.

◆ getListenPort()

U16 Drv::TcpServerComponentImpl::getListenPort ( )

get the port being listened on

Most useful when listen was configured to use port "0", this will return the port used for listening after a port has been determined. Will return 0 if the connection has not been setup.

Returns
receive port

Definition at line 40 of file TcpServerComponentImpl.cpp.

◆ getSocketHandler()

IpSocket & Drv::TcpServerComponentImpl::getSocketHandler ( )
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.

Returns
IpSocket reference

Implements Drv::SocketReadTask.

Definition at line 44 of file TcpServerComponentImpl.cpp.

◆ sendBuffer()

void Drv::TcpServerComponentImpl::sendBuffer ( Fw::Buffer  buffer,
SocketIpStatus  status 
)
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.

Returns
Fw::Buffer filled with data to send out

Implements Drv::SocketReadTask.

Definition at line 52 of file TcpServerComponentImpl.cpp.


The documentation for this class was generated from the following files: