eRPC API Reference  Rev. 1.7.2
NXP Semiconductors
erpc_transport.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  *
7  * SPDX-License-Identifier: BSD-3-Clause
8  */
9 
10 #ifndef _EMBEDDED_RPC__TRANSPORT_H_
11 #define _EMBEDDED_RPC__TRANSPORT_H_
12 
13 #include "erpc_common.h"
14 #include "erpc_crc16.h"
15 #include "erpc_message_buffer.h"
16 #include <cstring>
17 
24 // Classes
27 
28 namespace erpc {
29 
35 class Transport
36 {
37 public:
41  Transport(void) {}
42 
46  virtual ~Transport(void) {}
47 
57  virtual erpc_status_t receive(MessageBuffer *message) = 0;
58 
68  virtual erpc_status_t send(MessageBuffer *message) = 0;
69 
79  virtual bool hasMessage(void) { return true; }
80 
86  virtual void setCrc16(Crc16 *crcImpl){};
87 };
88 
95 {
96 public:
104  virtual ~TransportFactory(void) {}
110  virtual Transport *create(void) = 0;
111 };
112 
113 } // namespace erpc
114 
117 #endif // _EMBEDDED_RPC__TRANSPORT_H_
Abstract interface for transport layer.
Definition: erpc_transport.h:35
int32_t erpc_status_t
Type used for all status and error return values.
Definition: erpc_common.h:86
Abstract interface for transport factory.
Definition: erpc_transport.h:94
virtual ~Transport(void)
Transport destructor.
Definition: erpc_transport.h:46
Transport(void)
Constructor.
Definition: erpc_transport.h:41
virtual bool hasMessage(void)
Poll for an incoming message.
Definition: erpc_transport.h:79
Represents a memory buffer containing a message.
Definition: erpc_message_buffer.h:36
Definition: erpc_arbitrated_client_manager.h:25
virtual erpc_status_t send(MessageBuffer *message)=0
Prototype for send message.
TransportFactory(void)
Constructor.
Definition: erpc_transport.h:100
Class for compute crc16.
Definition: erpc_crc16.h:29
virtual erpc_status_t receive(MessageBuffer *message)=0
Prototype for receiving message.
virtual ~TransportFactory(void)
TransportFactory destructor.
Definition: erpc_transport.h:104
virtual void setCrc16(Crc16 *crcImpl)
This functions sets the CRC-16 implementation.
Definition: erpc_transport.h:86