12 #ifndef DRV_SocketComponentHelper_HPP 13 #define DRV_SocketComponentHelper_HPP 237 static void readTask(
void* pointer);
299 #endif // DRV_SocketComponentHelper_HPP SocketComponentHelper()
constructs the socket read task
bool m_reopen
Force reopen on disconnect.
static constexpr FwSizeType TASK_DEFAULT
bool m_stop
Stops the task when set to true.
void shutdown()
shutdown the socket communications
PlatformSizeType FwSizeType
bool isOpened()
check if IP socket has previously been opened
SocketIpStatus send(const U8 *const data, const FwSizeType size)
send data to the IP socket from the given buffer
Fw::TimeInterval m_reconnectCheckInterval
void setAutomaticOpen(bool auto_open)
set socket to automatically open connections when true, or not when false
SocketIpStatus waitForReconnect(Fw::TimeInterval timeout=Fw::TimeInterval(1, 0))
wait method for a task to wait for a reconnect request to complete
SocketIpStatus recv(U8 *data, FwSizeType &size)
receive data from the IP socket from the given buffer
Os::Task::Status joinReconnect()
static void reconnectTask(void *pointer)
a task designed for socket reconnection
virtual Fw::Buffer getBuffer()=0
returns a buffer to fill with data
void requestReconnect()
signal to reconnect task that a reconnect is needed
static constexpr FwTaskPriorityType TASK_PRIORITY_DEFAULT
supports a task to read a given socket adaptation
OpenState m_open
Have we successfully opened.
void start(const Fw::StringBase &name, const FwTaskPriorityType priority=Os::Task::TASK_PRIORITY_DEFAULT, const Os::Task::ParamType stack=Os::Task::TASK_DEFAULT, const Os::Task::ParamType cpuAffinity=Os::Task::TASK_DEFAULT, const FwTaskPriorityType priorityReconnect=Os::Task::TASK_PRIORITY_DEFAULT, const Os::Task::ParamType stackReconnect=Os::Task::TASK_DEFAULT, const Os::Task::ParamType cpuAffinityReconnect=Os::Task::TASK_DEFAULT)
start the socket read task to start producing data
Os::Mutex m_reconnectLock
bool getAutomaticOpen()
get socket automatically open connections status
ReconnectState m_reconnectState
void close()
close the socket communications
virtual void connected()=0
called when the IPv4 system has been connected
PlatformTaskPriorityType FwTaskPriorityType
The type of task priorities used.
virtual IpSocket & getSocketHandler()=0
returns a reference to the socket handler
uint8_t U8
8-bit unsigned integer
FwSizeType ParamType
backwards-compatible parameter type
virtual ~SocketComponentHelper()
destructor of the socket read task
static void readTask(void *pointer)
a task designed to read from the socket and output incoming data
void stop()
stop the socket read task and close the associated socket.
Fw::TimeInterval m_reconnectWaitInterval
virtual void reconnectLoop()
reconnect TCP socket
virtual void readLoop()
receive off the TCP socket
SocketDescriptor m_descriptor
Os::Task::Status join()
joins to the stopping read task to wait for it to close
SocketIpStatus
Status enumeration for socket return values.
SocketIpStatus open()
open the socket for communications
Helper base-class for setting up Berkeley sockets.
virtual void sendBuffer(Fw::Buffer buffer, SocketIpStatus status)=0
sends a buffer to be filled with data
bool running()
is the read loop running