F´ Flight Software - C/C++ Documentation  NASA-v2.0.1
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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