![]() |
F´ Flight Software - C/C++ Documentation
devel
A framework for building embedded system applications to NASA flight quality standards.
|
supports a task to read a given socket adaptation More...
#include <Drv/Ip/SocketReadTask.hpp>
Public Member Functions | |
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 | |
virtual IpSocket & | getSocketHandler ()=0 |
returns a reference to the socket handler More... | |
virtual Fw::Buffer | getBuffer ()=0 |
returns a buffer to fill with data More... | |
virtual void | sendBuffer (Fw::Buffer buffer, SocketIpStatus status)=0 |
sends a buffer to be filled with data More... | |
virtual void | connected ()=0 |
called when the IPv4 system has been connected More... | |
Static Protected Member Functions | |
static void | readTask (void *pointer) |
a task designed to read from the socket and output incoming data More... | |
Protected Attributes | |
Os::Task | m_task |
bool | m_reconnect |
Force reconnection. More... | |
bool | m_stop |
Stops the task when set to true. More... | |
supports a task to read a given socket adaptation
Defines an Os::Task task to read a socket and send out the data. This represents the task itself, which is capable of reading the data from the socket, sending the data out, and reopening the connection should a non-retry error occur.
Definition at line 27 of file SocketReadTask.hpp.
Drv::SocketReadTask::SocketReadTask | ( | ) |
constructs the socket read task
Definition at line 22 of file SocketReadTask.cpp.
|
virtual |
destructor of the socket read task
Definition at line 24 of file SocketReadTask.cpp.
void Drv::SocketReadTask::close | ( | ) |
close the socket communications
Typically stopping the socket read task will shutdown the connection. However, in cases where the read task will not be started, this function may be used to close the socket. This calls a full close
on the client socket.
Note: this just delegates to the handler
Definition at line 56 of file SocketReadTask.cpp.
|
protectedpure virtual |
called when the IPv4 system has been connected
Implemented in Drv::UdpComponentImpl, Drv::TcpServerComponentImpl, and Drv::TcpClientComponentImpl.
|
protectedpure virtual |
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.
Note: this must be implemented by the inheritor
Implemented in Drv::UdpComponentImpl, Drv::TcpServerComponentImpl, and Drv::TcpClientComponentImpl.
|
protectedpure virtual |
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.
Note: this must be implemented by the inheritor
Implemented in Drv::UdpComponentImpl, Drv::TcpServerComponentImpl, and Drv::TcpClientComponentImpl.
Os::Task::TaskStatus Drv::SocketReadTask::joinSocketTask | ( | void ** | value_ptr | ) |
joins to the stopping read task to wait for it to close
Called to join with the read socket task. This will block and return after the task has been stopped with a call to the stopSocketTask method.
value_ptr | a pointer to fill with data. Passed to the Os::Task::join call. NULL to ignore. |
Definition at line 60 of file SocketReadTask.cpp.
SocketIpStatus Drv::SocketReadTask::open | ( | ) |
open the socket for communications
Typically the socket read task will open the connection and keep it open. However, in cases where the read task will not be started, this function may be used to open the socket.
Note: this just delegates to the handler
Definition at line 43 of file SocketReadTask.cpp.
|
staticprotected |
a task designed to read from the socket and output incoming data
pointer | pointer to "this" component |
Definition at line 69 of file SocketReadTask.cpp.
|
protectedpure virtual |
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.
Note: this must be implemented by the inheritor
Implemented in Drv::UdpComponentImpl, Drv::TcpServerComponentImpl, and Drv::TcpClientComponentImpl.
void Drv::SocketReadTask::shutdown | ( | ) |
shutdown the socket communications
Typically stopping the socket read task will shutdown the connection. However, in cases where the read task will not be started, this function may be used to close the socket. This calls a full shutdown
on the client socket.
Note: this just delegates to the handler
Definition at line 52 of file SocketReadTask.cpp.
void Drv::SocketReadTask::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
Starts up the socket reading task and opens socket. This should be called before send calls are expected to work. Will connect to the previously configured port and host. priority, stack, and cpuAffinity are provided to the Os::Task::start call.
name | name of the task |
reconnect | automatically reconnect socket when closed. Default: true. |
priority | priority of the started task. See: Os::Task::start. Default: TASK_DEFAULT, not prioritized |
stack | stack size provided to the task. See: Os::Task::start. Default: TASK_DEFAULT, posix threads default |
cpuAffinity | cpu affinity provided to task. See: Os::Task::start. Default: TASK_DEFAULT, don't care |
Definition at line 26 of file SocketReadTask.cpp.
SocketIpStatus Drv::SocketReadTask::startup | ( | ) |
startup the socket for communications
Status of the socket handler.
Note: this just delegates to the handler
Definition at line 39 of file SocketReadTask.cpp.
void Drv::SocketReadTask::stopSocketTask | ( | ) |
stop the socket read task and close the associated socket.
Called to stop the socket read task. It is an error to call this before the thread has been started using the startSocketTask call. This will stop the read task and close the client socket.
Definition at line 64 of file SocketReadTask.cpp.
|
protected |
Force reconnection.
Definition at line 172 of file SocketReadTask.hpp.
|
protected |
Stops the task when set to true.
Definition at line 173 of file SocketReadTask.hpp.
|
protected |
Definition at line 171 of file SocketReadTask.hpp.