F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
SocketReadTask.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title SocketReadTask.hpp
3// \author mstarch
4// \brief hpp file for SocketReadTask implementation class
5//
6// \copyright
7// Copyright 2009-2020, by the California Institute of Technology.
8// ALL RIGHTS RESERVED. United States Government Sponsorship
9// acknowledged.
10//
11// ======================================================================
12#ifndef DRV_SOCKETREADTASK_HPP
13#define DRV_SOCKETREADTASK_HPP
14
15#include <Fw/Buffer/Buffer.hpp>
16#include <Drv/Ip/IpSocket.hpp>
17#include <Os/Task.hpp>
18
19namespace Drv {
28 public:
33
37 virtual ~SocketReadTask();
38
52 void startSocketTask(const Fw::StringBase &name,
53 const bool reconnect = true,
56 const NATIVE_UINT_TYPE cpuAffinity = Os::Task::TASK_DEFAULT);
57
69
78 void close();
79
86 void stopSocketTask();
87
96 Os::Task::TaskStatus joinSocketTask(void** value_ptr);
97
98
99 PROTECTED:
111
122 virtual Fw::Buffer getBuffer() = 0;
123
134 virtual void sendBuffer(Fw::Buffer buffer, SocketIpStatus status) = 0;
135
139 virtual void connected() = 0;
140
146 static void readTask(void* pointer);
147
150 bool m_stop;
151
152};
153};
154#endif // DRV_SOCKETREADTASK_HPP
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52
Helper base-class for setting up Berkley sockets.
Definition IpSocket.hpp:45
supports a task to read a given socket adaptation
virtual void connected()=0
called when the IPv4 system has been connected
void stopSocketTask()
stop the socket read task and close the associated socket.
virtual IpSocket & getSocketHandler()=0
returns a reference to the socket handler
bool m_stop
Stops the task when set to true.
virtual Fw::Buffer getBuffer()=0
returns a buffer to fill with data
void close()
close the socket communications
static void readTask(void *pointer)
a task designed to read from the socket and output incoming data
virtual ~SocketReadTask()
destructor of the socket read task
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
bool m_reconnect
Force reconnection.
SocketIpStatus open()
open the socket for communications
virtual void sendBuffer(Fw::Buffer buffer, SocketIpStatus status)=0
sends a buffer to be filled with data
SocketReadTask()
constructs the socket read task
Os::Task::TaskStatus joinSocketTask(void **value_ptr)
joins to the stopping read task to wait for it to close
forward declaration
Definition Task.hpp:15
static const NATIVE_UINT_TYPE TASK_DEFAULT
Definition Task.hpp:17
TaskStatus
Definition Task.hpp:18
SocketIpStatus
Status enumeration for socket return values.
Definition IpSocket.hpp:23