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