eRPC API Reference  Rev. 1.7.2
NXP Semiconductors
erpc_basic_codec.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__BASIC_SERIALIZATION_H_
11 #define _EMBEDDED_RPC__BASIC_SERIALIZATION_H_
12 
13 #include "erpc_codec.h"
14 #include <new>
15 
22 // Classes
25 
26 namespace erpc {
31 {
32  kNotNull = 0,
33  kIsNull
34 };
35 
41 class BasicCodec : public Codec
42 {
43 public:
44  static const uint32_t kBasicCodecVersion;
46  BasicCodec(void)
47  : Codec()
48  {
49  }
50 
52 
53 
62  virtual void startWriteMessage(message_type_t type, uint32_t service, uint32_t request, uint32_t sequence);
63 
70  virtual void writeData(const void *value, uint32_t length);
71 
77  virtual void write(bool value);
78 
84  virtual void write(int8_t value);
85 
91  virtual void write(int16_t value);
92 
98  virtual void write(int32_t value);
99 
105  virtual void write(int64_t value);
106 
112  virtual void write(uint8_t value);
113 
119  virtual void write(uint16_t value);
120 
126  virtual void write(uint32_t value);
127 
133  virtual void write(uint64_t value);
134 
140  virtual void write(float value);
141 
147  virtual void write(double value);
148 
154  virtual void writePtr(uintptr_t value);
155 
162  virtual void writeString(uint32_t length, const char *value);
163 
170  virtual void writeBinary(uint32_t length, const uint8_t *value);
171 
177  virtual void startWriteList(uint32_t length);
178 
184  virtual void startWriteUnion(int32_t discriminator);
185 
191  virtual void writeNullFlag(bool isNull);
192 
200  virtual void writeCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr callback);
201 
208  virtual void writeCallback(funPtr callback1, funPtr callback2);
210 
212 
213 
222  virtual void startReadMessage(message_type_t *type, uint32_t *service, uint32_t *request, uint32_t *sequence);
223 
230  virtual void readData(void *value, uint32_t length);
231 
237  virtual void read(bool *value);
238 
244  virtual void read(int8_t *value);
245 
251  virtual void read(int16_t *value);
252 
258  virtual void read(int32_t *value);
259 
265  virtual void read(int64_t *value);
266 
272  virtual void read(uint8_t *value);
273 
279  virtual void read(uint16_t *value);
280 
286  virtual void read(uint32_t *value);
287 
293  virtual void read(uint64_t *value);
294 
300  virtual void read(float *value);
301 
307  virtual void read(double *value);
308 
314  virtual void readPtr(uintptr_t *value);
315 
322  virtual void readString(uint32_t *length, char **value);
323 
330  virtual void readBinary(uint32_t *length, uint8_t **value);
331 
337  virtual void startReadList(uint32_t *length);
338 
344  virtual void startReadUnion(int32_t *discriminator);
345 
351  virtual void readNullFlag(bool *isNull);
352 
360  virtual void readCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr *callback);
361 
368  virtual void readCallback(funPtr callbacks1, funPtr *callback2);
370 };
371 
378 {
379 public:
385  virtual BasicCodec *create(void) { return new (std::nothrow) BasicCodec; }
386 
392  virtual void dispose(Codec *codec) { delete codec; }
393 };
394 
395 } // namespace erpc
396 
399 #endif // _EMBEDDED_RPC__BASIC_SERIALIZATION_H_
message_type_t
Types of messages that can be encoded.
Definition: erpc_codec.h:33
virtual void readBinary(uint32_t *length, uint8_t **value)
Prototype for read binary value.
Definition: erpc_basic_codec.cpp:282
virtual BasicCodec * create(void)
Return created codec.
Definition: erpc_basic_codec.h:385
virtual void readPtr(uintptr_t *value)
Prototype for read uintptr value.
Definition: erpc_basic_codec.cpp:264
virtual void writeString(uint32_t length, const char *value)
Prototype for write string value.
Definition: erpc_basic_codec.cpp:110
virtual void startReadList(uint32_t *length)
Prototype for start read list.
Definition: erpc_basic_codec.cpp:309
virtual void writeCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr callback)
Writes an order ID of callback function.
Definition: erpc_basic_codec.cpp:141
Abstract serialization encoder/decoder interface.
Definition: erpc_codec.h:50
_null_flag
Values of the uint8 flag prefixing nullable values.
Definition: erpc_basic_codec.h:30
virtual void readCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr *callback)
Read an callback function id and return address of callback function.
Definition: erpc_basic_codec.cpp:335
Abstract interface for codec factory.
Definition: erpc_codec.h:420
virtual void dispose(Codec *codec)
Dispose codec.
Definition: erpc_basic_codec.h:392
virtual void read(bool *value)
Prototype for read boolean value.
Definition: erpc_basic_codec.cpp:204
virtual void startWriteUnion(int32_t discriminator)
Prototype for start write union.
Definition: erpc_basic_codec.cpp:130
virtual void write(bool value)
Prototype for write boolean value.
Definition: erpc_basic_codec.cpp:45
virtual void readData(void *value, uint32_t length)
Prototype for read data stream.
Definition: erpc_basic_codec.cpp:189
Simple binary serialization format.
Definition: erpc_basic_codec.h:41
static const uint32_t kBasicCodecVersion
Definition: erpc_basic_codec.h:44
Definition: erpc_arbitrated_client_manager.h:25
virtual void readNullFlag(bool *isNull)
Reads a flag indicating whether the next value is null.
Definition: erpc_basic_codec.cpp:325
Basic codec factory implements functions from codec factory.
Definition: erpc_basic_codec.h:377
virtual void writePtr(uintptr_t value)
Prototype for write uintptr value.
Definition: erpc_basic_codec.cpp:102
virtual void startWriteMessage(message_type_t type, uint32_t service, uint32_t request, uint32_t sequence)
Prototype for write header of message.
Definition: erpc_basic_codec.cpp:21
virtual void startReadUnion(int32_t *discriminator)
Prototype for start read union.
Definition: erpc_basic_codec.cpp:319
virtual void readString(uint32_t *length, char **value)
Prototype for read string value.
Definition: erpc_basic_codec.cpp:277
virtual void startReadMessage(message_type_t *type, uint32_t *service, uint32_t *request, uint32_t *sequence)
Prototype for read header of message.
Definition: erpc_basic_codec.cpp:169
virtual void writeBinary(uint32_t length, const uint8_t *value)
Prototype for write binary value.
Definition: erpc_basic_codec.cpp:116
virtual void writeData(const void *value, uint32_t length)
Prototype for write data stream.
Definition: erpc_basic_codec.cpp:30
virtual void startWriteList(uint32_t length)
Prototype for start write list.
Definition: erpc_basic_codec.cpp:124
virtual void writeNullFlag(bool isNull)
Writes a flag indicating whether the next value is null.
Definition: erpc_basic_codec.cpp:136