eRPC API Reference  Rev. 1.9.0
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  * Copyright 2021 ACRIOS Systems s.r.o.
5  * All rights reserved.
6  *
7  *
8  * SPDX-License-Identifier: BSD-3-Clause
9  */
10 
11 #ifndef _EMBEDDED_RPC__BASIC_SERIALIZATION_H_
12 #define _EMBEDDED_RPC__BASIC_SERIALIZATION_H_
13 
14 #include "erpc_codec.h"
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 uint8_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) override;
63 
70  virtual void writeData(const void *value, uint32_t length);
71 
77  virtual void write(bool value) override;
78 
84  virtual void write(int8_t value) override;
85 
91  virtual void write(int16_t value) override;
92 
98  virtual void write(int32_t value) override;
99 
105  virtual void write(int64_t value) override;
106 
112  virtual void write(uint8_t value) override;
113 
119  virtual void write(uint16_t value) override;
120 
126  virtual void write(uint32_t value) override;
127 
133  virtual void write(uint64_t value) override;
134 
140  virtual void write(float value) override;
141 
147  virtual void write(double value) override;
148 
154  virtual void writePtr(uintptr_t value) override;
155 
162  virtual void writeString(uint32_t length, const char *value) override;
163 
170  virtual void writeBinary(uint32_t length, const uint8_t *value) override;
171 
177  virtual void startWriteList(uint32_t length) override;
178 
184  virtual void startWriteUnion(int32_t discriminator) override;
185 
191  virtual void writeNullFlag(bool isNull) override;
192 
200  virtual void writeCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr callback) override;
201 
208  virtual void writeCallback(funPtr callback1, funPtr callback2) override;
210 
212 
213 
222  virtual void startReadMessage(message_type_t *type, uint32_t *service, uint32_t *request,
223  uint32_t *sequence) override;
224 
231  virtual void readData(void *value, uint32_t length);
232 
238  virtual void read(bool *value) override;
239 
245  virtual void read(int8_t *value) override;
246 
252  virtual void read(int16_t *value) override;
253 
259  virtual void read(int32_t *value) override;
260 
266  virtual void read(int64_t *value) override;
267 
273  virtual void read(uint8_t *value) override;
274 
280  virtual void read(uint16_t *value) override;
281 
287  virtual void read(uint32_t *value) override;
288 
294  virtual void read(uint64_t *value) override;
295 
301  virtual void read(float *value) override;
302 
308  virtual void read(double *value) override;
309 
315  virtual void readPtr(uintptr_t *value) override;
316 
323  virtual void readString(uint32_t *length, char **value) override;
324 
331  virtual void readBinary(uint32_t *length, uint8_t **value) override;
332 
338  virtual void startReadList(uint32_t *length) override;
339 
345  virtual void startReadUnion(int32_t *discriminator) override;
346 
352  virtual void readNullFlag(bool *isNull) override;
353 
361  virtual void readCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr *callback) override;
362 
369  virtual void readCallback(funPtr callbacks1, funPtr *callback2) override;
371 };
372 
379 {
380 public:
386  virtual Codec *create(void) override;
387 
393  virtual void dispose(Codec *codec) override;
394 };
395 
396 } // namespace erpc
397 
400 #endif // _EMBEDDED_RPC__BASIC_SERIALIZATION_H_
virtual void startReadUnion(int32_t *discriminator) override
Prototype for start read union.
Definition: erpc_basic_codec.cpp:334
virtual void readNullFlag(bool *isNull) override
Reads a flag indicating whether the next value is null.
Definition: erpc_basic_codec.cpp:340
static const uint8_t kBasicCodecVersion
Definition: erpc_basic_codec.h:44
message_type_t
Types of messages that can be encoded.
Definition: erpc_codec.h:35
virtual void writePtr(uintptr_t value) override
Prototype for write uintptr value.
Definition: erpc_basic_codec.cpp:109
virtual void startWriteUnion(int32_t discriminator) override
Prototype for start write union.
Definition: erpc_basic_codec.cpp:138
virtual void startWriteMessage(message_type_t type, uint32_t service, uint32_t request, uint32_t sequence) override
Prototype for write header of message.
Definition: erpc_basic_codec.cpp:27
virtual void startWriteList(uint32_t length) override
Prototype for start write list.
Definition: erpc_basic_codec.cpp:132
virtual void readPtr(uintptr_t *value) override
Prototype for read uintptr value.
Definition: erpc_basic_codec.cpp:277
virtual void startReadList(uint32_t *length) override
Prototype for start read list.
Definition: erpc_basic_codec.cpp:323
Abstract serialization encoder/decoder interface.
Definition: erpc_codec.h:53
_null_flag
Values of the uint8 flag prefixing nullable values.
Definition: erpc_basic_codec.h:30
virtual void writeCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr callback) override
Writes an order ID of callback function.
Definition: erpc_basic_codec.cpp:149
virtual void readCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr *callback) override
Read an callback function id and return address of callback function.
Definition: erpc_basic_codec.cpp:351
Abstract interface for codec factory.
Definition: erpc_codec.h:441
virtual void read(bool *value) override
Prototype for read boolean value.
Definition: erpc_basic_codec.cpp:216
virtual void readData(void *value, uint32_t length)
Prototype for read data stream.
Definition: erpc_basic_codec.cpp:201
Simple binary serialization format.
Definition: erpc_basic_codec.h:41
virtual void writeBinary(uint32_t length, const uint8_t *value) override
Prototype for write binary value.
Definition: erpc_basic_codec.cpp:124
Definition: erpc_arbitrated_client_manager.h:25
Basic codec factory implements functions from codec factory.
Definition: erpc_basic_codec.h:378
virtual void write(bool value) override
Prototype for write boolean value.
Definition: erpc_basic_codec.cpp:51
virtual void startReadMessage(message_type_t *type, uint32_t *service, uint32_t *request, uint32_t *sequence) override
Prototype for read header of message.
Definition: erpc_basic_codec.cpp:180
virtual void writeData(const void *value, uint32_t length)
Prototype for write data stream.
Definition: erpc_basic_codec.cpp:36
virtual void writeString(uint32_t length, const char *value) override
Prototype for write string value.
Definition: erpc_basic_codec.cpp:118
virtual void readString(uint32_t *length, char **value) override
Prototype for read string value.
Definition: erpc_basic_codec.cpp:291
virtual void writeNullFlag(bool isNull) override
Writes a flag indicating whether the next value is null.
Definition: erpc_basic_codec.cpp:144
virtual void readBinary(uint32_t *length, uint8_t **value) override
Prototype for read binary value.
Definition: erpc_basic_codec.cpp:296