F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
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(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