F´ Flight Software - C/C++ Documentation  NASA-v2.0.1
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(U8* data, const U32 size); //Forwards to sendto, which on some OSes requires a non-const data pointer
35  SocketIpStatus recv(U8* data, I32 &size);
36  void close(void);
37 
38  PRIVATE:
39 
40  SocketIpStatus openProtocol(NATIVE_INT_TYPE protocol, bool isInput = true);
41 
42  SocketState* m_state;
43  NATIVE_INT_TYPE m_socketInFd;
44  NATIVE_INT_TYPE m_socketOutFd;
45  bool m_sendUdp;
46  U32 m_timeoutSeconds;
47  U32 m_timeoutMicroseconds;
48  char m_hostname[MAX_HOSTNAME_SIZE];
49  U16 m_port;
50 
51  };
52 
53 }
54 
55 #endif /* DRV_SOCKETIPDRIVER_SOCKETHELPER_HPP_ */
Drv::SocketHelper
Definition: SocketHelper.hpp:20
Drv::SocketHelper::open
SocketIpStatus open(void)
Definition: SocketHelper.cpp:98
U8
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.hpp:76
Drv
Definition: BlockDriverImpl.cpp:5
SocketIpDriverTypes.hpp
Drv::SocketState
Definition: UdpSocket.cpp:42
MAX_HOSTNAME_SIZE
@ MAX_HOSTNAME_SIZE
Definition: SocketIpDriverCfg.hpp:28
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
Status enumeration for socket return values.
Definition: IpSocket.hpp:23
Drv::SocketHelper::close
void close(void)
Definition: SocketHelper.cpp:90
Drv::SocketHelper::send
void send(U8 *data, const U32 size)
Definition: SocketHelper.cpp:200
Drv::SocketHelper::SocketHelper
SocketHelper()
Definition: SocketHelper.cpp:54
Drv::SocketHelper::recv
SocketIpStatus recv(U8 *data, I32 &size)
Definition: SocketHelper.cpp:243
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