eRPC API Reference  Rev. 1.7.2
NXP Semiconductors
erpc_tcp_transport.h
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 
12 #include "erpc_framed_transport.h"
13 #include "erpc_threading.h"
14 
21 // Classes
24 
25 namespace erpc {
32 {
33 public:
41  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 
81  virtual erpc_status_t close(void);
82 
83 protected:
84  bool m_isServer;
85  const char *m_host;
86  uint16_t m_port;
87  int m_socket;
89  bool m_runServer;
97  virtual erpc_status_t connectClient(void);
98 
109  virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size);
110 
121  virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size);
122 
126  void serverThread(void);
127 
137  static void serverThreadStub(void *arg);
138 };
139 
140 } // namespace erpc
141 
144 #endif // _EMBEDDED_RPC__TCP_TRANSPORT_H_
int32_t erpc_status_t
Type used for all status and error return values.
Definition: erpc_common.h:86
static void serverThreadStub(void *arg)
Thread entry point.
Definition: erpc_tcp_transport.cpp:316
void serverThread(void)
Server thread function.
Definition: erpc_tcp_transport.cpp:248
Base class for framed transport layers.
Definition: erpc_framed_transport.h:54
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:66
virtual erpc_status_t close(void)
This function disconnects client or stop server host.
Definition: erpc_tcp_transport.cpp:165
bool m_isServer
Definition: erpc_tcp_transport.h:84
Simple thread class.
Definition: erpc_threading.h:56
uint16_t m_port
Definition: erpc_tcp_transport.h:86
int m_socket
Definition: erpc_tcp_transport.h:87
Thread m_serverThread
Definition: erpc_tcp_transport.h:88
virtual ~TCPTransport(void)
TCPTransport destructor.
Definition: erpc_tcp_transport.cpp:58
Definition: erpc_arbitrated_client_manager.h:25
const char * m_host
Definition: erpc_tcp_transport.h:85
virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size)
This function writes data.
Definition: erpc_tcp_transport.cpp:217
bool m_runServer
Definition: erpc_tcp_transport.h:89
TCPTransport(bool isServer)
Constructor.
Definition: erpc_tcp_transport.cpp:38
virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size)
This function read data.
Definition: erpc_tcp_transport.cpp:181
virtual erpc_status_t connectClient(void)
This function connect client to the server.
Definition: erpc_tcp_transport.cpp:80
void configure(const char *host, uint16_t port)
This function set host and port of this transport layer.
Definition: erpc_tcp_transport.cpp:60
Client side of TCP/IP transport.
Definition: erpc_tcp_transport.h:31