F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
SocketHelper.hpp
Go to the documentation of this file.
1 /*
2  * SocketHelper.hpp
3  *
4  * Created on: May 28, 2020
5  * Author: tcanham
6  */
7 
8 #ifndef DRV_SOCKETIPDRIVER_SOCKETHELPER_HPP_
9 #define DRV_SOCKETIPDRIVER_SOCKETHELPER_HPP_
10 
11 #include <Fw/Types/BasicTypes.hpp>
13 #include <SocketIpDriverCfg.hpp>
14 
15 namespace Drv {
16 
17  // forward declaration for pointer
18  struct SocketState;
19 
20  class SocketHelper {
21  public:
22 
23  SocketHelper();
24  virtual ~SocketHelper();
26  const char* hostname,
27  const U16 port,
28  const bool send_udp,
29  const U32 timeout_seconds,
30  const U32 timeout_microseconds
31  );
32  bool isOpened(void);
33  SocketIpStatus open(void);
34  void send(BYTE* data, const U32 size); //Forwards to sendto, which on some OSes requires a non-const data pointer
35  SocketIpStatus recv(BYTE* data, I32 &size);
36  void close(void);
37 
39 
40  SocketIpStatus openProtocol(NATIVE_INT_TYPE protocol, bool isInput = true);
41 
45  bool m_sendUdp;
49  U16 m_port;
50 
51  };
52 
53 }
54 
55 #endif /* DRV_SOCKETIPDRIVER_SOCKETHELPER_HPP_ */
Drv::SocketHelper
Definition: SocketHelper.hpp:20
Drv::SocketHelper::m_timeoutSeconds
U32 m_timeoutSeconds
Definition: SocketHelper.hpp:46
PRIVATE
#define PRIVATE
overridable private for unit testing
Definition: BasicTypes.hpp:118
Drv::SocketHelper::open
SocketIpStatus open(void)
Definition: SocketHelper.cpp:98
Drv::SocketHelper::m_socketInFd
NATIVE_INT_TYPE m_socketInFd
Input file descriptor, always TCP.
Definition: SocketHelper.hpp:43
Drv::SocketHelper::isInput
PRIVATE bool isInput
Definition: SocketHelper.hpp:40
Drv
Definition: BlockDriverComponentAc.cpp:22
Drv::SocketHelper::send
void send(BYTE *data, const U32 size)
Definition: SocketHelper.cpp:200
SocketIpDriverTypes.hpp
Drv::SocketHelper::m_socketOutFd
NATIVE_INT_TYPE m_socketOutFd
Output file descriptor, always UDP.
Definition: SocketHelper.hpp:44
Drv::SocketHelper::m_port
U16 m_port
IP address port used.
Definition: SocketHelper.hpp:49
Drv::SocketHelper::m_hostname
char m_hostname[MAX_HOSTNAME_SIZE]
Hostname to supply.
Definition: SocketHelper.hpp:48
BYTE
U8 BYTE
byte type
Definition: BasicTypes.hpp:77
Drv::SocketHelper::recv
SocketIpStatus recv(BYTE *data, I32 &size)
Definition: SocketHelper.cpp:243
Drv::SocketState
Definition: SocketHelper.cpp:50
MAX_HOSTNAME_SIZE
@ MAX_HOSTNAME_SIZE
Definition: SocketIpDriverCfg.hpp:28
Drv::SocketHelper::m_timeoutMicroseconds
U32 m_timeoutMicroseconds
Definition: SocketHelper.hpp:47
SocketIpDriverCfg.hpp
Drv::SocketHelper::configure
SocketIpStatus configure(const char *hostname, const U16 port, const bool send_udp, const U32 timeout_seconds, const U32 timeout_microseconds)
Definition: SocketHelper.cpp:68
Drv::SocketHelper::isOpened
bool isOpened(void)
Definition: SocketHelper.cpp:86
Drv::SocketIpStatus
SocketIpStatus
Definition: SocketIpDriverTypes.hpp:22
Drv::SocketHelper::close
void close(void)
Definition: SocketHelper.cpp:90
Drv::SocketHelper::m_state
SocketState * m_state
Definition: SocketHelper.hpp:42
Drv::SocketHelper::SocketHelper
SocketHelper()
Definition: SocketHelper.cpp:54
Drv::SocketHelper::m_sendUdp
bool m_sendUdp
Definition: SocketHelper.hpp:45
BasicTypes.hpp
Declares ISF basic types.
Drv::SocketHelper::~SocketHelper
virtual ~SocketHelper()
Definition: SocketHelper.cpp:64
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29