eRPC API Reference  Rev. 1.8.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  * 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 
15 #include <new>
16 
23 // Classes
26 
27 namespace erpc {
32 {
33  kNotNull = 0,
34  kIsNull
35 };
36 
42 class BasicCodec : public Codec
43 {
44 public:
45  static const uint32_t kBasicCodecVersion;
47  BasicCodec(void)
48  : Codec()
49  {
50  }
51 
53 
54 
63  virtual void startWriteMessage(message_type_t type, uint32_t service, uint32_t request, uint32_t sequence);
64 
71  virtual void writeData(const void *value, uint32_t length);
72 
78  virtual void write(bool value);
79 
85  virtual void write(int8_t value);
86 
92  virtual void write(int16_t value);
93 
99  virtual void write(int32_t value);
100 
106  virtual void write(int64_t value);
107 
113  virtual void write(uint8_t value);
114 
120  virtual void write(uint16_t value);
121 
127  virtual void write(uint32_t value);
128 
134  virtual void write(uint64_t value);
135 
141  virtual void write(float value);
142 
148  virtual void write(double value);
149 
155  virtual void writePtr(uintptr_t value);
156 
163  virtual void writeString(uint32_t length, const char *value);
164 
171  virtual void writeBinary(uint32_t length, const uint8_t *value);
172 
178  virtual void startWriteList(uint32_t length);
179 
185  virtual void startWriteUnion(int32_t discriminator);
186 
192  virtual void writeNullFlag(bool isNull);
193 
201  virtual void writeCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr callback);
202 
209  virtual void writeCallback(funPtr callback1, funPtr callback2);
211 
213 
214 
223  virtual void startReadMessage(message_type_t *type, uint32_t *service, uint32_t *request, uint32_t *sequence);
224 
231  virtual void readData(void *value, uint32_t length);
232 
238  virtual void read(bool *value);
239 
245  virtual void read(int8_t *value);
246 
252  virtual void read(int16_t *value);
253 
259  virtual void read(int32_t *value);
260 
266  virtual void read(int64_t *value);
267 
273  virtual void read(uint8_t *value);
274 
280  virtual void read(uint16_t *value);
281 
287  virtual void read(uint32_t *value);
288 
294  virtual void read(uint64_t *value);
295 
301  virtual void read(float *value);
302 
308  virtual void read(double *value);
309 
315  virtual void readPtr(uintptr_t *value);
316 
323  virtual void readString(uint32_t *length, char **value);
324 
331  virtual void readBinary(uint32_t *length, uint8_t **value);
332 
338  virtual void startReadList(uint32_t *length);
339 
345  virtual void startReadUnion(int32_t *discriminator);
346 
352  virtual void readNullFlag(bool *isNull);
353 
361  virtual void readCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr *callback);
362 
369  virtual void readCallback(funPtr callbacks1, funPtr *callback2);
371 };
372 
379 {
380 public:
386  virtual BasicCodec *create(void) { return new (std::nothrow) BasicCodec; }
387 
393  virtual void dispose(Codec *codec) { delete codec; }
394 };
395 
396 } // namespace erpc
397 
400 #endif // _EMBEDDED_RPC__BASIC_SERIALIZATION_H_
message_type_t
Types of messages that can be encoded.
Definition: erpc_codec.h:34
virtual void readBinary(uint32_t *length, uint8_t **value)
Prototype for read binary value.
Definition: erpc_basic_codec.cpp:283
virtual BasicCodec * create(void)
Return created codec.
Definition: erpc_basic_codec.h:386
virtual void readPtr(uintptr_t *value)
Prototype for read uintptr value.
Definition: erpc_basic_codec.cpp:265
virtual void writeString(uint32_t length, const char *value)
Prototype for write string value.
Definition: erpc_basic_codec.cpp:111
virtual void startReadList(uint32_t *length)
Prototype for start read list.
Definition: erpc_basic_codec.cpp:310
virtual void writeCallback(arrayOfFunPtr callbacks, uint8_t callbacksCount, funPtr callback)
Writes an order ID of callback function.
Definition: erpc_basic_codec.cpp:142
Abstract serialization encoder/decoder interface.
Definition: erpc_codec.h:52
_null_flag
Values of the uint8 flag prefixing nullable values.
Definition: erpc_basic_codec.h:31
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:336
Abstract interface for codec factory.
Definition: erpc_codec.h:422
virtual void dispose(Codec *codec)
Dispose codec.
Definition: erpc_basic_codec.h:393
virtual void read(bool *value)
Prototype for read boolean value.
Definition: erpc_basic_codec.cpp:205
virtual void startWriteUnion(int32_t discriminator)
Prototype for start write union.
Definition: erpc_basic_codec.cpp:131
virtual void write(bool value)
Prototype for write boolean value.
Definition: erpc_basic_codec.cpp:46
virtual void readData(void *value, uint32_t length)
Prototype for read data stream.
Definition: erpc_basic_codec.cpp:190
Simple binary serialization format.
Definition: erpc_basic_codec.h:42
static const uint32_t kBasicCodecVersion
Definition: erpc_basic_codec.h:45
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:326
Basic codec factory implements functions from codec factory.
Definition: erpc_basic_codec.h:378
virtual void writePtr(uintptr_t value)
Prototype for write uintptr value.
Definition: erpc_basic_codec.cpp:103
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:22
virtual void startReadUnion(int32_t *discriminator)
Prototype for start read union.
Definition: erpc_basic_codec.cpp:320
virtual void readString(uint32_t *length, char **value)
Prototype for read string value.
Definition: erpc_basic_codec.cpp:278
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:170
virtual void writeBinary(uint32_t length, const uint8_t *value)
Prototype for write binary value.
Definition: erpc_basic_codec.cpp:117
virtual void writeData(const void *value, uint32_t length)
Prototype for write data stream.
Definition: erpc_basic_codec.cpp:31
virtual void startWriteList(uint32_t length)
Prototype for start write list.
Definition: erpc_basic_codec.cpp:125
virtual void writeNullFlag(bool isNull)
Writes a flag indicating whether the next value is null.
Definition: erpc_basic_codec.cpp:137