F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
TcpServerSocket.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title TcpServerSocket.hpp
3 // \author mstarch
4 // \brief hpp file for TcpServerSocket core implementation classes
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_TCPSERVER_TCPHELPER_HPP_
13 #define DRV_TCPSERVER_TCPHELPER_HPP_
14 
15 #include <FpConfig.hpp>
16 #include <Drv/Ip/IpSocket.hpp>
17 #include <IpCfg.hpp>
18 
19 namespace Drv {
20 
27 class TcpServerSocket : public IpSocket {
28  public:
33 
43  SocketIpStatus startup(SocketDescriptor& socketDescriptor);
44 
53  void terminate(const SocketDescriptor& socketDescriptor);
54 
63  U16 getListenPort();
64 
65  PROTECTED:
71  SocketIpStatus openProtocol(SocketDescriptor& socketDescriptor) override;
79  I32 sendProtocol(const SocketDescriptor& socketDescriptor, const U8* const data, const U32 size) override;
87  I32 recvProtocol(const SocketDescriptor& socketDescriptor, U8* const data, const U32 size) override;
88 
89 
90 
91 };
92 } // namespace Drv
93 
94 #endif /* DRV_TCPSERVER_TCPHELPER_HPP_ */
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:30
C++-compatible configuration header for fprime configuration.
Helper base-class for setting up Berkeley sockets.
Definition: IpSocket.hpp:55
Helper for setting up Tcp using Berkeley sockets as a server.
TcpServerSocket()
Constructor for client socket tcp implementation.
SocketIpStatus startup(SocketDescriptor &socketDescriptor)
Opens the server socket and listens, does not block.
SocketIpStatus openProtocol(SocketDescriptor &socketDescriptor) override
Tcp specific implementation for opening a client socket connected to this server.
I32 sendProtocol(const SocketDescriptor &socketDescriptor, const U8 *const data, const U32 size) override
Protocol specific implementation of send. Called directly with retry from send.
I32 recvProtocol(const SocketDescriptor &socketDescriptor, U8 *const data, const U32 size) override
Protocol specific implementation of recv. Called directly with error handling from recv.
U16 getListenPort()
get the port being listened on
void terminate(const SocketDescriptor &socketDescriptor)
close the server socket created by the startup call
SocketIpStatus
Status enumeration for socket return values.
Definition: IpSocket.hpp:29