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
UdpComponentImpl.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title UdpComponentImpl.hpp
3 // \author mstarch
4 // \brief hpp file for UdpComponentImpl component implementation class
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 
13 #ifndef UdpComponentImpl_HPP
14 #define UdpComponentImpl_HPP
15 
16 #include <Drv/Ip/IpSocket.hpp>
18 #include <Drv/Ip/UdpSocket.hpp>
19 #include "Drv/ByteStreamDriverModel/ByteStreamDriverComponentAc.hpp"
20 
21 namespace Drv {
22 
23 class UdpComponentImpl : public ByteStreamDriverModelComponentBase, public SocketReadTask {
24  public:
25  // ----------------------------------------------------------------------
26  // Construction, initialization, and destruction
27  // ----------------------------------------------------------------------
28 
33  UdpComponentImpl(const char* const compName);
34 
35 
40  void init(const NATIVE_INT_TYPE instance = 0);
41 
45  ~UdpComponentImpl(void);
46 
47  // ----------------------------------------------------------------------
48  // Helper methods to start and stop socket
49  // ----------------------------------------------------------------------
50 
66  SocketIpStatus configureSend(const char* hostname,
67  const U16 port,
68  const U32 send_timeout_seconds = SOCKET_SEND_TIMEOUT_SECONDS,
69  const U32 send_timeout_microseconds = SOCKET_SEND_TIMEOUT_MICROSECONDS);
70 
82  SocketIpStatus configureRecv(const char* hostname, const U16 port);
83 
89  Drv::PollStatus poll_handler(const NATIVE_INT_TYPE portNum, Fw::Buffer& fwBuffer);
90 
91  PROTECTED:
92  // ----------------------------------------------------------------------
93  // Implementations for socket read task virtual methods
94  // ----------------------------------------------------------------------
95 
105 
115 
124  void sendBuffer(Fw::Buffer buffer, SocketIpStatus status);
125 
126  PRIVATE:
127 
128  // ----------------------------------------------------------------------
129  // Handler implementations for user-defined typed input ports
130  // ----------------------------------------------------------------------
131 
147  Drv::SendStatus send_handler(const NATIVE_INT_TYPE portNum, Fw::Buffer& fwBuffer);
148 
149  Drv::UdpSocket m_socket;
150 };
151 
152 } // end namespace Drv
153 
154 #endif // end UdpComponentImpl
Drv::UdpComponentImpl::~UdpComponentImpl
~UdpComponentImpl(void)
Destroy the component.
Definition: UdpComponentImpl.cpp:43
Drv::UdpComponentImpl::getSocketHandler
IpSocket & getSocketHandler()
returns a reference to the socket handler
Definition: UdpComponentImpl.cpp:49
Drv::UdpComponentImpl::configureRecv
SocketIpStatus configureRecv(const char *hostname, const U16 port)
Configures the Udp receive settings but does not open the connection.
Definition: UdpComponentImpl.cpp:39
SocketReadTask.hpp
Drv::UdpComponentImpl
Definition: UdpComponentImpl.hpp:23
Drv::UdpSocket
Helper for setting up Udp using Berkley sockets as a client.
Definition: UdpSocket.hpp:32
Drv::IpSocket
Helper base-class for setting up Berkley sockets.
Definition: IpSocket.hpp:45
Drv
Definition: BlockDriverImpl.cpp:5
SOCKET_SEND_TIMEOUT_MICROSECONDS
@ SOCKET_SEND_TIMEOUT_MICROSECONDS
Definition: IpCfg.hpp:18
Drv::UdpComponentImpl::sendBuffer
void sendBuffer(Fw::Buffer buffer, SocketIpStatus status)
sends a buffer to filled with data
Definition: UdpComponentImpl.cpp:57
Fw::Buffer
Definition: Buffer.hpp:43
SOCKET_SEND_TIMEOUT_SECONDS
@ SOCKET_SEND_TIMEOUT_SECONDS
Definition: IpCfg.hpp:17
Drv::SocketReadTask
supports a task to read a given socket adaptation
Definition: SocketReadTask.hpp:27
Drv::UdpComponentImpl::init
void init(const NATIVE_INT_TYPE instance=0)
Initialize this component.
Definition: UdpComponentImpl.cpp:28
Drv::SocketIpStatus
SocketIpStatus
Status enumeration for socket return values.
Definition: IpSocket.hpp:23
Drv::UdpComponentImpl::UdpComponentImpl
UdpComponentImpl(const char *const compName)
construct the TcpClient component.
Definition: UdpComponentImpl.cpp:24
IpSocket.hpp
NATIVE_INT_TYPE
int NATIVE_INT_TYPE
native integer type declaration
Definition: BasicTypes.hpp:29
Drv::UdpComponentImpl::configureSend
SocketIpStatus configureSend(const char *hostname, const U16 port, const U32 send_timeout_seconds=SOCKET_SEND_TIMEOUT_SECONDS, const U32 send_timeout_microseconds=SOCKET_SEND_TIMEOUT_MICROSECONDS)
Configures the Udp send settings but does not open the connection.
Definition: UdpComponentImpl.cpp:32
Drv::UdpComponentImpl::poll_handler
Drv::PollStatus poll_handler(const NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
not supported
Definition: UdpComponentImpl.cpp:77
Drv::UdpComponentImpl::getBuffer
Fw::Buffer getBuffer()
returns a buffer to fill with data
Definition: UdpComponentImpl.cpp:53
UdpSocket.hpp