eRPC API Reference  Rev. 1.11.0
NXP Semiconductors
erpc_tcp_transport.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * Copyright 2016 NXP
4  * All rights reserved.
5  *
6  *
7  * SPDX-License-Identifier: BSD-3-Clause
8  */
9 #ifndef _EMBEDDED_RPC__TCP_TRANSPORT_H_
10 #define _EMBEDDED_RPC__TCP_TRANSPORT_H_
11 
13 #include "erpc_threading.h"
14 
21 // Classes
24 
25 namespace erpc {
32 {
33 public:
41  explicit TCPTransport(bool isServer);
42 
52  TCPTransport(const char *host, uint16_t port, bool isServer);
53 
57  virtual ~TCPTransport(void);
58 
65  void configure(const char *host, uint16_t port);
66 
74  virtual erpc_status_t open(void);
75 
82  virtual erpc_status_t close(bool stopServer = true);
83 
84 protected:
85  bool m_isServer;
86  const char *m_host;
87  uint16_t m_port;
88  int m_socket;
90  bool m_runServer;
98  virtual erpc_status_t connectClient(void);
99 
110  virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size);
111 
122  virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size);
123 
127  void serverThread(void);
128 
138  static void serverThreadStub(void *arg);
139 };
140 
141 } // namespace erpc
142 
145 #endif // _EMBEDDED_RPC__TCP_TRANSPORT_H_
static void serverThreadStub(void *arg)
Thread entry point.
Definition: erpc_tcp_transport.cpp:394
void serverThread(void)
Server thread function.
Definition: erpc_tcp_transport.cpp:310
Base class for framed transport layers.
Definition: erpc_framed_transport.hpp:56
virtual erpc_status_t open(void)
This function will create host on server side, or connect client to the server.
Definition: erpc_tcp_transport.cpp:74
enum _erpc_status erpc_status_t
Type used for all status and error return values.
Definition: erpc_common.h:85
bool m_isServer
Definition: erpc_tcp_transport.hpp:85
Simple thread class.
Definition: erpc_threading.h:69
uint16_t m_port
Definition: erpc_tcp_transport.hpp:87
int m_socket
Definition: erpc_tcp_transport.hpp:88
Thread m_serverThread
Definition: erpc_tcp_transport.hpp:89
virtual ~TCPTransport(void)
TCPTransport destructor.
Definition: erpc_tcp_transport.cpp:66
Definition: erpc_arbitrated_client_manager.hpp:25
const char * m_host
Definition: erpc_tcp_transport.hpp:86
virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size)
This function writes data.
Definition: erpc_tcp_transport.cpp:269
bool m_runServer
Definition: erpc_tcp_transport.hpp:90
TCPTransport(bool isServer)
Constructor.
Definition: erpc_tcp_transport.cpp:46
virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size)
This function read data.
Definition: erpc_tcp_transport.cpp:227
virtual erpc_status_t close(bool stopServer=true)
This function disconnects client or stop server host.
Definition: erpc_tcp_transport.cpp:211
virtual erpc_status_t connectClient(void)
This function connect client to the server.
Definition: erpc_tcp_transport.cpp:92
void configure(const char *host, uint16_t port)
This function set host and port of this transport layer.
Definition: erpc_tcp_transport.cpp:68
Client side of TCP/IP transport.
Definition: erpc_tcp_transport.hpp:31