eRPC API Reference  Rev. 1.11.0
NXP Semiconductors
erpc_basic_codec.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014, Freescale Semiconductor, Inc.
3  * Copyright 2016-2021 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.hpp"
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) override;
63 
70  virtual void writeData(uint32_t length, const void *value);
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(uint32_t length, void *value);
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 readPtr(uintptr_t &value) override
Prototype for read uintptr value.
Definition: erpc_basic_codec.cpp:316
virtual void readNullFlag(bool &isNull) override
Reads a flag indicating whether the next value is null.
Definition: erpc_basic_codec.cpp:387
virtual void read(bool &value) override
Prototype for read boolean value.
Definition: erpc_basic_codec.cpp:223
_null_flag
Values of the uint8 flag prefixing nullable values.
Definition: erpc_basic_codec.hpp:30
message_type_t
Types of messages that can be encoded.
Definition: erpc_codec.hpp:35
virtual void writePtr(uintptr_t value) override
Prototype for write uintptr value.
Definition: erpc_basic_codec.cpp:121
virtual void startWriteUnion(int32_t discriminator) override
Prototype for start write union.
Definition: erpc_basic_codec.cpp:152
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:29
virtual void startReadList(uint32_t &length) override
Prototype for start read list.
Definition: erpc_basic_codec.cpp:370
virtual void startWriteList(uint32_t length) override
Prototype for start write list.
Definition: erpc_basic_codec.cpp:146
virtual void readBinary(uint32_t &length, uint8_t **value) override
Prototype for read binary value.
Definition: erpc_basic_codec.cpp:339
Abstract serialization encoder/decoder interface.
Definition: erpc_codec.hpp:53
virtual void writeData(uint32_t length, const void *value)
Prototype for write data stream.
Definition: erpc_basic_codec.cpp:39
virtual void writeCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr callback) override
Writes an order ID of callback function.
Definition: erpc_basic_codec.cpp:163
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:398
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:194
Abstract interface for codec factory.
Definition: erpc_codec.hpp:441
virtual void startReadUnion(int32_t &discriminator) override
Prototype for start read union.
Definition: erpc_basic_codec.cpp:381
Simple binary serialization format.
Definition: erpc_basic_codec.hpp:41
virtual void writeBinary(uint32_t length, const uint8_t *value) override
Prototype for write binary value.
Definition: erpc_basic_codec.cpp:138
static const uint32_t kBasicCodecVersion
Definition: erpc_basic_codec.hpp:44
Definition: erpc_arbitrated_client_manager.hpp:25
Basic codec factory implements functions from codec factory.
Definition: erpc_basic_codec.hpp:378
virtual void write(bool value) override
Prototype for write boolean value.
Definition: erpc_basic_codec.cpp:47
virtual void readData(uint32_t length, void *value)
Prototype for read data stream.
Definition: erpc_basic_codec.cpp:215
virtual void writeString(uint32_t length, const char *value) override
Prototype for write string value.
Definition: erpc_basic_codec.cpp:132
virtual void readString(uint32_t &length, char **value) override
Prototype for read string value.
Definition: erpc_basic_codec.cpp:334
virtual void writeNullFlag(bool isNull) override
Writes a flag indicating whether the next value is null.
Definition: erpc_basic_codec.cpp:158