nros C API
Lightweight ROS 2 client for embedded real-time systems
Loading...
Searching...
No Matches
cdr.h
Go to the documentation of this file.
1
14#ifndef NROS_CDR_H
15#define NROS_CDR_H
16
17#include "nros/types.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23/* ===================================================================
24 * Write Functions
25 * =================================================================== */
26
37int32_t nros_cdr_write_bool(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, bool value);
38
49int32_t nros_cdr_write_u8(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, uint8_t value);
50
61int32_t nros_cdr_write_i8(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, int8_t value);
62
73int32_t nros_cdr_write_u16(uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
74 uint16_t value);
75
86int32_t nros_cdr_write_i16(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, int16_t value);
87
98int32_t nros_cdr_write_u32(uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
99 uint32_t value);
100
111int32_t nros_cdr_write_i32(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, int32_t value);
112
123int32_t nros_cdr_write_u64(uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
124 uint64_t value);
125
136int32_t nros_cdr_write_i64(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, int64_t value);
137
148int32_t nros_cdr_write_f32(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, float value);
149
160int32_t nros_cdr_write_f64(uint8_t** ptr, const uint8_t* end, const uint8_t* origin, double value);
161
175int32_t nros_cdr_write_string(uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
176 const char* value);
177
194int32_t nros_cdr_write_string_n(uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
195 const char* data, size_t len);
196
197/* ===================================================================
198 * Read Functions
199 * =================================================================== */
200
211int32_t nros_cdr_read_bool(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
212 bool* value);
213
224int32_t nros_cdr_read_u8(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
225 uint8_t* value);
226
237int32_t nros_cdr_read_i8(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
238 int8_t* value);
239
250int32_t nros_cdr_read_u16(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
251 uint16_t* value);
252
263int32_t nros_cdr_read_i16(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
264 int16_t* value);
265
276int32_t nros_cdr_read_u32(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
277 uint32_t* value);
278
289int32_t nros_cdr_read_i32(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
290 int32_t* value);
291
302int32_t nros_cdr_read_u64(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
303 uint64_t* value);
304
315int32_t nros_cdr_read_i64(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
316 int64_t* value);
317
328int32_t nros_cdr_read_f32(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
329 float* value);
330
341int32_t nros_cdr_read_f64(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
342 double* value);
343
358int32_t nros_cdr_read_string(const uint8_t** ptr, const uint8_t* end, const uint8_t* origin,
359 char* value, size_t max_len);
360
361#ifdef __cplusplus
362}
363#endif
364
365#endif /* NROS_CDR_H */
int32_t nros_cdr_write_u32(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint32_t value)
Write a u32 value to the buffer (with alignment).
int32_t nros_cdr_write_u64(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint64_t value)
Write a u64 value to the buffer (with alignment).
int32_t nros_cdr_write_string_n(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, const char *data, size_t len)
Write a string from a pointer+length pair (not null-terminated).
int32_t nros_cdr_read_f64(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, double *value)
Read a f64 value from the buffer.
int32_t nros_cdr_read_string(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, char *value, size_t max_len)
Read a string from the buffer into a fixed-size buffer.
int32_t nros_cdr_read_u16(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint16_t *value)
Read a u16 value from the buffer (with alignment).
int32_t nros_cdr_read_i16(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int16_t *value)
Read an i16 value from the buffer.
int32_t nros_cdr_write_bool(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, bool value)
Write a boolean value to the buffer.
int32_t nros_cdr_read_i8(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int8_t *value)
Read an i8 value from the buffer.
int32_t nros_cdr_read_i64(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int64_t *value)
Read an i64 value from the buffer.
int32_t nros_cdr_read_i32(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int32_t *value)
Read an i32 value from the buffer.
int32_t nros_cdr_write_f32(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, float value)
Write a f32 value to the buffer (with alignment).
int32_t nros_cdr_read_f32(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, float *value)
Read a f32 value from the buffer.
int32_t nros_cdr_write_u8(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint8_t value)
Write a u8 value to the buffer.
int32_t nros_cdr_write_i64(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int64_t value)
Write an i64 value to the buffer.
int32_t nros_cdr_read_u8(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint8_t *value)
Read a u8 value from the buffer.
int32_t nros_cdr_write_string(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, const char *value)
Write a string to the buffer (length-prefixed).
int32_t nros_cdr_read_u64(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint64_t *value)
Read a u64 value from the buffer (with alignment).
int32_t nros_cdr_write_i32(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int32_t value)
Write an i32 value to the buffer.
int32_t nros_cdr_write_i16(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int16_t value)
Write an i16 value to the buffer.
int32_t nros_cdr_write_i8(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, int8_t value)
Write an i8 value to the buffer.
int32_t nros_cdr_read_bool(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, bool *value)
Read a boolean value from the buffer.
int32_t nros_cdr_read_u32(const uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint32_t *value)
Read a u32 value from the buffer (with alignment).
int32_t nros_cdr_write_u16(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, uint16_t value)
Write a u16 value to the buffer (with alignment).
int32_t nros_cdr_write_f64(uint8_t **ptr, const uint8_t *end, const uint8_t *origin, double value)
Write a f64 value to the buffer (with alignment).
Shared types and constants for the nros C API.
#define NROS_PUBLIC
Definition visibility.h:33