From fd96a2cd4c91e7bd66f03fe8969fd9491be20434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Enrique=20Mu=C3=B1oz=20Mart=C3=ADn?= Date: Tue, 11 Sep 2018 16:04:55 +0200 Subject: [PATCH 1/9] Modified the project strucure and updated the README with more info about the lib. (#7) * Ref #3327. Added, documented and tested type: int8. * #3328 Refactor headers * Ref #3328. Refactor sources. * #3328. Added documentation. * Changes for accepting Pull Request #7 * Changes (2) for accepting Pull Request #7 --- .gitignore | 2 + CMakeLists.txt | 11 +- README.md | 101 ++- include/microcdr/common.h | 71 ++ include/microcdr/microcdr.h | 210 +---- include/microcdr/types/array.h | 93 +++ include/microcdr/types/basics.h | 95 +++ include/microcdr/types/sequence.h | 80 ++ include/microcdr/types/string.h | 0 src/c/common.c | 41 + src/c/microcdr.c | 1086 ------------------------- src/c/types/array.c | 431 ++++++++++ src/c/types/basics.c | 454 +++++++++++ src/c/types/sequence.c | 262 ++++++ test/BufferError.cpp | 38 + test/SerializationDeserialization.cpp | 74 ++ 16 files changed, 1758 insertions(+), 1291 deletions(-) create mode 100644 include/microcdr/common.h create mode 100644 include/microcdr/types/array.h create mode 100644 include/microcdr/types/basics.h create mode 100644 include/microcdr/types/sequence.h create mode 100644 include/microcdr/types/string.h create mode 100644 src/c/common.c create mode 100644 src/c/types/array.c create mode 100644 src/c/types/basics.c create mode 100644 src/c/types/sequence.c diff --git a/.gitignore b/.gitignore index 15b79ed..272f364 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ build examples/performance_cmp_versions .vscode +.color_coded +.ycm_extra_conf.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 08e5faa..98a866c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,14 @@ endif() ############################################################################### # Library -add_library(${PROJECT_NAME} src/c/microcdr.c) +add_library(${PROJECT_NAME} + src/c/common.c + src/c/microcdr.c + src/c/types/basics.c + src/c/types/array.c + src/c/types/sequence.c + ) + set_common_compile_options(${PROJECT_NAME}) set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION} @@ -169,7 +176,7 @@ install(EXPORT ${PROJECT_NAME}Targets DESTINATION ${LIB_INSTALL_DIR}/${PROJECT_NAME}/cmake ) -# Package configuration +# Package configuration include(CMakePackageConfigHelpers) configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/packaging/Config.cmake.in ${PROJECT_BINARY_DIR}/cmake/config/${PROJECT_NAME}Config.cmake diff --git a/README.md b/README.md index 8d3b369..d822a6e 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,14 @@ -*eProsima microCDR* is a C library implementing the CDR standard serialization methods. +*eProsima MicroCDR* is a *C* library implementing the *CDR* standard serialization methods. This library is focused on embedded and resource-limited systems. -*microCDR* uses a static buffer, is always aligned, and allow to serialize and deserialize in both, big endianness and little endianness. -For more information about the API of *microCDR* check ...? +*MicroCDR* uses a static buffer, and allow to serialize and deserialize in both, big endianness and little endianness. ## Usage examples This is a code example showing the serialization and deserialization of a string. -As *microCDR* uses a static buffer, that means the user has to provide a defined buffer and its size during the *MicroBuffer* creation. +As *MicroCDR* uses a static buffer, that means the user has to provide a defined buffer and its size during the *MicroBuffer* creation. ```c #include @@ -32,7 +31,7 @@ As *microCDR* uses a static buffer, that means the user has to provide a defined init_micro_buffer(&reader, buffer, BUFFER_LENGTH); // Serialize data - char input[16] = "Hello microCDR!"; //16 characters + char input[16] = "Hello MicroCDR!"; //16 characters serialize_array_char(&writer, input, 16); // Deserialize data @@ -46,17 +45,100 @@ As *microCDR* uses a static buffer, that means the user has to provide a defined } ``` -Note: to change the default endianness of functions without the *endian* tag, use the *endianness* member of the *Microbuffer* structure. +## API functions +```c +void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); +void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +``` +Initialize a `MicroBuffer` structure, the main struct of *MicroCDR*. +- `mb`: the `MicroBuffer` struct +- `data`: the buffer that the `MicroBuffer` will use. +- `size`: the size of the buffer that the `MicroBuffer` will use. +- `offset`: where the serialization/deserialization will start. +Initially, the serialization/deserialization starts at the beginning of the buffer. + +--- -## Supported types -The types supported in *microCDR* are presented in the following table. For each of them exists a serialization and a deserialization function. +```c +void reset_micro_buffer (MicroBuffer* mb); +void reset_micro_buffer_offset(MicroBuffer* mb, const uint32_t offset); +``` +Reset the `MicroBuffer` as the same state that it was created. +- `mb`: the `MicroBuffer` struct +- `offset`: where the serialization/deserialization will start. +Initially, the serialization/deserialization starts at the beginning of the buffer. + +--- + +```c +void align_to (MicroBuffer* mb, const uint32_t alignment); +``` +Align the MicroBuffer to an `alignment` position. +After call this function, the serialization pointer will be moved only if the current `MicroBuffer` was not aligment to the passed value. + +- `mb`: the `MicroBuffer` struct +- `alignment`: the alignment value used. + +--- + +```c +uint32_t get_alignment(uint32_t buffer_position, const uint32_t data_size); +``` +Returns the aligment necessary to serialize/deserialize a type with `data_size` size. + +- `buffer_position`: the current serialization/deserialization position of the `MicroBuffer`. (Typically `mb->iterator - mb->init`). +- `data_size`: the bytes of the data that you are asking for. + +--- + +```c +size_t micro_buffer_size(const MicroBuffer* mb); +``` +Returns the memory size of the buffer. +- `mb`: the `MicroBuffer` struct + +--- + +```c +size_t micro_buffer_length(const MicroBuffer* mb); +``` +Returns the size of the serialized/deserialized data. +- `mb`: the `MicroBuffer` struct + +--- + +```c +size_t micro_buffer_remaining(const MicroBuffer* mb); +``` +Returns the remaining size for the serializing/deserializing. +- `mb`: the `MicroBuffer` struct + + +### Serialization/deserialization functions +Adding to this, there is a big set of functions for deserialize and deserialize different kind of types: +- Basics: `bool`, `char`, `int8_t`, `uint8_t`,`int16_t`, `uint16_t`,`int32_t`, `uint32_t`,`int64_t`, `uint64_t`,`float`, `double`. +- Arrays: Any fixed size of basics types. +- Sequence: Similar to arrays, but the information about the size is serialized along with the data. + +### Endianness +*MicroCDR* supports little and big endianness. +The configuration can be done by cmake with the cmake `__BIG_ENDIAN__` variable. +A `0` value implies that the serialization will performed into a little endian machine, and `1` into a big endian machine. + +The default endianness serialization can be choosen by setting the `endianness` parameter of a `MicroBuffer` to `BIG_ENDIANNESS` or `LITTLE_ENDIANNESS`. +Also, there are a functions that allow to force an endianness in their serialization/deserialization. +These functions contains the name `endiannness` in their signature. + +## Serialization/deserialization list +The avaialble modes of serialization/deserializations in *MicroCDR* are shown in the following table. | Type | Endianness | | -------------------- | ---------- | | bool | | | char | | +| int8 | | | uint8 | | | int16 | | | int16 | endianness | @@ -76,6 +158,7 @@ The types supported in *microCDR* are presented in the following table. For each | double | endianness | | bool array | | | char array | | +| int8 array | | | uint8 array | | | int16 array | | | int16 array | endianness | @@ -95,6 +178,7 @@ The types supported in *microCDR* are presented in the following table. For each | double array | endianness | | bool sequence | | | char sequence | | +| int8 sequence | | | uint8 sequence | | | int16 sequence | | | int16 sequence | endianness | @@ -112,3 +196,4 @@ The types supported in *microCDR* are presented in the following table. For each | float sequence | endianness | | double sequence | | | double sequence | endianness | + diff --git a/include/microcdr/common.h b/include/microcdr/common.h new file mode 100644 index 0000000..a16d079 --- /dev/null +++ b/include/microcdr/common.h @@ -0,0 +1,71 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _MICROCDR_COMMON_H_ +#define _MICROCDR_COMMON_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include +#include + +typedef enum Endianness { + BIG_ENDIANNESS, + LITTLE_ENDIANNESS + +} Endianness; + +typedef enum BufferError { + BUFFER_OK, + BUFFER_NOK + +} BufferError; + +typedef struct MicroState +{ + uint8_t *position; + uint32_t last_data_size; + + BufferError error; + +} MicroState; + +typedef struct MicroBuffer +{ + uint8_t *init; + uint8_t *final; + uint8_t *iterator; + + Endianness endianness; + uint32_t last_data_size; + + BufferError error; + +} MicroBuffer; + +microcdr_DllAPI extern const Endianness MACHINE_ENDIANNESS; + +uint32_t get_alignment_offset(MicroBuffer* buffer, const uint32_t data_size); +bool check_size(MicroBuffer* buffer, const uint32_t bytes); + +#ifdef __cplusplus +} +#endif + +#endif //_MICROCDR_COMMON_H_ diff --git a/include/microcdr/microcdr.h b/include/microcdr/microcdr.h index d7a9257..cc8406f 100644 --- a/include/microcdr/microcdr.h +++ b/include/microcdr/microcdr.h @@ -19,207 +19,27 @@ extern "C" { #endif -#include "microcdr_dll.h" +#include +#include +#include +#include -#include -#include #include -// ------------------------------------------------------------------- -// MICRO CDR STRUCTURES -// ------------------------------------------------------------------- +microcdr_DllAPI void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); +microcdr_DllAPI void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +microcdr_DllAPI void reset_micro_buffer (MicroBuffer* mb); +microcdr_DllAPI void reset_micro_buffer_offset(MicroBuffer* mb, const uint32_t offset); -typedef enum Endianness { - BIG_ENDIANNESS, - LITTLE_ENDIANNESS, -} Endianness; +microcdr_DllAPI MicroState get_micro_state(MicroBuffer* mb); +microcdr_DllAPI void restore_micro_state (MicroBuffer* mb, const MicroState state); -typedef enum BufferError { - BUFFER_OK, - BUFFER_NOK -} BufferError; +microcdr_DllAPI void align_to(MicroBuffer* mb, const uint32_t alignment); +microcdr_DllAPI uint32_t get_alignment(uint32_t buffer_position, const uint32_t data_size); -typedef struct MicroState -{ - uint8_t *position; - uint32_t last_data_size; - BufferError error; - -} MicroState; - -typedef struct MicroBuffer -{ - uint8_t *init; - uint8_t *final; - uint8_t *iterator; - - Endianness endianness; - uint32_t last_data_size; - - BufferError error; - -} MicroBuffer; - -microcdr_DllAPI extern const Endianness MACHINE_ENDIANNESS; - -// ------------------------------------------------------------------- -// MICRO BUFFER FUNCTIONS -// ------------------------------------------------------------------- - -microcdr_DllAPI void init_micro_buffer (MicroBuffer* buffer, uint8_t* data, const uint32_t size); -microcdr_DllAPI void init_micro_buffer_offset (MicroBuffer* buffer, uint8_t* data, const uint32_t size, uint32_t offset); -microcdr_DllAPI void reset_micro_buffer (MicroBuffer* buffer); -microcdr_DllAPI void reset_micro_buffer_offset(MicroBuffer* buffer, const uint32_t offset); - -microcdr_DllAPI MicroState get_micro_state(MicroBuffer* buffer); -microcdr_DllAPI void restore_micro_state (MicroBuffer* buffer, const MicroState state); - -microcdr_DllAPI void align_to(MicroBuffer* buffer, const uint32_t size); -microcdr_DllAPI uint32_t get_alignment(uint32_t current_alignment, const uint32_t data_size); - -microcdr_DllAPI size_t micro_buffer_size(const MicroBuffer* buffer); -microcdr_DllAPI size_t micro_buffer_length(const MicroBuffer* buffer); -microcdr_DllAPI size_t micro_buffer_remaining(const MicroBuffer* buffer); - -// ------------------------------------------------------------------- -// SERIALIZATION FUNCTIONS -// ------------------------------------------------------------------- - -// Basics -microcdr_DllAPI bool serialize_char(MicroBuffer* buffer, const char value); -microcdr_DllAPI bool serialize_bool(MicroBuffer* buffer, const bool value); -microcdr_DllAPI bool serialize_uint8_t(MicroBuffer* buffer, const uint8_t value); -microcdr_DllAPI bool serialize_uint16_t(MicroBuffer* buffer, const uint16_t value); -microcdr_DllAPI bool serialize_uint32_t(MicroBuffer* buffer, const uint32_t value); -microcdr_DllAPI bool serialize_uint64_t(MicroBuffer* buffer, const uint64_t value); -microcdr_DllAPI bool serialize_int16_t(MicroBuffer* buffer, const int16_t value); -microcdr_DllAPI bool serialize_int32_t(MicroBuffer* buffer, const int32_t value); -microcdr_DllAPI bool serialize_int64_t(MicroBuffer* buffer, const int64_t value); -microcdr_DllAPI bool serialize_float(MicroBuffer* buffer, const float value); -microcdr_DllAPI bool serialize_double(MicroBuffer* buffer, const double value); - -microcdr_DllAPI bool deserialize_char(MicroBuffer* buffer, char* value); -microcdr_DllAPI bool deserialize_bool(MicroBuffer* buffer, bool* value); -microcdr_DllAPI bool deserialize_uint8_t(MicroBuffer* buffer, uint8_t* value); -microcdr_DllAPI bool deserialize_uint16_t(MicroBuffer* buffer, uint16_t* value); -microcdr_DllAPI bool deserialize_uint32_t(MicroBuffer* buffer, uint32_t* value); -microcdr_DllAPI bool deserialize_uint64_t(MicroBuffer* buffer, uint64_t* value); -microcdr_DllAPI bool deserialize_int16_t(MicroBuffer* buffer, int16_t* value); -microcdr_DllAPI bool deserialize_int32_t(MicroBuffer* buffer, int32_t* value); -microcdr_DllAPI bool deserialize_int64_t(MicroBuffer* buffer, int64_t* value); -microcdr_DllAPI bool deserialize_float(MicroBuffer* buffer, float* value); -microcdr_DllAPI bool deserialize_double(MicroBuffer* buffer, double* value); - -// Arrays -microcdr_DllAPI bool serialize_array_char(MicroBuffer* buffer, const char* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_bool(MicroBuffer* buffer, const bool* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_float(MicroBuffer* buffer, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_double(MicroBuffer* buffer, const double* array, const uint32_t size); - -microcdr_DllAPI bool deserialize_array_char(MicroBuffer* buffer, char* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_bool(MicroBuffer* buffer, bool* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint8_t(MicroBuffer* buffer, uint8_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint16_t(MicroBuffer* buffer, uint16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint32_t(MicroBuffer* buffer, uint32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint64_t(MicroBuffer* buffer, uint64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int16_t(MicroBuffer* buffer, int16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int32_t(MicroBuffer* buffer, int32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int64_t(MicroBuffer* buffer, int64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_float(MicroBuffer* buffer, float* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_double(MicroBuffer* buffer, double* array, const uint32_t size); - -// Sequence -microcdr_DllAPI bool serialize_sequence_char(MicroBuffer* buffer, const char* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_bool(MicroBuffer* buffer, const bool* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_float(MicroBuffer* buffer, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_double(MicroBuffer* buffer, const double* array, const uint32_t size); - -microcdr_DllAPI bool deserialize_sequence_char(MicroBuffer* buffer, char* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_bool(MicroBuffer* buffer, bool* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint8_t(MicroBuffer* buffer, uint8_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint16_t(MicroBuffer* buffer, uint16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint32_t(MicroBuffer* buffer, uint32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint64_t(MicroBuffer* buffer, uint64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int16_t(MicroBuffer* buffer, int16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int32_t(MicroBuffer* buffer, int32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int64_t(MicroBuffer* buffer, int64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_float(MicroBuffer* buffer, float* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_double(MicroBuffer* buffer, double* array, uint32_t* size); - -// ------------------------------------------------------------------- -// SERIALIZATION FUNCTIONS - ENDIAN -// ------------------------------------------------------------------- - -// Basics -microcdr_DllAPI bool serialize_endian_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t value); -microcdr_DllAPI bool serialize_endian_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t value); -microcdr_DllAPI bool serialize_endian_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t value); -microcdr_DllAPI bool serialize_endian_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t value); -microcdr_DllAPI bool serialize_endian_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t value); -microcdr_DllAPI bool serialize_endian_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t value); -microcdr_DllAPI bool serialize_endian_float(MicroBuffer* buffer, Endianness endianness, const float value); -microcdr_DllAPI bool serialize_endian_double(MicroBuffer* buffer, Endianness endianness, const double value); - -microcdr_DllAPI bool deserialize_endian_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* value); -microcdr_DllAPI bool deserialize_endian_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t *value); -microcdr_DllAPI bool deserialize_endian_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* value); -microcdr_DllAPI bool deserialize_endian_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* value); -microcdr_DllAPI bool deserialize_endian_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* value); -microcdr_DllAPI bool deserialize_endian_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* value); -microcdr_DllAPI bool deserialize_endian_float(MicroBuffer* buffer, Endianness endianness, float* value); -microcdr_DllAPI bool deserialize_endian_double(MicroBuffer* buffer, Endianness endianness, double* value); - -// Array -microcdr_DllAPI bool serialize_endian_array_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_float(MicroBuffer* buffer, Endianness endianness, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_double(MicroBuffer* buffer, Endianness endianness, const double* array, const uint32_t size); - -microcdr_DllAPI bool deserialize_endian_array_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_float(MicroBuffer* buffer, Endianness endianness, float* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_double(MicroBuffer* buffer, Endianness endianness, double* array, const uint32_t size); - -// Sequence -microcdr_DllAPI bool serialize_endian_sequence_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_float(MicroBuffer* buffer, Endianness endianness, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_double(MicroBuffer* buffer, Endianness endianness, const double* array, const uint32_t size); - -microcdr_DllAPI bool deserialize_endian_sequence_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_float(MicroBuffer* buffer, Endianness endianness, float* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_double(MicroBuffer* buffer, Endianness endianness, double* array, uint32_t* size); +microcdr_DllAPI size_t micro_buffer_size(const MicroBuffer* mb); +microcdr_DllAPI size_t micro_buffer_length(const MicroBuffer* mb); +microcdr_DllAPI size_t micro_buffer_remaining(const MicroBuffer* mb); #ifdef __cplusplus } diff --git a/include/microcdr/types/array.h b/include/microcdr/types/array.h new file mode 100644 index 0000000..951737b --- /dev/null +++ b/include/microcdr/types/array.h @@ -0,0 +1,93 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _MICROCDR_TYPES_ARRAY_H_ +#define _MICROCDR_TYPES_ARRAY_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#include +#include + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +microcdr_DllAPI bool serialize_array_char(MicroBuffer* buffer, const char* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_bool(MicroBuffer* buffer, const bool* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_float(MicroBuffer* buffer, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_double(MicroBuffer* buffer, const double* array, const uint32_t size); + +microcdr_DllAPI bool deserialize_array_char(MicroBuffer* buffer, char* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_bool(MicroBuffer* buffer, bool* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint8_t(MicroBuffer* buffer, uint8_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint16_t(MicroBuffer* buffer, uint16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint32_t(MicroBuffer* buffer, uint32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint64_t(MicroBuffer* buffer, uint64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int8_t(MicroBuffer* buffer, int8_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int16_t(MicroBuffer* buffer, int16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int32_t(MicroBuffer* buffer, int32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int64_t(MicroBuffer* buffer, int64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_float(MicroBuffer* buffer, float* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_double(MicroBuffer* buffer, double* array, const uint32_t size); + +microcdr_DllAPI bool serialize_endian_array_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_float(MicroBuffer* buffer, Endianness endianness, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_double(MicroBuffer* buffer, Endianness endianness, const double* array, const uint32_t size); + +microcdr_DllAPI bool deserialize_endian_array_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_float(MicroBuffer* buffer, Endianness endianness, float* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_double(MicroBuffer* buffer, Endianness endianness, double* array, const uint32_t size); + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); +bool serialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); +bool serialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); +bool serialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); + +bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size); +bool deserialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); +bool deserialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); +bool deserialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); + +#ifdef __cplusplus +} +#endif + +#endif //_MICROCDR_TYPES_ARRAY_H_ diff --git a/include/microcdr/types/basics.h b/include/microcdr/types/basics.h new file mode 100644 index 0000000..9f97edd --- /dev/null +++ b/include/microcdr/types/basics.h @@ -0,0 +1,95 @@ + +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _MICROCDR_TYPES_BASICS_H_ +#define _MICROCDR_TYPES_BASICS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#include +#include + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +microcdr_DllAPI bool serialize_char(MicroBuffer* buffer, const char value); +microcdr_DllAPI bool serialize_bool(MicroBuffer* buffer, const bool value); +microcdr_DllAPI bool serialize_uint8_t(MicroBuffer* buffer, const uint8_t value); +microcdr_DllAPI bool serialize_uint16_t(MicroBuffer* buffer, const uint16_t value); +microcdr_DllAPI bool serialize_uint32_t(MicroBuffer* buffer, const uint32_t value); +microcdr_DllAPI bool serialize_uint64_t(MicroBuffer* buffer, const uint64_t value); +microcdr_DllAPI bool serialize_int8_t(MicroBuffer* buffer, const int8_t value); +microcdr_DllAPI bool serialize_int16_t(MicroBuffer* buffer, const int16_t value); +microcdr_DllAPI bool serialize_int32_t(MicroBuffer* buffer, const int32_t value); +microcdr_DllAPI bool serialize_int64_t(MicroBuffer* buffer, const int64_t value); +microcdr_DllAPI bool serialize_float(MicroBuffer* buffer, const float value); +microcdr_DllAPI bool serialize_double(MicroBuffer* buffer, const double value); + +microcdr_DllAPI bool deserialize_char(MicroBuffer* buffer, char* value); +microcdr_DllAPI bool deserialize_bool(MicroBuffer* buffer, bool* value); +microcdr_DllAPI bool deserialize_uint8_t(MicroBuffer* buffer, uint8_t* value); +microcdr_DllAPI bool deserialize_uint16_t(MicroBuffer* buffer, uint16_t* value); +microcdr_DllAPI bool deserialize_uint32_t(MicroBuffer* buffer, uint32_t* value); +microcdr_DllAPI bool deserialize_uint64_t(MicroBuffer* buffer, uint64_t* value); +microcdr_DllAPI bool deserialize_int8_t(MicroBuffer* buffer, int8_t* value); +microcdr_DllAPI bool deserialize_int16_t(MicroBuffer* buffer, int16_t* value); +microcdr_DllAPI bool deserialize_int32_t(MicroBuffer* buffer, int32_t* value); +microcdr_DllAPI bool deserialize_int64_t(MicroBuffer* buffer, int64_t* value); +microcdr_DllAPI bool deserialize_float(MicroBuffer* buffer, float* value); +microcdr_DllAPI bool deserialize_double(MicroBuffer* buffer, double* value); + +microcdr_DllAPI bool serialize_endian_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t value); +microcdr_DllAPI bool serialize_endian_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t value); +microcdr_DllAPI bool serialize_endian_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t value); +microcdr_DllAPI bool serialize_endian_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t value); +microcdr_DllAPI bool serialize_endian_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t value); +microcdr_DllAPI bool serialize_endian_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t value); +microcdr_DllAPI bool serialize_endian_float(MicroBuffer* buffer, Endianness endianness, const float value); +microcdr_DllAPI bool serialize_endian_double(MicroBuffer* buffer, Endianness endianness, const double value); + +microcdr_DllAPI bool deserialize_endian_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* value); +microcdr_DllAPI bool deserialize_endian_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t *value); +microcdr_DllAPI bool deserialize_endian_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* value); +microcdr_DllAPI bool deserialize_endian_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* value); +microcdr_DllAPI bool deserialize_endian_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* value); +microcdr_DllAPI bool deserialize_endian_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* value); +microcdr_DllAPI bool deserialize_endian_float(MicroBuffer* buffer, Endianness endianness, float* value); +microcdr_DllAPI bool deserialize_endian_double(MicroBuffer* buffer, Endianness endianness, double* value); + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte); +bool serialize_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* bytes); +bool serialize_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* bytes); +bool serialize_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* bytes); + +bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte); +bool deserialize_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* bytes); +bool deserialize_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* bytes); +bool deserialize_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* bytes); + + +#ifdef __cplusplus +} +#endif + +#endif //_MICROCDR_TYPES_BASICS_H_ diff --git a/include/microcdr/types/sequence.h b/include/microcdr/types/sequence.h new file mode 100644 index 0000000..21f3ba2 --- /dev/null +++ b/include/microcdr/types/sequence.h @@ -0,0 +1,80 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _MICROCDR_TYPES_SEQUENCE_H_ +#define _MICROCDR_TYPES_SEQUENCE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#include +#include + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +microcdr_DllAPI bool serialize_sequence_char(MicroBuffer* buffer, const char* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_bool(MicroBuffer* buffer, const bool* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_float(MicroBuffer* buffer, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_double(MicroBuffer* buffer, const double* array, const uint32_t size); + +microcdr_DllAPI bool deserialize_sequence_char(MicroBuffer* buffer, char* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_bool(MicroBuffer* buffer, bool* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint8_t(MicroBuffer* buffer, uint8_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint16_t(MicroBuffer* buffer, uint16_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint32_t(MicroBuffer* buffer, uint32_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint64_t(MicroBuffer* buffer, uint64_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int8_t(MicroBuffer* buffer, int8_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int16_t(MicroBuffer* buffer, int16_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int32_t(MicroBuffer* buffer, int32_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int64_t(MicroBuffer* buffer, int64_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_float(MicroBuffer* buffer, float* array, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_double(MicroBuffer* buffer, double* array, uint32_t* size); + +microcdr_DllAPI bool serialize_endian_sequence_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_float(MicroBuffer* buffer, Endianness endianness, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_double(MicroBuffer* buffer, Endianness endianness, const double* array, const uint32_t size); + +microcdr_DllAPI bool deserialize_endian_sequence_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* array, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_float(MicroBuffer* buffer, Endianness endianness, float* array, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_double(MicroBuffer* buffer, Endianness endianness, double* array, uint32_t* size); + + +#ifdef __cplusplus +} +#endif + +#endif //_MICROCDR_TYPES_SEQUENCE_H_ diff --git a/include/microcdr/types/string.h b/include/microcdr/types/string.h new file mode 100644 index 0000000..e69de29 diff --git a/src/c/common.c b/src/c/common.c new file mode 100644 index 0000000..15ec112 --- /dev/null +++ b/src/c/common.c @@ -0,0 +1,41 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#if __BIG_ENDIAN__ + const Endianness MACHINE_ENDIANNESS = BIG_ENDIANNESS; +#else + const Endianness MACHINE_ENDIANNESS = LITTLE_ENDIANNESS; +#endif + +// ------------------------------------------------------------------- +// INTERNAL IMPLEMENTATIONS +// ------------------------------------------------------------------- + +uint32_t get_alignment_offset(MicroBuffer* buffer, const uint32_t data_size) +{ + if(data_size > buffer->last_data_size) + { + return (data_size - ((uint32_t)(buffer->iterator - buffer->init) % data_size)) & (data_size - 1); + } + + return 0; +} + +bool check_size(MicroBuffer* buffer, const uint32_t bytes) +{ + return buffer->iterator + bytes <= buffer->final; +} + diff --git a/src/c/microcdr.c b/src/c/microcdr.c index 5c5a9ff..21fe981 100644 --- a/src/c/microcdr.c +++ b/src/c/microcdr.c @@ -14,48 +14,6 @@ #include "microcdr/microcdr.h" -#include -#include - -#if __BIG_ENDIAN__ - const Endianness MACHINE_ENDIANNESS = BIG_ENDIANNESS; -#else - const Endianness MACHINE_ENDIANNESS = LITTLE_ENDIANNESS; -#endif - -// ------------------------------------------------------------------- -// INTERNAL SERIALIZATION FUNCTIONS -// ------------------------------------------------------------------- - -static bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte); -static bool serialize_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* bytes); -static bool serialize_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* bytes); -static bool serialize_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* bytes); - -static bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte); -static bool deserialize_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* bytes); -static bool deserialize_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* bytes); -static bool deserialize_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* bytes); - -static bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); -static bool serialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -static bool serialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -static bool serialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); - -static bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size); -static bool deserialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); -static bool deserialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); -static bool deserialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); - -// ------------------------------------------------------------------- -// INTERNAL UTIL FUNCTIONS -// ------------------------------------------------------------------- -inline static uint32_t get_alignment_offset(MicroBuffer* buffer, const uint32_t data_size); -inline static bool check_size(MicroBuffer* buffer, const uint32_t bytes); - -// ------------------------------------------------------------------- -// BUFFER MANAGEMENT IMPLEMENTATION -// ------------------------------------------------------------------- void init_micro_buffer(MicroBuffer* buffer, uint8_t* data, const uint32_t size) { init_micro_buffer_offset(buffer, data, size, 0U); @@ -111,26 +69,11 @@ void align_to(MicroBuffer* buffer, const uint32_t size) buffer->last_data_size = size; } -uint32_t get_alignment_offset(MicroBuffer* buffer, const uint32_t data_size) -{ - if(data_size > buffer->last_data_size) - { - return (data_size - ((uint32_t)(buffer->iterator - buffer->init) % data_size)) & (data_size - 1); - } - - return 0; -} - uint32_t get_alignment(uint32_t current_alignment, const uint32_t data_size) { return ((data_size - (current_alignment % data_size)) & (data_size - 1)); } -bool check_size(MicroBuffer* buffer, const uint32_t bytes) -{ - return buffer->iterator + bytes <= buffer->final; -} - size_t micro_buffer_size(const MicroBuffer* buffer) { return (size_t)(buffer->final - buffer->init); @@ -146,1032 +89,3 @@ size_t micro_buffer_remaining(const MicroBuffer* buffer) return (size_t)(buffer->final - buffer->iterator); } -// ------------------------------------------------------------------- -// SERIALIZATION IMPLEMENTATION -// ------------------------------------------------------------------- -bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte) -{ - uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, data_size)) - { - *buffer->iterator = *byte; - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_byte_2(MicroBuffer* buffer, const Endianness endianness, const uint16_t* bytes) -{ - uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, bytes, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *buffer->iterator = *(bytes_pointer + 1); - *(buffer->iterator + 1) = *bytes_pointer; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_byte_4(MicroBuffer* buffer, const Endianness endianness, const uint32_t* bytes) -{ - uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, bytes, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *buffer->iterator = *(bytes_pointer + 3); - *(buffer->iterator + 1) = *(bytes_pointer + 2); - *(buffer->iterator + 2) = *(bytes_pointer + 1); - *(buffer->iterator + 3) = *bytes_pointer; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_byte_8(MicroBuffer* buffer, const Endianness endianness, const uint64_t* bytes) -{ - uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, bytes, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *buffer->iterator = *(bytes_pointer + 7); - *(buffer->iterator + 1) = *(bytes_pointer + 6); - *(buffer->iterator + 2) = *(bytes_pointer + 5); - *(buffer->iterator + 3) = *(bytes_pointer + 4); - *(buffer->iterator + 4) = *(bytes_pointer + 3); - *(buffer->iterator + 5) = *(bytes_pointer + 2); - *(buffer->iterator + 6) = *(bytes_pointer + 1); - *(buffer->iterator + 7) = *bytes_pointer; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte) -{ - uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, data_size)) - { - *byte = *buffer->iterator; - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_2(MicroBuffer* buffer, const Endianness endianness, uint16_t* bytes) -{ - uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(bytes, buffer->iterator, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *bytes_pointer = *(buffer->iterator + 1); - *(bytes_pointer + 1) = *buffer->iterator ; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_4(MicroBuffer* buffer, const Endianness endianness, uint32_t* bytes) -{ - uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(bytes, buffer->iterator, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *bytes_pointer = *(buffer->iterator + 3); - *(bytes_pointer + 1) = *(buffer->iterator + 2); - *(bytes_pointer + 2) = *(buffer->iterator + 1); - *(bytes_pointer + 3) = *buffer->iterator; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_8(MicroBuffer* buffer, const Endianness endianness, uint64_t* bytes) -{ - uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(bytes, buffer->iterator, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *bytes_pointer = *(buffer->iterator + 7); - *(bytes_pointer + 1) = *(buffer->iterator + 6); - *(bytes_pointer + 2) = *(buffer->iterator + 5); - *(bytes_pointer + 3) = *(buffer->iterator + 4); - *(bytes_pointer + 4) = *(buffer->iterator + 3); - *(bytes_pointer + 5) = *(buffer->iterator + 2); - *(bytes_pointer + 6) = *(buffer->iterator + 1); - *(bytes_pointer + 7) = *buffer->iterator; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, size)) - { - memcpy(buffer->iterator, array, size); - - buffer->iterator += size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_array_byte_2(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint16_t); - uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint16_t)); - - if(check_size(buffer, alignment + array_size)) - { - buffer->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, array, array_size); - - buffer->iterator += array_size; - buffer->last_data_size = data_size; - } - else - { - for(uint32_t i = 0; i < size; i++) - { - serialize_byte_2(buffer, endianness, array + i); - } - } - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_array_byte_4(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint32_t); - uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint32_t)); - - if(check_size(buffer, alignment + array_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, array, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; - } - else - { - for(uint32_t i = 0; i < size; i++) - { - serialize_byte_4(buffer, endianness, array + i); - } - } - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_array_byte_8(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint64_t); - uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint64_t)); - - if(check_size(buffer, alignment + array_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, array, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; - } - else - { - for(uint32_t i = 0; i < size; i++) - { - serialize_byte_8(buffer, endianness, array + i); - } - } - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, size)) - { - memcpy(array, buffer->iterator, size); - - buffer->iterator += size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_array_byte_2(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint16_t); - uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint16_t)); - - if(check_size(buffer, alignment + array_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(array, buffer->iterator, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; - } - else - { - for(uint32_t i = 0; i < size; i++) - { - deserialize_byte_2(buffer, endianness, array + i); - } - } - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_array_byte_4(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint32_t); - uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint32_t)); - - if(check_size(buffer, alignment + array_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(array, buffer->iterator, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; - } - else - { - for(uint32_t i = 0; i < size; i++) - { - deserialize_byte_4(buffer, endianness, array + i); - } - } - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_array_byte_8(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, const uint32_t size) -{ - uint32_t data_size = sizeof(uint64_t); - uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint64_t)); - - if(check_size(buffer, alignment + array_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(array, buffer->iterator, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; - } - else - { - for(uint32_t i = 0; i < size; i++) - { - deserialize_byte_8(buffer, endianness, array + i); - } - } - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_char(MicroBuffer* buffer, const char value) -{ - return serialize_byte_1(buffer, (uint8_t*)&value); -} - -bool serialize_bool(MicroBuffer* buffer, const bool value) -{ - return serialize_byte_1(buffer, (uint8_t*)&value); -} - -bool serialize_uint8_t(MicroBuffer* buffer, const uint8_t value) -{ - return serialize_byte_1(buffer, &value); -} - -bool serialize_uint16_t(MicroBuffer* buffer, const uint16_t value) -{ - return serialize_byte_2(buffer, buffer->endianness, &value); -} - -bool serialize_uint32_t(MicroBuffer* buffer, const uint32_t value) -{ - return serialize_byte_4(buffer, buffer->endianness, &value); -} - -bool serialize_uint64_t(MicroBuffer* buffer, const uint64_t value) -{ - return serialize_byte_8(buffer, buffer->endianness, &value); -} - -bool serialize_int16_t(MicroBuffer* buffer, const int16_t value) -{ - return serialize_byte_2(buffer, buffer->endianness, (uint16_t*)&value); -} - -bool serialize_int32_t(MicroBuffer* buffer, const int32_t value) -{ - return serialize_byte_4(buffer, buffer->endianness, (uint32_t*)&value); -} - -bool serialize_int64_t(MicroBuffer* buffer, const int64_t value) -{ - return serialize_byte_8(buffer, buffer->endianness, (uint64_t*)&value); -} - -bool serialize_float(MicroBuffer* buffer, const float value) -{ - return serialize_byte_4(buffer, buffer->endianness, (uint32_t*)&value); -} - -bool serialize_double(MicroBuffer* buffer, const double value) -{ - return serialize_byte_8(buffer, buffer->endianness, (uint64_t*)&value); -} - -bool deserialize_char(MicroBuffer* buffer, char* value) -{ - return deserialize_byte_1(buffer, (uint8_t*)value); -} - -bool deserialize_bool(MicroBuffer* buffer, bool* value) -{ - return deserialize_byte_1(buffer, (uint8_t*)value); -} - -bool deserialize_uint8_t(MicroBuffer* buffer, uint8_t* value) -{ - return deserialize_byte_1(buffer, value); -} - -bool deserialize_uint16_t(MicroBuffer* buffer, uint16_t* value) -{ - return deserialize_byte_2(buffer, buffer->endianness, value); -} - -bool deserialize_uint32_t(MicroBuffer* buffer, uint32_t* value) -{ - return deserialize_byte_4(buffer, buffer->endianness, value); -} - -bool deserialize_uint64_t(MicroBuffer* buffer, uint64_t* value) -{ - return deserialize_byte_8(buffer, buffer->endianness, value); -} - -bool deserialize_int16_t(MicroBuffer* buffer, int16_t* value) -{ - return deserialize_byte_2(buffer, buffer->endianness, (uint16_t*)value); -} - -bool deserialize_int32_t(MicroBuffer* buffer, int32_t* value) -{ - return deserialize_byte_4(buffer, buffer->endianness, (uint32_t*)value); -} - -bool deserialize_int64_t(MicroBuffer* buffer, int64_t* value) -{ - return deserialize_byte_8(buffer, buffer->endianness, (uint64_t*)value); -} - -bool deserialize_float(MicroBuffer* buffer, float* value) -{ - return deserialize_byte_4(buffer, buffer->endianness, (uint32_t*)value); -} - -bool deserialize_double(MicroBuffer* buffer, double* value) -{ - return deserialize_byte_8(buffer, buffer->endianness, (uint64_t*)value); -} - -bool serialize_array_char(MicroBuffer* buffer, const char* array, const uint32_t size) -{ - return serialize_array_byte_1(buffer, (uint8_t*)array, size); -} - -bool serialize_array_bool(MicroBuffer* buffer, const bool* array, const uint32_t size) -{ - return serialize_array_byte_1(buffer, (uint8_t*)array, size); -} - -bool serialize_array_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) -{ - return serialize_array_byte_1(buffer, array, size); -} - -bool serialize_array_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size) -{ - return serialize_array_byte_2(buffer, buffer->endianness, array, size); -} - -bool serialize_array_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size) -{ - return serialize_array_byte_4(buffer, buffer->endianness, array, size); -} - -bool serialize_array_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size) -{ - return serialize_array_byte_8(buffer, buffer->endianness, array, size); -} - -bool serialize_array_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size) -{ - return serialize_array_byte_2(buffer, buffer->endianness, (uint16_t*)array, size); -} - -bool serialize_array_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size) -{ - return serialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); -} - -bool serialize_array_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size) -{ - return serialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); -} - -bool serialize_array_float(MicroBuffer* buffer, const float* array, const uint32_t size) -{ - return serialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); -} - -bool serialize_array_double(MicroBuffer* buffer, const double* array, const uint32_t size) -{ - return serialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); -} - -bool deserialize_array_char(MicroBuffer* buffer, char* array, const uint32_t size) -{ - return deserialize_array_byte_1(buffer, (uint8_t*)array, size); -} - -bool deserialize_array_bool(MicroBuffer* buffer, bool* array, const uint32_t size) -{ - return deserialize_array_byte_1(buffer, (uint8_t*)array, size); -} - -bool deserialize_array_uint8_t(MicroBuffer* buffer, uint8_t* array, const uint32_t size) -{ - return deserialize_array_byte_1(buffer, array, size); -} - -bool deserialize_array_uint16_t(MicroBuffer* buffer, uint16_t* array, const uint32_t size) -{ - return deserialize_array_byte_2(buffer, buffer->endianness, array, size); -} - -bool deserialize_array_uint32_t(MicroBuffer* buffer, uint32_t* array, const uint32_t size) -{ - return deserialize_array_byte_4(buffer, buffer->endianness, array, size); -} - -bool deserialize_array_uint64_t(MicroBuffer* buffer, uint64_t* array, const uint32_t size) -{ - return deserialize_array_byte_8(buffer, buffer->endianness, array, size); -} - -bool deserialize_array_int16_t(MicroBuffer* buffer, int16_t* array, const uint32_t size) -{ - return deserialize_array_byte_2(buffer, buffer->endianness, (uint16_t*)array, size); -} - -bool deserialize_array_int32_t(MicroBuffer* buffer, int32_t* array, const uint32_t size) -{ - return deserialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); -} - -bool deserialize_array_int64_t(MicroBuffer* buffer, int64_t* array, const uint32_t size) -{ - return deserialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); -} - -bool deserialize_array_float(MicroBuffer* buffer, float* array, const uint32_t size) -{ - return deserialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); -} - -bool deserialize_array_double(MicroBuffer* buffer, double* array, const uint32_t size) -{ - return deserialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); -} - -bool serialize_sequence_char(MicroBuffer* buffer, const char* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_char(buffer, array, size); -} - -bool serialize_sequence_bool(MicroBuffer* buffer, const bool* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_bool(buffer, array, size); -} - -bool serialize_sequence_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_uint8_t(buffer, array, size); -} - -bool serialize_sequence_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_uint16_t(buffer, array, size); -} - -bool serialize_sequence_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_uint32_t(buffer, array, size); -} - -bool serialize_sequence_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_uint64_t(buffer, array, size); -} - -bool serialize_sequence_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_int16_t(buffer, array, size); -} - -bool serialize_sequence_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_int32_t(buffer, array, size); -} - -bool serialize_sequence_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_int64_t(buffer, array, size); -} - -bool serialize_sequence_float(MicroBuffer* buffer, const float* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_float(buffer, array, size); -} - -bool serialize_sequence_double(MicroBuffer* buffer, const double* array, const uint32_t size) -{ - serialize_uint32_t(buffer, size); - return serialize_array_double(buffer, array, size); -} - -bool deserialize_sequence_char(MicroBuffer* buffer, char* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_char(buffer, array, *size); -} - -bool deserialize_sequence_bool(MicroBuffer* buffer, bool* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_bool(buffer, array, *size); -} - -bool deserialize_sequence_uint8_t(MicroBuffer* buffer, uint8_t* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_uint8_t(buffer, array, *size); -} - -bool deserialize_sequence_uint16_t(MicroBuffer* buffer, uint16_t* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_uint16_t(buffer, array, *size); -} - -bool deserialize_sequence_uint32_t(MicroBuffer* buffer, uint32_t* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_uint32_t(buffer, array, *size); -} - -bool deserialize_sequence_uint64_t(MicroBuffer* buffer, uint64_t* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_uint64_t(buffer, array, *size); -} - -bool deserialize_sequence_int16_t(MicroBuffer* buffer, int16_t* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_int16_t(buffer, array, *size); -} - -bool deserialize_sequence_int32_t(MicroBuffer* buffer, int32_t* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_int32_t(buffer, array, *size); -} - -bool deserialize_sequence_int64_t(MicroBuffer* buffer, int64_t* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_int64_t(buffer, array, *size); -} - -bool deserialize_sequence_float(MicroBuffer* buffer, float* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_float(buffer, array, *size); -} - -bool deserialize_sequence_double(MicroBuffer* buffer, double* array, uint32_t* size) -{ - deserialize_uint32_t(buffer, size); - return deserialize_array_double(buffer, array, *size); -} - -bool serialize_endian_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t value) -{ - return serialize_byte_2(buffer, endianness, &value); -} - -bool serialize_endian_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t value) -{ - return serialize_byte_4(buffer, endianness, &value); -} - -bool serialize_endian_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t value) -{ - return serialize_byte_8(buffer, endianness, &value); -} - -bool serialize_endian_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t value) -{ - return serialize_byte_2(buffer, endianness, (uint16_t*)&value); -} - -bool serialize_endian_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t value) -{ - return serialize_byte_4(buffer, endianness, (uint32_t*)&value); -} - -bool serialize_endian_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t value) -{ - return serialize_byte_8(buffer, endianness, (uint64_t*)&value); -} - -bool serialize_endian_float(MicroBuffer* buffer, const Endianness endianness, const float value) -{ - return serialize_byte_4(buffer, endianness, (uint32_t*)&value); -} - -bool serialize_endian_double(MicroBuffer* buffer, const Endianness endianness, const double value) -{ - return serialize_byte_8(buffer, endianness, (uint64_t*)&value); -} - -bool deserialize_endian_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* value) -{ - return deserialize_byte_2(buffer, endianness, value); -} - -bool deserialize_endian_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* value) -{ - return deserialize_byte_4(buffer, endianness, value); -} - -bool deserialize_endian_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* value) -{ - return deserialize_byte_8(buffer, endianness, value); -} - -bool deserialize_endian_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* value) -{ - return deserialize_byte_2(buffer, endianness, (uint16_t*)value); -} - -bool deserialize_endian_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* value) -{ - return deserialize_byte_4(buffer, endianness, (uint32_t*)value); -} - -bool deserialize_endian_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* value) -{ - return deserialize_byte_8(buffer, endianness, (uint64_t*)value); -} - -bool deserialize_endian_float(MicroBuffer* buffer, const Endianness endianness, float* value) -{ - return deserialize_byte_4(buffer, endianness, (uint32_t*)value); -} - -bool deserialize_endian_double(MicroBuffer* buffer, const Endianness endianness, double* value) -{ - return deserialize_byte_8(buffer, endianness, (uint64_t*)value); -} - -bool serialize_endian_array_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) -{ - return serialize_array_byte_2(buffer, endianness, array, size); -} - -bool serialize_endian_array_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) -{ - return serialize_array_byte_4(buffer, endianness, array, size); -} - -bool serialize_endian_array_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) -{ - return serialize_array_byte_8(buffer, endianness, array, size); -} - -bool serialize_endian_array_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t* array, const uint32_t size) -{ - return serialize_array_byte_2(buffer, endianness, (uint16_t*)array, size); -} - -bool serialize_endian_array_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t* array, const uint32_t size) -{ - return serialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); -} - -bool serialize_endian_array_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t* array, const uint32_t size) -{ - return serialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); -} - -bool serialize_endian_array_float(MicroBuffer* buffer, const Endianness endianness, const float* array, const uint32_t size) -{ - return serialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); -} - -bool serialize_endian_array_double(MicroBuffer* buffer, const Endianness endianness, const double* array, const uint32_t size) -{ - return serialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); -} - -bool deserialize_endian_array_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, const uint32_t size) -{ - return deserialize_array_byte_2(buffer, endianness, array, size); -} - -bool deserialize_endian_array_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, const uint32_t size) -{ - return deserialize_array_byte_4(buffer, endianness, array, size); -} - -bool deserialize_endian_array_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, const uint32_t size) -{ - return deserialize_array_byte_8(buffer, endianness, array, size); -} - -bool deserialize_endian_array_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* array, const uint32_t size) -{ - return deserialize_array_byte_2(buffer, endianness, (uint16_t*)array, size); -} - -bool deserialize_endian_array_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* array, const uint32_t size) -{ - return deserialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); -} - -bool deserialize_endian_array_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* array, const uint32_t size) -{ - return deserialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); -} - -bool deserialize_endian_array_float(MicroBuffer* buffer, const Endianness endianness, float* array, const uint32_t size) -{ - return deserialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); -} - -bool deserialize_endian_array_double(MicroBuffer* buffer, const Endianness endianness, double* array, const uint32_t size) -{ - return deserialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); -} - -bool serialize_endian_sequence_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_uint16_t(buffer, endianness, array, size); -} - -bool serialize_endian_sequence_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_uint32_t(buffer, endianness, array, size); -} - -bool serialize_endian_sequence_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_uint64_t(buffer, endianness, array, size); -} - -bool serialize_endian_sequence_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_int16_t(buffer, endianness, array, size); -} - -bool serialize_endian_sequence_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_int32_t(buffer, endianness, array, size); -} - -bool serialize_endian_sequence_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_int64_t(buffer, endianness, array, size); -} - -bool serialize_endian_sequence_float(MicroBuffer* buffer, const Endianness endianness, const float* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_float(buffer, endianness, array, size); -} - -bool serialize_endian_sequence_double(MicroBuffer* buffer, const Endianness endianness, const double* array, const uint32_t size) -{ - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_double(buffer, endianness, array, size); -} - -bool deserialize_endian_sequence_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_uint16_t(buffer, endianness, array, *size); -} - -bool deserialize_endian_sequence_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_uint32_t(buffer, endianness, array, *size); -} - -bool deserialize_endian_sequence_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_uint64_t(buffer, endianness, array, *size); -} - -bool deserialize_endian_sequence_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_int16_t(buffer, endianness, array, *size); -} - -bool deserialize_endian_sequence_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_int32_t(buffer, endianness, array, *size); -} - -bool deserialize_endian_sequence_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_int64_t(buffer, endianness, array, *size); -} - -bool deserialize_endian_sequence_float(MicroBuffer* buffer, const Endianness endianness, float* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_float(buffer, endianness, array, *size); -} - -bool deserialize_endian_sequence_double(MicroBuffer* buffer, const Endianness endianness, double* array, uint32_t* size) -{ - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_double(buffer, endianness, array, *size); -} - diff --git a/src/c/types/array.c b/src/c/types/array.c new file mode 100644 index 0000000..1a7f5a0 --- /dev/null +++ b/src/c/types/array.c @@ -0,0 +1,431 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include + +#include + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION IMPLEMENTATIONS +// ------------------------------------------------------------------- + +bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint8_t); + if(check_size(buffer, size)) + { + memcpy(buffer->iterator, array, size); + + buffer->iterator += size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool serialize_array_byte_2(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint16_t); + uint32_t array_size = size * data_size; + uint32_t alignment = get_alignment_offset(buffer, sizeof(uint16_t)); + + if(check_size(buffer, alignment + array_size)) + { + buffer->iterator += alignment; + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(buffer->iterator, array, array_size); + + buffer->iterator += array_size; + buffer->last_data_size = data_size; + } + else + { + for(uint32_t i = 0; i < size; i++) + { + serialize_byte_2(buffer, endianness, array + i); + } + } + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool serialize_array_byte_4(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint32_t); + uint32_t array_size = size * data_size; + uint32_t alignment = get_alignment_offset(buffer, sizeof(uint32_t)); + + if(check_size(buffer, alignment + array_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(buffer->iterator, array, array_size); + buffer->iterator += array_size; + buffer->last_data_size = data_size; + } + else + { + for(uint32_t i = 0; i < size; i++) + { + serialize_byte_4(buffer, endianness, array + i); + } + } + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool serialize_array_byte_8(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint64_t); + uint32_t array_size = size * data_size; + uint32_t alignment = get_alignment_offset(buffer, sizeof(uint64_t)); + + if(check_size(buffer, alignment + array_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(buffer->iterator, array, array_size); + buffer->iterator += array_size; + buffer->last_data_size = data_size; + } + else + { + for(uint32_t i = 0; i < size; i++) + { + serialize_byte_8(buffer, endianness, array + i); + } + } + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint8_t); + if(check_size(buffer, size)) + { + memcpy(array, buffer->iterator, size); + + buffer->iterator += size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_array_byte_2(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint16_t); + uint32_t array_size = size * data_size; + uint32_t alignment = get_alignment_offset(buffer, sizeof(uint16_t)); + + if(check_size(buffer, alignment + array_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(array, buffer->iterator, array_size); + buffer->iterator += array_size; + buffer->last_data_size = data_size; + } + else + { + for(uint32_t i = 0; i < size; i++) + { + deserialize_byte_2(buffer, endianness, array + i); + } + } + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_array_byte_4(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint32_t); + uint32_t array_size = size * data_size; + uint32_t alignment = get_alignment_offset(buffer, sizeof(uint32_t)); + + if(check_size(buffer, alignment + array_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(array, buffer->iterator, array_size); + buffer->iterator += array_size; + buffer->last_data_size = data_size; + } + else + { + for(uint32_t i = 0; i < size; i++) + { + deserialize_byte_4(buffer, endianness, array + i); + } + } + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_array_byte_8(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, const uint32_t size) +{ + uint32_t data_size = sizeof(uint64_t); + uint32_t array_size = size * data_size; + uint32_t alignment = get_alignment_offset(buffer, sizeof(uint64_t)); + + if(check_size(buffer, alignment + array_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(array, buffer->iterator, array_size); + buffer->iterator += array_size; + buffer->last_data_size = data_size; + } + else + { + for(uint32_t i = 0; i < size; i++) + { + deserialize_byte_8(buffer, endianness, array + i); + } + } + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION IMPLEMENTATIONS +// ------------------------------------------------------------------- + +bool serialize_array_char(MicroBuffer* buffer, const char* array, const uint32_t size) +{ + return serialize_array_byte_1(buffer, (uint8_t*)array, size); +} + +bool serialize_array_bool(MicroBuffer* buffer, const bool* array, const uint32_t size) +{ + return serialize_array_byte_1(buffer, (uint8_t*)array, size); +} + +bool serialize_array_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) +{ + return serialize_array_byte_1(buffer, array, size); +} + +bool serialize_array_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size) +{ + return serialize_array_byte_2(buffer, buffer->endianness, array, size); +} + +bool serialize_array_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size) +{ + return serialize_array_byte_4(buffer, buffer->endianness, array, size); +} + +bool serialize_array_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size) +{ + return serialize_array_byte_8(buffer, buffer->endianness, array, size); +} + +bool serialize_array_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size) +{ + return serialize_array_byte_1(buffer, (uint8_t*)array, size); +} + +bool serialize_array_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size) +{ + return serialize_array_byte_2(buffer, buffer->endianness, (uint16_t*)array, size); +} + +bool serialize_array_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size) +{ + return serialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); +} + +bool serialize_array_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size) +{ + return serialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); +} + +bool serialize_array_float(MicroBuffer* buffer, const float* array, const uint32_t size) +{ + return serialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); +} + +bool serialize_array_double(MicroBuffer* buffer, const double* array, const uint32_t size) +{ + return serialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); +} + +bool deserialize_array_char(MicroBuffer* buffer, char* array, const uint32_t size) +{ + return deserialize_array_byte_1(buffer, (uint8_t*)array, size); +} + +bool deserialize_array_bool(MicroBuffer* buffer, bool* array, const uint32_t size) +{ + return deserialize_array_byte_1(buffer, (uint8_t*)array, size); +} + +bool deserialize_array_uint8_t(MicroBuffer* buffer, uint8_t* array, const uint32_t size) +{ + return deserialize_array_byte_1(buffer, array, size); +} + +bool deserialize_array_uint16_t(MicroBuffer* buffer, uint16_t* array, const uint32_t size) +{ + return deserialize_array_byte_2(buffer, buffer->endianness, array, size); +} + +bool deserialize_array_uint32_t(MicroBuffer* buffer, uint32_t* array, const uint32_t size) +{ + return deserialize_array_byte_4(buffer, buffer->endianness, array, size); +} + +bool deserialize_array_uint64_t(MicroBuffer* buffer, uint64_t* array, const uint32_t size) +{ + return deserialize_array_byte_8(buffer, buffer->endianness, array, size); +} + +bool deserialize_array_int8_t(MicroBuffer* buffer, int8_t* array, const uint32_t size) +{ + return deserialize_array_byte_1(buffer, (uint8_t*)array, size); +} + +bool deserialize_array_int16_t(MicroBuffer* buffer, int16_t* array, const uint32_t size) +{ + return deserialize_array_byte_2(buffer, buffer->endianness, (uint16_t*)array, size); +} + +bool deserialize_array_int32_t(MicroBuffer* buffer, int32_t* array, const uint32_t size) +{ + return deserialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); +} + +bool deserialize_array_int64_t(MicroBuffer* buffer, int64_t* array, const uint32_t size) +{ + return deserialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); +} + +bool deserialize_array_float(MicroBuffer* buffer, float* array, const uint32_t size) +{ + return deserialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); +} + +bool deserialize_array_double(MicroBuffer* buffer, double* array, const uint32_t size) +{ + return deserialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); +} + +bool serialize_endian_array_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) +{ + return serialize_array_byte_2(buffer, endianness, array, size); +} + +bool serialize_endian_array_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) +{ + return serialize_array_byte_4(buffer, endianness, array, size); +} + +bool serialize_endian_array_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) +{ + return serialize_array_byte_8(buffer, endianness, array, size); +} + +bool serialize_endian_array_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t* array, const uint32_t size) +{ + return serialize_array_byte_2(buffer, endianness, (uint16_t*)array, size); +} + +bool serialize_endian_array_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t* array, const uint32_t size) +{ + return serialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); +} + +bool serialize_endian_array_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t* array, const uint32_t size) +{ + return serialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); +} + +bool serialize_endian_array_float(MicroBuffer* buffer, const Endianness endianness, const float* array, const uint32_t size) +{ + return serialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); +} + +bool serialize_endian_array_double(MicroBuffer* buffer, const Endianness endianness, const double* array, const uint32_t size) +{ + return serialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); +} + +bool deserialize_endian_array_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, const uint32_t size) +{ + return deserialize_array_byte_2(buffer, endianness, array, size); +} + +bool deserialize_endian_array_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, const uint32_t size) +{ + return deserialize_array_byte_4(buffer, endianness, array, size); +} + +bool deserialize_endian_array_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, const uint32_t size) +{ + return deserialize_array_byte_8(buffer, endianness, array, size); +} + +bool deserialize_endian_array_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* array, const uint32_t size) +{ + return deserialize_array_byte_2(buffer, endianness, (uint16_t*)array, size); +} + +bool deserialize_endian_array_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* array, const uint32_t size) +{ + return deserialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); +} + +bool deserialize_endian_array_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* array, const uint32_t size) +{ + return deserialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); +} + +bool deserialize_endian_array_float(MicroBuffer* buffer, const Endianness endianness, float* array, const uint32_t size) +{ + return deserialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); +} + +bool deserialize_endian_array_double(MicroBuffer* buffer, const Endianness endianness, double* array, const uint32_t size) +{ + return deserialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); +} + diff --git a/src/c/types/basics.c b/src/c/types/basics.c new file mode 100644 index 0000000..571268f --- /dev/null +++ b/src/c/types/basics.c @@ -0,0 +1,454 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#include + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte); +bool serialize_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* bytes); +bool serialize_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* bytes); +bool serialize_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* bytes); + +bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte); +bool deserialize_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* bytes); +bool deserialize_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* bytes); +bool deserialize_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* bytes); + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION IMPLEMENTATION +// ------------------------------------------------------------------- + +bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte) +{ + uint32_t data_size = sizeof(uint8_t); + if(check_size(buffer, data_size)) + { + *buffer->iterator = *byte; + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool serialize_byte_2(MicroBuffer* buffer, const Endianness endianness, const uint16_t* bytes) +{ + uint32_t data_size = sizeof(uint16_t); + uint32_t alignment = get_alignment_offset(buffer, data_size); + + if(check_size(buffer, alignment + data_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(buffer->iterator, bytes, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *buffer->iterator = *(bytes_pointer + 1); + *(buffer->iterator + 1) = *bytes_pointer; + } + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool serialize_byte_4(MicroBuffer* buffer, const Endianness endianness, const uint32_t* bytes) +{ + uint32_t data_size = sizeof(uint32_t); + uint32_t alignment = get_alignment_offset(buffer, data_size); + + if(check_size(buffer, alignment + data_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(buffer->iterator, bytes, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *buffer->iterator = *(bytes_pointer + 3); + *(buffer->iterator + 1) = *(bytes_pointer + 2); + *(buffer->iterator + 2) = *(bytes_pointer + 1); + *(buffer->iterator + 3) = *bytes_pointer; + } + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool serialize_byte_8(MicroBuffer* buffer, const Endianness endianness, const uint64_t* bytes) +{ + uint32_t data_size = sizeof(uint64_t); + uint32_t alignment = get_alignment_offset(buffer, data_size); + + if(check_size(buffer, alignment + data_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(buffer->iterator, bytes, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *buffer->iterator = *(bytes_pointer + 7); + *(buffer->iterator + 1) = *(bytes_pointer + 6); + *(buffer->iterator + 2) = *(bytes_pointer + 5); + *(buffer->iterator + 3) = *(bytes_pointer + 4); + *(buffer->iterator + 4) = *(bytes_pointer + 3); + *(buffer->iterator + 5) = *(bytes_pointer + 2); + *(buffer->iterator + 6) = *(bytes_pointer + 1); + *(buffer->iterator + 7) = *bytes_pointer; + } + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte) +{ + uint32_t data_size = sizeof(uint8_t); + if(check_size(buffer, data_size)) + { + *byte = *buffer->iterator; + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_byte_2(MicroBuffer* buffer, const Endianness endianness, uint16_t* bytes) +{ + uint32_t data_size = sizeof(uint16_t); + uint32_t alignment = get_alignment_offset(buffer, data_size); + + if(check_size(buffer, alignment + data_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(bytes, buffer->iterator, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *bytes_pointer = *(buffer->iterator + 1); + *(bytes_pointer + 1) = *buffer->iterator ; + } + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_byte_4(MicroBuffer* buffer, const Endianness endianness, uint32_t* bytes) +{ + uint32_t data_size = sizeof(uint32_t); + uint32_t alignment = get_alignment_offset(buffer, data_size); + + if(check_size(buffer, alignment + data_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(bytes, buffer->iterator, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *bytes_pointer = *(buffer->iterator + 3); + *(bytes_pointer + 1) = *(buffer->iterator + 2); + *(bytes_pointer + 2) = *(buffer->iterator + 1); + *(bytes_pointer + 3) = *buffer->iterator; + } + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +bool deserialize_byte_8(MicroBuffer* buffer, const Endianness endianness, uint64_t* bytes) +{ + uint32_t data_size = sizeof(uint64_t); + uint32_t alignment = get_alignment_offset(buffer, data_size); + + if(check_size(buffer, alignment + data_size)) + { + buffer->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(bytes, buffer->iterator, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *bytes_pointer = *(buffer->iterator + 7); + *(bytes_pointer + 1) = *(buffer->iterator + 6); + *(bytes_pointer + 2) = *(buffer->iterator + 5); + *(bytes_pointer + 3) = *(buffer->iterator + 4); + *(bytes_pointer + 4) = *(buffer->iterator + 3); + *(bytes_pointer + 5) = *(buffer->iterator + 2); + *(bytes_pointer + 6) = *(buffer->iterator + 1); + *(bytes_pointer + 7) = *buffer->iterator; + } + + buffer->iterator += data_size; + buffer->last_data_size = data_size; + return true; + } + buffer->error = BUFFER_NOK; + return false; +} + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION IMPLEMENTATION +// ------------------------------------------------------------------- + +bool serialize_char(MicroBuffer* buffer, const char value) +{ + return serialize_byte_1(buffer, (uint8_t*)&value); +} + +bool serialize_bool(MicroBuffer* buffer, const bool value) +{ + return serialize_byte_1(buffer, (uint8_t*)&value); +} + +bool serialize_uint8_t(MicroBuffer* buffer, const uint8_t value) +{ + return serialize_byte_1(buffer, &value); +} + +bool serialize_uint16_t(MicroBuffer* buffer, const uint16_t value) +{ + return serialize_byte_2(buffer, buffer->endianness, &value); +} + +bool serialize_uint32_t(MicroBuffer* buffer, const uint32_t value) +{ + return serialize_byte_4(buffer, buffer->endianness, &value); +} + +bool serialize_uint64_t(MicroBuffer* buffer, const uint64_t value) +{ + return serialize_byte_8(buffer, buffer->endianness, &value); +} + +bool serialize_int8_t(MicroBuffer* buffer, const int8_t value) +{ + return serialize_byte_1(buffer, (uint8_t*)&value); +} + +bool serialize_int16_t(MicroBuffer* buffer, const int16_t value) +{ + return serialize_byte_2(buffer, buffer->endianness, (uint16_t*)&value); +} + +bool serialize_int32_t(MicroBuffer* buffer, const int32_t value) +{ + return serialize_byte_4(buffer, buffer->endianness, (uint32_t*)&value); +} + +bool serialize_int64_t(MicroBuffer* buffer, const int64_t value) +{ + return serialize_byte_8(buffer, buffer->endianness, (uint64_t*)&value); +} + +bool serialize_float(MicroBuffer* buffer, const float value) +{ + return serialize_byte_4(buffer, buffer->endianness, (uint32_t*)&value); +} + +bool serialize_double(MicroBuffer* buffer, const double value) +{ + return serialize_byte_8(buffer, buffer->endianness, (uint64_t*)&value); +} + +bool deserialize_char(MicroBuffer* buffer, char* value) +{ + return deserialize_byte_1(buffer, (uint8_t*)value); +} + +bool deserialize_bool(MicroBuffer* buffer, bool* value) +{ + return deserialize_byte_1(buffer, (uint8_t*)value); +} + +bool deserialize_uint8_t(MicroBuffer* buffer, uint8_t* value) +{ + return deserialize_byte_1(buffer, value); +} + +bool deserialize_uint16_t(MicroBuffer* buffer, uint16_t* value) +{ + return deserialize_byte_2(buffer, buffer->endianness, value); +} + +bool deserialize_uint32_t(MicroBuffer* buffer, uint32_t* value) +{ + return deserialize_byte_4(buffer, buffer->endianness, value); +} + +bool deserialize_uint64_t(MicroBuffer* buffer, uint64_t* value) +{ + return deserialize_byte_8(buffer, buffer->endianness, value); +} + +bool deserialize_int8_t(MicroBuffer* buffer, int8_t* value) +{ + return deserialize_byte_1(buffer, (uint8_t*)value); +} + +bool deserialize_int16_t(MicroBuffer* buffer, int16_t* value) +{ + return deserialize_byte_2(buffer, buffer->endianness, (uint16_t*)value); +} + +bool deserialize_int32_t(MicroBuffer* buffer, int32_t* value) +{ + return deserialize_byte_4(buffer, buffer->endianness, (uint32_t*)value); +} + +bool deserialize_int64_t(MicroBuffer* buffer, int64_t* value) +{ + return deserialize_byte_8(buffer, buffer->endianness, (uint64_t*)value); +} + +bool deserialize_float(MicroBuffer* buffer, float* value) +{ + return deserialize_byte_4(buffer, buffer->endianness, (uint32_t*)value); +} + +bool deserialize_double(MicroBuffer* buffer, double* value) +{ + return deserialize_byte_8(buffer, buffer->endianness, (uint64_t*)value); +} + +bool serialize_endian_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t value) +{ + return serialize_byte_2(buffer, endianness, &value); +} + +bool serialize_endian_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t value) +{ + return serialize_byte_4(buffer, endianness, &value); +} + +bool serialize_endian_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t value) +{ + return serialize_byte_8(buffer, endianness, &value); +} + +bool serialize_endian_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t value) +{ + return serialize_byte_2(buffer, endianness, (uint16_t*)&value); +} + +bool serialize_endian_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t value) +{ + return serialize_byte_4(buffer, endianness, (uint32_t*)&value); +} + +bool serialize_endian_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t value) +{ + return serialize_byte_8(buffer, endianness, (uint64_t*)&value); +} + +bool serialize_endian_float(MicroBuffer* buffer, const Endianness endianness, const float value) +{ + return serialize_byte_4(buffer, endianness, (uint32_t*)&value); +} + +bool serialize_endian_double(MicroBuffer* buffer, const Endianness endianness, const double value) +{ + return serialize_byte_8(buffer, endianness, (uint64_t*)&value); +} + +bool deserialize_endian_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* value) +{ + return deserialize_byte_2(buffer, endianness, value); +} + +bool deserialize_endian_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* value) +{ + return deserialize_byte_4(buffer, endianness, value); +} + +bool deserialize_endian_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* value) +{ + return deserialize_byte_8(buffer, endianness, value); +} + +bool deserialize_endian_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* value) +{ + return deserialize_byte_2(buffer, endianness, (uint16_t*)value); +} + +bool deserialize_endian_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* value) +{ + return deserialize_byte_4(buffer, endianness, (uint32_t*)value); +} + +bool deserialize_endian_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* value) +{ + return deserialize_byte_8(buffer, endianness, (uint64_t*)value); +} + +bool deserialize_endian_float(MicroBuffer* buffer, const Endianness endianness, float* value) +{ + return deserialize_byte_4(buffer, endianness, (uint32_t*)value); +} + +bool deserialize_endian_double(MicroBuffer* buffer, const Endianness endianness, double* value) +{ + return deserialize_byte_8(buffer, endianness, (uint64_t*)value); +} + diff --git a/src/c/types/sequence.c b/src/c/types/sequence.c new file mode 100644 index 0000000..ca1bd34 --- /dev/null +++ b/src/c/types/sequence.c @@ -0,0 +1,262 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include +#include + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION IMPLEMENTATIONS +// ------------------------------------------------------------------- + +bool serialize_sequence_char(MicroBuffer* buffer, const char* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_char(buffer, array, size); +} + +bool serialize_sequence_bool(MicroBuffer* buffer, const bool* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_bool(buffer, array, size); +} + +bool serialize_sequence_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_uint8_t(buffer, array, size); +} + +bool serialize_sequence_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_uint16_t(buffer, array, size); +} + +bool serialize_sequence_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_uint32_t(buffer, array, size); +} + +bool serialize_sequence_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_uint64_t(buffer, array, size); +} + +bool serialize_sequence_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_int8_t(buffer, array, size); +} + +bool serialize_sequence_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_int16_t(buffer, array, size); +} + +bool serialize_sequence_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_int32_t(buffer, array, size); +} + +bool serialize_sequence_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_int64_t(buffer, array, size); +} + +bool serialize_sequence_float(MicroBuffer* buffer, const float* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_float(buffer, array, size); +} + +bool serialize_sequence_double(MicroBuffer* buffer, const double* array, const uint32_t size) +{ + serialize_uint32_t(buffer, size); + return serialize_array_double(buffer, array, size); +} + +bool deserialize_sequence_char(MicroBuffer* buffer, char* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_char(buffer, array, *size); +} + +bool deserialize_sequence_bool(MicroBuffer* buffer, bool* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_bool(buffer, array, *size); +} + +bool deserialize_sequence_uint8_t(MicroBuffer* buffer, uint8_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_uint8_t(buffer, array, *size); +} + +bool deserialize_sequence_uint16_t(MicroBuffer* buffer, uint16_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_uint16_t(buffer, array, *size); +} + +bool deserialize_sequence_uint32_t(MicroBuffer* buffer, uint32_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_uint32_t(buffer, array, *size); +} + +bool deserialize_sequence_uint64_t(MicroBuffer* buffer, uint64_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_uint64_t(buffer, array, *size); +} + +bool deserialize_sequence_int8_t(MicroBuffer* buffer, int8_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_int8_t(buffer, array, *size); +} + +bool deserialize_sequence_int16_t(MicroBuffer* buffer, int16_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_int16_t(buffer, array, *size); +} + +bool deserialize_sequence_int32_t(MicroBuffer* buffer, int32_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_int32_t(buffer, array, *size); +} + +bool deserialize_sequence_int64_t(MicroBuffer* buffer, int64_t* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_int64_t(buffer, array, *size); +} + +bool deserialize_sequence_float(MicroBuffer* buffer, float* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_float(buffer, array, *size); +} + +bool deserialize_sequence_double(MicroBuffer* buffer, double* array, uint32_t* size) +{ + deserialize_uint32_t(buffer, size); + return deserialize_array_double(buffer, array, *size); +} + +bool serialize_endian_sequence_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_uint16_t(buffer, endianness, array, size); +} + +bool serialize_endian_sequence_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_uint32_t(buffer, endianness, array, size); +} + +bool serialize_endian_sequence_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_uint64_t(buffer, endianness, array, size); +} + +bool serialize_endian_sequence_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_int16_t(buffer, endianness, array, size); +} + +bool serialize_endian_sequence_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_int32_t(buffer, endianness, array, size); +} + +bool serialize_endian_sequence_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_int64_t(buffer, endianness, array, size); +} + +bool serialize_endian_sequence_float(MicroBuffer* buffer, const Endianness endianness, const float* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_float(buffer, endianness, array, size); +} + +bool serialize_endian_sequence_double(MicroBuffer* buffer, const Endianness endianness, const double* array, const uint32_t size) +{ + serialize_endian_uint32_t(buffer, endianness, size); + return serialize_endian_array_double(buffer, endianness, array, size); +} + +bool deserialize_endian_sequence_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_uint16_t(buffer, endianness, array, *size); +} + +bool deserialize_endian_sequence_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_uint32_t(buffer, endianness, array, *size); +} + +bool deserialize_endian_sequence_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_uint64_t(buffer, endianness, array, *size); +} + +bool deserialize_endian_sequence_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_int16_t(buffer, endianness, array, *size); +} + +bool deserialize_endian_sequence_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_int32_t(buffer, endianness, array, *size); +} + +bool deserialize_endian_sequence_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_int64_t(buffer, endianness, array, *size); +} + +bool deserialize_endian_sequence_float(MicroBuffer* buffer, const Endianness endianness, float* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_float(buffer, endianness, array, *size); +} + +bool deserialize_endian_sequence_double(MicroBuffer* buffer, const Endianness endianness, double* array, uint32_t* size) +{ + deserialize_endian_uint32_t(buffer, endianness, size); + return deserialize_endian_array_double(buffer, endianness, array, *size); +} + diff --git a/test/BufferError.cpp b/test/BufferError.cpp index 3af00f9..bd1cfc5 100644 --- a/test/BufferError.cpp +++ b/test/BufferError.cpp @@ -59,6 +59,25 @@ TEST(buffer_error, CharKO) EXPECT_EQ(reader.error, BUFFER_NOK); } +TEST(buffer_error, Int8KO) +{ + int8_t input = 0x09; + int8_t output; + uint8_t *buffer = NULL; + + MicroBuffer writer; + MicroBuffer reader; + + init_micro_buffer(&writer, buffer, BUFFER_LENGTH_KO); + init_micro_buffer(&reader, buffer, BUFFER_LENGTH_KO); + + EXPECT_FALSE(serialize_int8_t(&writer, input)); + EXPECT_FALSE(deserialize_int8_t(&reader, &output)); + + EXPECT_EQ(writer.error, BUFFER_NOK); + EXPECT_EQ(reader.error, BUFFER_NOK); +} + TEST(buffer_error, Uint8KO) { uint8_t input = 0x09; @@ -268,6 +287,25 @@ TEST(buffer_error, ArrayCharKO) EXPECT_EQ(reader.error, BUFFER_NOK); } +TEST(buffer_error, ArrayInt8KO) +{ + int8_t input[ARRAY_LENGTH] = {0x09}; + int8_t output[ARRAY_LENGTH]; + uint8_t buffer[sizeof(output) / 2] = {0}; + + MicroBuffer writer; + MicroBuffer reader; + + init_micro_buffer(&writer, buffer, sizeof(output) / 2); + init_micro_buffer(&reader, buffer, sizeof(output) / 2); + + EXPECT_FALSE(serialize_array_int8_t(&writer, input, ARRAY_LENGTH)); + EXPECT_FALSE(deserialize_array_int8_t(&reader, output, ARRAY_LENGTH)); + + EXPECT_EQ(writer.error, BUFFER_NOK); + EXPECT_EQ(reader.error, BUFFER_NOK); +} + TEST(buffer_error, ArrayUint8KO) { uint8_t input[ARRAY_LENGTH] = {0x09}; diff --git a/test/SerializationDeserialization.cpp b/test/SerializationDeserialization.cpp index 044c28c..664a183 100644 --- a/test/SerializationDeserialization.cpp +++ b/test/SerializationDeserialization.cpp @@ -64,6 +64,27 @@ TEST(serialization_deserialization, Char) EXPECT_EQ(input, output); } +TEST(serialization_deserialization, Int8) +{ + int8_t input = 0x09; + int8_t output; + uint8_t buffer[BUFFER_LENGTH] = {0}; + + MicroBuffer writer; + MicroBuffer reader; + + init_micro_buffer(&writer, buffer, BUFFER_LENGTH); + init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + + EXPECT_TRUE(serialize_int8_t(&writer, input)); + EXPECT_TRUE(deserialize_int8_t(&reader, &output)); + + EXPECT_EQ(writer.error, BUFFER_OK); + EXPECT_EQ(reader.error, BUFFER_OK); + + EXPECT_EQ(input, output); +} + TEST(serialization_deserialization, Uint8) { uint8_t input = 0x09; @@ -303,6 +324,31 @@ TEST(serialization_deserialization, ArrayChar) } } +TEST(serialization_deserialization, ArrayInt8) +{ + int8_t input[ARRAY_LENGTH]; + std::fill_n(input, ARRAY_LENGTH, 0x09); + int8_t output[ARRAY_LENGTH]; + uint8_t buffer[BUFFER_LENGTH] = {0}; + + MicroBuffer writer; + MicroBuffer reader; + + init_micro_buffer(&writer, buffer, BUFFER_LENGTH); + init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + + EXPECT_TRUE(serialize_array_int8_t(&writer, input, ARRAY_LENGTH)); + EXPECT_TRUE(deserialize_array_int8_t(&reader, output, ARRAY_LENGTH)); + + EXPECT_EQ(writer.error, BUFFER_OK); + EXPECT_EQ(reader.error, BUFFER_OK); + + for (uint32_t i = 0; i < ARRAY_LENGTH; i++) + { + EXPECT_EQ(input[i], output[i]); + } +} + TEST(serialization_deserialization, ArrayUint8) { uint8_t input[ARRAY_LENGTH]; @@ -584,6 +630,34 @@ TEST(serialization_deserialization, SequenceBool) } } +TEST(serialization_deserialization, SequenceInt8) +{ + uint32_t sequence_size = ARRAY_LENGTH / 2; + int8_t input[ARRAY_LENGTH]; + std::fill_n(input, sequence_size, 0x09); + int8_t output[ARRAY_LENGTH]; + uint32_t outputSize = 0; + uint8_t buffer[BUFFER_LENGTH] = {0}; + + MicroBuffer writer; + MicroBuffer reader; + + init_micro_buffer(&writer, buffer, BUFFER_LENGTH); + init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + + EXPECT_TRUE(serialize_sequence_int8_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_int8_t(&reader, output, &outputSize)); + + EXPECT_EQ(writer.error, BUFFER_OK); + EXPECT_EQ(reader.error, BUFFER_OK); + + EXPECT_EQ(sequence_size, outputSize); + for (uint32_t i = 0; i < sequence_size; i++) + { + EXPECT_EQ(input[i], output[i]); + } +} + TEST(serialization_deserialization, SequenceUint8) { uint32_t sequence_size = ARRAY_LENGTH / 2; From 9a38ba7b5617ff85a23d4cfb2b10dce8b5345c6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Enrique=20Mu=C3=B1oz=20Mart=C3=ADn?= Date: Fri, 21 Sep 2018 08:16:16 +0200 Subject: [PATCH 2/9] Added native string serialization (#8) * Refs #3327. Added string serialization * Added security and refactor/added tests (#9) * Refs #3390. Modify error checker, refactor project layout. Refactor serialization test. Refs #3389 Fix issue: now a serialization will be perform after any serialization error. * Template tests * Refs #3397. Refactored and improved tests. * Refs #3397 #3389. API security changes. Added endianness tests. * Added data_size checks. Added Sequence overflow test. * Refs #3397. Change var name max_size -> array_size * Refs #3397. Added functions to manage error/endianness * Refs #3397. Moved check_buffer function to a common file * Refs #3397. Modify array_capacity parameter position. * Refs #3397. Refactor define names in test. * Updated README with the new types. * Refs #3397. Removed MicroState. Added a copy MicroBuffer function. * Refs #3397. Updated README. Removed set_valid function. * Refs #3397. Added error description to README.md --- CMakeLists.txt | 4 +- README.md | 47 +- include/microcdr/common.h | 40 +- include/microcdr/microcdr.h | 20 +- include/microcdr/types/array.h | 97 +- include/microcdr/types/basic.h | 76 ++ include/microcdr/types/basics.h | 95 -- include/microcdr/types/sequence.h | 92 +- include/microcdr/types/string.h | 41 + src/c/common.c | 104 ++- src/c/common_internals.h | 33 + src/c/microcdr.c | 91 -- src/c/types/array.c | 315 +++---- src/c/types/array_internals.h | 42 + src/c/types/basic.c | 427 +++++++++ src/c/types/basic_internals.h | 41 + src/c/types/basics.c | 454 --------- src/c/types/sequence.c | 311 ++++--- src/c/types/sequence_internals.h | 43 + src/c/types/string.c | 45 + test/Alignment.cpp | 548 +---------- test/BufferError.cpp | 479 ---------- test/CMakeLists.txt | 17 +- test/FullBuffer.cpp | 113 +++ test/SequenceOverflow.cpp | 76 ++ test/SerializationDeserialization.cpp | 911 ------------------- test/endianness/ArrayEndianness.cpp | 130 +++ test/endianness/BasicEndianness.cpp | 122 +++ test/endianness/SequenceEndianness.cpp | 179 ++++ test/serialization/ArraySerialization.cpp | 75 ++ test/serialization/ArraySerialization.hpp | 179 ++++ test/serialization/BasicSerialization.cpp | 76 ++ test/serialization/BasicSerialization.hpp | 200 ++++ test/serialization/SequenceSerialization.cpp | 76 ++ test/serialization/SequenceSerialization.hpp | 190 ++++ test/serialization/StringSerialization.cpp | 21 + test/serialization/StringSerialization.hpp | 45 + 37 files changed, 2876 insertions(+), 2979 deletions(-) create mode 100644 include/microcdr/types/basic.h delete mode 100644 include/microcdr/types/basics.h create mode 100644 src/c/common_internals.h delete mode 100644 src/c/microcdr.c create mode 100644 src/c/types/array_internals.h create mode 100644 src/c/types/basic.c create mode 100644 src/c/types/basic_internals.h delete mode 100644 src/c/types/basics.c create mode 100644 src/c/types/sequence_internals.h create mode 100644 src/c/types/string.c delete mode 100644 test/BufferError.cpp create mode 100644 test/FullBuffer.cpp create mode 100644 test/SequenceOverflow.cpp delete mode 100644 test/SerializationDeserialization.cpp create mode 100644 test/endianness/ArrayEndianness.cpp create mode 100644 test/endianness/BasicEndianness.cpp create mode 100644 test/endianness/SequenceEndianness.cpp create mode 100644 test/serialization/ArraySerialization.cpp create mode 100644 test/serialization/ArraySerialization.hpp create mode 100644 test/serialization/BasicSerialization.cpp create mode 100644 test/serialization/BasicSerialization.hpp create mode 100644 test/serialization/SequenceSerialization.cpp create mode 100644 test/serialization/SequenceSerialization.hpp create mode 100644 test/serialization/StringSerialization.cpp create mode 100644 test/serialization/StringSerialization.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 98a866c..33115dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,8 +70,8 @@ endif() # Library add_library(${PROJECT_NAME} src/c/common.c - src/c/microcdr.c - src/c/types/basics.c + src/c/types/basic.c + src/c/types/string.c src/c/types/array.c src/c/types/sequence.c ) diff --git a/README.md b/README.md index d822a6e..a09fafd 100644 --- a/README.md +++ b/README.md @@ -60,12 +60,21 @@ Initially, the serialization/deserialization starts at the beginning of the buff --- +```c +void copy_micro_buffer (MicroBuffer* mb_dest, const MicroBuffer* mb_source); +``` +Copy a `MicroBuffer` structure data to another `MicroBuffer` structure. +- `mb_dest`: the destination `MicroBuffer` struct. +- `mb_source`: the origin initialized `MicroBuffer` struct. + +--- + ```c void reset_micro_buffer (MicroBuffer* mb); void reset_micro_buffer_offset(MicroBuffer* mb, const uint32_t offset); ``` Reset the `MicroBuffer` as the same state that it was created. -- `mb`: the `MicroBuffer` struct +- `mb`: the `MicroBuffer` struct. - `offset`: where the serialization/deserialization will start. Initially, the serialization/deserialization starts at the beginning of the buffer. @@ -115,6 +124,23 @@ Returns the remaining size for the serializing/deserializing. - `mb`: the `MicroBuffer` struct +--- + +```c +Endianness micro_buffer_endianness(const MicroBuffer* mb); +``` +Returns the serialization/deserialization endianness. +- `mb`: the `MicroBuffer` struct + +--- + +```c +bool micro_buffer_error(const MicroBuffer* mb); +``` +Returns the status error of the `MicroBuffer`. +- `mb`: the `MicroBuffer` struct + + ### Serialization/deserialization functions Adding to this, there is a big set of functions for deserialize and deserialize different kind of types: - Basics: `bool`, `char`, `int8_t`, `uint8_t`,`int16_t`, `uint16_t`,`int32_t`, `uint32_t`,`int64_t`, `uint64_t`,`float`, `double`. @@ -130,8 +156,19 @@ The default endianness serialization can be choosen by setting the `endianness` Also, there are a functions that allow to force an endianness in their serialization/deserialization. These functions contains the name `endiannness` in their signature. +### Error +All serialization/deserialization functions return a boolean indicating the result of their operations. +When a serialization/deserialization could not be possible (the type can not be serialized, or the capacity of the destination buffer is not enough), +an status error is setted into the `MicroBuffer`. +If a `MicroBuffer` has an error state, the next serialization/deserialization operations will not works and will return `false` in their execution. +A buffer marked with an error can be used, but any serialization/deserialization operation over it will not produce any effect. + +If is kwown that an operation can fails over a `MicroBuffer`, and its necessary to continue with the serialization/deserialization if it happens, +the `MicroBuffer` state can be saved using the `copy_micro_buffer` function. +After the application of the wrong serialization/deserialization, only the `MicroBuffer` that performed the operation will have a dirty state. + ## Serialization/deserialization list -The avaialble modes of serialization/deserializations in *MicroCDR* are shown in the following table. +The available modes of serialization/deserializations in *MicroCDR* are shown in the following table. | Type | Endianness | @@ -156,6 +193,8 @@ The avaialble modes of serialization/deserializations in *MicroCDR* are shown in | float | endianness | | double | | | double | endianness | +| string | | +| string | endianness | | bool array | | | char array | | | int8 array | | @@ -177,9 +216,13 @@ The avaialble modes of serialization/deserializations in *MicroCDR* are shown in | double array | | | double array | endianness | | bool sequence | | +| bool sequence | endianness | | char sequence | | +| char sequence | endianness | | int8 sequence | | +| int8 sequence | endianness | | uint8 sequence | | +| uint8 sequence | endianness | | int16 sequence | | | int16 sequence | endianness | | uint16 sequence | | diff --git a/include/microcdr/common.h b/include/microcdr/common.h index a16d079..df28187 100644 --- a/include/microcdr/common.h +++ b/include/microcdr/common.h @@ -24,6 +24,7 @@ extern "C" { #include #include +#include typedef enum Endianness { BIG_ENDIANNESS, @@ -31,21 +32,6 @@ typedef enum Endianness { } Endianness; -typedef enum BufferError { - BUFFER_OK, - BUFFER_NOK - -} BufferError; - -typedef struct MicroState -{ - uint8_t *position; - uint32_t last_data_size; - - BufferError error; - -} MicroState; - typedef struct MicroBuffer { uint8_t *init; @@ -55,14 +41,32 @@ typedef struct MicroBuffer Endianness endianness; uint32_t last_data_size; - BufferError error; + bool error; } MicroBuffer; microcdr_DllAPI extern const Endianness MACHINE_ENDIANNESS; -uint32_t get_alignment_offset(MicroBuffer* buffer, const uint32_t data_size); -bool check_size(MicroBuffer* buffer, const uint32_t bytes); +// ------------------------------------------------ +// Main library functions +// ------------------------------------------------ +microcdr_DllAPI void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); +microcdr_DllAPI void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +microcdr_DllAPI void init_micro_buffer_offset_endian (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, Endianness endianness); +microcdr_DllAPI void copy_micro_buffer (MicroBuffer* mb_dest, const MicroBuffer* mb_source); + +microcdr_DllAPI void reset_micro_buffer (MicroBuffer* mb); +microcdr_DllAPI void reset_micro_buffer_offset (MicroBuffer* mb, const uint32_t offset); + +microcdr_DllAPI void align_to (MicroBuffer* mb, const uint32_t alignment); +microcdr_DllAPI uint32_t get_alignment (uint32_t buffer_position, const uint32_t data_size); //change name +microcdr_DllAPI uint32_t get_alignment_offset(const MicroBuffer* mb, const uint32_t data_size); //change name + +microcdr_DllAPI size_t micro_buffer_size (const MicroBuffer* mb); +microcdr_DllAPI size_t micro_buffer_length (const MicroBuffer* mb); +microcdr_DllAPI size_t micro_buffer_remaining (const MicroBuffer* mb); +microcdr_DllAPI Endianness micro_buffer_endianness(const MicroBuffer* mb); +microcdr_DllAPI bool micro_buffer_has_error (const MicroBuffer* mb); #ifdef __cplusplus } diff --git a/include/microcdr/microcdr.h b/include/microcdr/microcdr.h index cc8406f..ea70a68 100644 --- a/include/microcdr/microcdr.h +++ b/include/microcdr/microcdr.h @@ -20,27 +20,11 @@ extern "C" { #endif #include -#include +#include +#include #include #include -#include - -microcdr_DllAPI void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); -microcdr_DllAPI void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); -microcdr_DllAPI void reset_micro_buffer (MicroBuffer* mb); -microcdr_DllAPI void reset_micro_buffer_offset(MicroBuffer* mb, const uint32_t offset); - -microcdr_DllAPI MicroState get_micro_state(MicroBuffer* mb); -microcdr_DllAPI void restore_micro_state (MicroBuffer* mb, const MicroState state); - -microcdr_DllAPI void align_to(MicroBuffer* mb, const uint32_t alignment); -microcdr_DllAPI uint32_t get_alignment(uint32_t buffer_position, const uint32_t data_size); - -microcdr_DllAPI size_t micro_buffer_size(const MicroBuffer* mb); -microcdr_DllAPI size_t micro_buffer_length(const MicroBuffer* mb); -microcdr_DllAPI size_t micro_buffer_remaining(const MicroBuffer* mb); - #ifdef __cplusplus } #endif diff --git a/include/microcdr/types/array.h b/include/microcdr/types/array.h index 951737b..043015e 100644 --- a/include/microcdr/types/array.h +++ b/include/microcdr/types/array.h @@ -21,70 +21,53 @@ extern "C" { #include -#include -#include - // ------------------------------------------------------------------- // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -microcdr_DllAPI bool serialize_array_char(MicroBuffer* buffer, const char* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_bool(MicroBuffer* buffer, const bool* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_float(MicroBuffer* buffer, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_double(MicroBuffer* buffer, const double* array, const uint32_t size); - -microcdr_DllAPI bool deserialize_array_char(MicroBuffer* buffer, char* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_bool(MicroBuffer* buffer, bool* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint8_t(MicroBuffer* buffer, uint8_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint16_t(MicroBuffer* buffer, uint16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint32_t(MicroBuffer* buffer, uint32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint64_t(MicroBuffer* buffer, uint64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int8_t(MicroBuffer* buffer, int8_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int16_t(MicroBuffer* buffer, int16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int32_t(MicroBuffer* buffer, int32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int64_t(MicroBuffer* buffer, int64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_float(MicroBuffer* buffer, float* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_double(MicroBuffer* buffer, double* array, const uint32_t size); - -microcdr_DllAPI bool serialize_endian_array_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_float(MicroBuffer* buffer, Endianness endianness, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_double(MicroBuffer* buffer, Endianness endianness, const double* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_char(MicroBuffer* mb, const char* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_bool(MicroBuffer* mb, const bool* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_float(MicroBuffer* mb, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_array_double(MicroBuffer* mb, const double* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_float(MicroBuffer* buffer, Endianness endianness, float* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_double(MicroBuffer* buffer, Endianness endianness, double* array, const uint32_t size); - -// ------------------------------------------------------------------- -// INTERNAL SERIALIZATION FUNCTIONS -// ------------------------------------------------------------------- +microcdr_DllAPI bool deserialize_array_char(MicroBuffer* mb, char* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_bool(MicroBuffer* mb, bool* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_float(MicroBuffer* mb, float* array, const uint32_t size); +microcdr_DllAPI bool deserialize_array_double(MicroBuffer* mb, double* array, const uint32_t size); -bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); -bool serialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -bool serialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -bool serialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_array_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); -bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size); -bool deserialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); -bool deserialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); -bool deserialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_array_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t size); #ifdef __cplusplus } diff --git a/include/microcdr/types/basic.h b/include/microcdr/types/basic.h new file mode 100644 index 0000000..5bd6478 --- /dev/null +++ b/include/microcdr/types/basic.h @@ -0,0 +1,76 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _MICROCDR_TYPES_BASIC_H_ +#define _MICROCDR_TYPES_BASIC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +microcdr_DllAPI bool serialize_char(MicroBuffer* mb, const char value); +microcdr_DllAPI bool serialize_bool(MicroBuffer* mb, const bool value); +microcdr_DllAPI bool serialize_uint8_t(MicroBuffer* mb, const uint8_t value); +microcdr_DllAPI bool serialize_uint16_t(MicroBuffer* mb, const uint16_t value); +microcdr_DllAPI bool serialize_uint32_t(MicroBuffer* mb, const uint32_t value); +microcdr_DllAPI bool serialize_uint64_t(MicroBuffer* mb, const uint64_t value); +microcdr_DllAPI bool serialize_int8_t(MicroBuffer* mb, const int8_t value); +microcdr_DllAPI bool serialize_int16_t(MicroBuffer* mb, const int16_t value); +microcdr_DllAPI bool serialize_int32_t(MicroBuffer* mb, const int32_t value); +microcdr_DllAPI bool serialize_int64_t(MicroBuffer* mb, const int64_t value); +microcdr_DllAPI bool serialize_float(MicroBuffer* mb, const float value); +microcdr_DllAPI bool serialize_double(MicroBuffer* mb, const double value); + +microcdr_DllAPI bool deserialize_char(MicroBuffer* mb, char* value); +microcdr_DllAPI bool deserialize_bool(MicroBuffer* mb, bool* value); +microcdr_DllAPI bool deserialize_uint8_t(MicroBuffer* mb, uint8_t* value); +microcdr_DllAPI bool deserialize_uint16_t(MicroBuffer* mb, uint16_t* value); +microcdr_DllAPI bool deserialize_uint32_t(MicroBuffer* mb, uint32_t* value); +microcdr_DllAPI bool deserialize_uint64_t(MicroBuffer* mb, uint64_t* value); +microcdr_DllAPI bool deserialize_int8_t(MicroBuffer* mb, int8_t* value); +microcdr_DllAPI bool deserialize_int16_t(MicroBuffer* mb, int16_t* value); +microcdr_DllAPI bool deserialize_int32_t(MicroBuffer* mb, int32_t* value); +microcdr_DllAPI bool deserialize_int64_t(MicroBuffer* mb, int64_t* value); +microcdr_DllAPI bool deserialize_float(MicroBuffer* mb, float* value); +microcdr_DllAPI bool deserialize_double(MicroBuffer* mb, double* value); + +microcdr_DllAPI bool serialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t value); +microcdr_DllAPI bool serialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t value); +microcdr_DllAPI bool serialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t value); +microcdr_DllAPI bool serialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t value); +microcdr_DllAPI bool serialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t value); +microcdr_DllAPI bool serialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t value); +microcdr_DllAPI bool serialize_endian_float(MicroBuffer* mb, Endianness endianness, const float value); +microcdr_DllAPI bool serialize_endian_double(MicroBuffer* mb, Endianness endianness, const double value); + +microcdr_DllAPI bool deserialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* value); +microcdr_DllAPI bool deserialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t *value); +microcdr_DllAPI bool deserialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* value); +microcdr_DllAPI bool deserialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* value); +microcdr_DllAPI bool deserialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* value); +microcdr_DllAPI bool deserialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* value); +microcdr_DllAPI bool deserialize_endian_float(MicroBuffer* mb, Endianness endianness, float* value); +microcdr_DllAPI bool deserialize_endian_double(MicroBuffer* mb, Endianness endianness, double* value); + +#ifdef __cplusplus +} +#endif + +#endif //_MICROCDR_TYPES_BASIC_H_ diff --git a/include/microcdr/types/basics.h b/include/microcdr/types/basics.h deleted file mode 100644 index 9f97edd..0000000 --- a/include/microcdr/types/basics.h +++ /dev/null @@ -1,95 +0,0 @@ - -// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef _MICROCDR_TYPES_BASICS_H_ -#define _MICROCDR_TYPES_BASICS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#include -#include - -// ------------------------------------------------------------------- -// PUBLIC SERIALIZATION FUNCTIONS -// ------------------------------------------------------------------- - -microcdr_DllAPI bool serialize_char(MicroBuffer* buffer, const char value); -microcdr_DllAPI bool serialize_bool(MicroBuffer* buffer, const bool value); -microcdr_DllAPI bool serialize_uint8_t(MicroBuffer* buffer, const uint8_t value); -microcdr_DllAPI bool serialize_uint16_t(MicroBuffer* buffer, const uint16_t value); -microcdr_DllAPI bool serialize_uint32_t(MicroBuffer* buffer, const uint32_t value); -microcdr_DllAPI bool serialize_uint64_t(MicroBuffer* buffer, const uint64_t value); -microcdr_DllAPI bool serialize_int8_t(MicroBuffer* buffer, const int8_t value); -microcdr_DllAPI bool serialize_int16_t(MicroBuffer* buffer, const int16_t value); -microcdr_DllAPI bool serialize_int32_t(MicroBuffer* buffer, const int32_t value); -microcdr_DllAPI bool serialize_int64_t(MicroBuffer* buffer, const int64_t value); -microcdr_DllAPI bool serialize_float(MicroBuffer* buffer, const float value); -microcdr_DllAPI bool serialize_double(MicroBuffer* buffer, const double value); - -microcdr_DllAPI bool deserialize_char(MicroBuffer* buffer, char* value); -microcdr_DllAPI bool deserialize_bool(MicroBuffer* buffer, bool* value); -microcdr_DllAPI bool deserialize_uint8_t(MicroBuffer* buffer, uint8_t* value); -microcdr_DllAPI bool deserialize_uint16_t(MicroBuffer* buffer, uint16_t* value); -microcdr_DllAPI bool deserialize_uint32_t(MicroBuffer* buffer, uint32_t* value); -microcdr_DllAPI bool deserialize_uint64_t(MicroBuffer* buffer, uint64_t* value); -microcdr_DllAPI bool deserialize_int8_t(MicroBuffer* buffer, int8_t* value); -microcdr_DllAPI bool deserialize_int16_t(MicroBuffer* buffer, int16_t* value); -microcdr_DllAPI bool deserialize_int32_t(MicroBuffer* buffer, int32_t* value); -microcdr_DllAPI bool deserialize_int64_t(MicroBuffer* buffer, int64_t* value); -microcdr_DllAPI bool deserialize_float(MicroBuffer* buffer, float* value); -microcdr_DllAPI bool deserialize_double(MicroBuffer* buffer, double* value); - -microcdr_DllAPI bool serialize_endian_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t value); -microcdr_DllAPI bool serialize_endian_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t value); -microcdr_DllAPI bool serialize_endian_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t value); -microcdr_DllAPI bool serialize_endian_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t value); -microcdr_DllAPI bool serialize_endian_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t value); -microcdr_DllAPI bool serialize_endian_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t value); -microcdr_DllAPI bool serialize_endian_float(MicroBuffer* buffer, Endianness endianness, const float value); -microcdr_DllAPI bool serialize_endian_double(MicroBuffer* buffer, Endianness endianness, const double value); - -microcdr_DllAPI bool deserialize_endian_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* value); -microcdr_DllAPI bool deserialize_endian_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t *value); -microcdr_DllAPI bool deserialize_endian_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* value); -microcdr_DllAPI bool deserialize_endian_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* value); -microcdr_DllAPI bool deserialize_endian_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* value); -microcdr_DllAPI bool deserialize_endian_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* value); -microcdr_DllAPI bool deserialize_endian_float(MicroBuffer* buffer, Endianness endianness, float* value); -microcdr_DllAPI bool deserialize_endian_double(MicroBuffer* buffer, Endianness endianness, double* value); - -// ------------------------------------------------------------------- -// INTERNAL SERIALIZATION FUNCTIONS -// ------------------------------------------------------------------- - -bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte); -bool serialize_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* bytes); -bool serialize_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* bytes); -bool serialize_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* bytes); - -bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte); -bool deserialize_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* bytes); -bool deserialize_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* bytes); -bool deserialize_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* bytes); - - -#ifdef __cplusplus -} -#endif - -#endif //_MICROCDR_TYPES_BASICS_H_ diff --git a/include/microcdr/types/sequence.h b/include/microcdr/types/sequence.h index 21f3ba2..581f2da 100644 --- a/include/microcdr/types/sequence.h +++ b/include/microcdr/types/sequence.h @@ -21,57 +21,61 @@ extern "C" { #include -#include -#include - // ------------------------------------------------------------------- // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -microcdr_DllAPI bool serialize_sequence_char(MicroBuffer* buffer, const char* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_bool(MicroBuffer* buffer, const bool* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_float(MicroBuffer* buffer, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_double(MicroBuffer* buffer, const double* array, const uint32_t size); - -microcdr_DllAPI bool deserialize_sequence_char(MicroBuffer* buffer, char* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_bool(MicroBuffer* buffer, bool* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint8_t(MicroBuffer* buffer, uint8_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint16_t(MicroBuffer* buffer, uint16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint32_t(MicroBuffer* buffer, uint32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint64_t(MicroBuffer* buffer, uint64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int8_t(MicroBuffer* buffer, int8_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int16_t(MicroBuffer* buffer, int16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int32_t(MicroBuffer* buffer, int32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int64_t(MicroBuffer* buffer, int64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_float(MicroBuffer* buffer, float* array, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_double(MicroBuffer* buffer, double* array, uint32_t* size); +microcdr_DllAPI bool serialize_sequence_char(MicroBuffer* mb, const char* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_bool(MicroBuffer* mb, const bool* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_float(MicroBuffer* mb, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_sequence_double(MicroBuffer* mb, const double* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint16_t(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint32_t(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint64_t(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int16_t(MicroBuffer* buffer, Endianness endianness, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int32_t(MicroBuffer* buffer, Endianness endianness, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int64_t(MicroBuffer* buffer, Endianness endianness, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_float(MicroBuffer* buffer, Endianness endianness, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_double(MicroBuffer* buffer, Endianness endianness, const double* array, const uint32_t size); +microcdr_DllAPI bool deserialize_sequence_char(MicroBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_bool(MicroBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_float(MicroBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_sequence_double(MicroBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint16_t(MicroBuffer* buffer, Endianness endianness, uint16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint32_t(MicroBuffer* buffer, Endianness endianness, uint32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint64_t(MicroBuffer* buffer, Endianness endianness, uint64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int16_t(MicroBuffer* buffer, Endianness endianness, int16_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int32_t(MicroBuffer* buffer, Endianness endianness, int32_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int64_t(MicroBuffer* buffer, Endianness endianness, int64_t* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_float(MicroBuffer* buffer, Endianness endianness, float* array, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_double(MicroBuffer* buffer, Endianness endianness, double* array, uint32_t* size); +microcdr_DllAPI bool serialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, const char* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, const bool* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, const uint8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, const int8_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); +microcdr_DllAPI bool serialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); +microcdr_DllAPI bool deserialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, char* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t array_capacity, uint32_t* size); +microcdr_DllAPI bool deserialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t array_capacity, uint32_t* size); #ifdef __cplusplus } diff --git a/include/microcdr/types/string.h b/include/microcdr/types/string.h index e69de29..8cf3782 100644 --- a/include/microcdr/types/string.h +++ b/include/microcdr/types/string.h @@ -0,0 +1,41 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _MICROCDR_TYPES_STRING_H_ +#define _MICROCDR_TYPES_STRING_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#include +#include + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- + +microcdr_DllAPI bool serialize_string(MicroBuffer* mb, const char* string); +microcdr_DllAPI bool deserialize_string(MicroBuffer* mb, char* string, const uint32_t string_capacity); + +microcdr_DllAPI bool serialize_endian_string(MicroBuffer* mb, Endianness endianness, const char* string); +microcdr_DllAPI bool deserialize_endian_string(MicroBuffer* mb, Endianness endianness, char* string, const uint32_t string_capacity); + +#ifdef __cplusplus +} +#endif + +#endif //_MICROCDR_TYPES_STRING_H_ diff --git a/src/c/common.c b/src/c/common.c index 15ec112..5a8e029 100644 --- a/src/c/common.c +++ b/src/c/common.c @@ -14,6 +14,8 @@ #include +#include + #if __BIG_ENDIAN__ const Endianness MACHINE_ENDIANNESS = BIG_ENDIANNESS; #else @@ -21,21 +23,111 @@ #endif // ------------------------------------------------------------------- -// INTERNAL IMPLEMENTATIONS +// INTERNAL UTIL IMPLEMENTATIONS +// ------------------------------------------------------------------- +bool check_buffer(MicroBuffer* mb, const uint32_t bytes) +{ + if(!mb->error) + { + bool fit = mb->iterator + bytes <= mb->final; + if(!fit) + { + mb->error = true; + } + } + + return !mb->error; +} + +// ------------------------------------------------------------------- +// PUBLIC IMPLEMENTATION // ------------------------------------------------------------------- +void init_micro_buffer(MicroBuffer* mb, uint8_t* data, const uint32_t size) +{ + init_micro_buffer_offset(mb, data, size, 0U); +} + +void init_micro_buffer_offset(MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset) +{ + init_micro_buffer_offset_endian(mb, data, size, offset, MACHINE_ENDIANNESS); +} + +void init_micro_buffer_offset_endian(MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, Endianness endianness) +{ + mb->init = data; + mb->final = mb->init + size; + mb->iterator = mb->init + offset; + mb->last_data_size = 0U; + mb->endianness = endianness; + mb->error = false; +} + + +void copy_micro_buffer(MicroBuffer* mb_dest, const MicroBuffer* mb_source) +{ + memcpy(mb_dest, mb_source, sizeof(MicroBuffer)); +} + +void reset_micro_buffer(MicroBuffer* mb) +{ + reset_micro_buffer_offset(mb, 0U); +} -uint32_t get_alignment_offset(MicroBuffer* buffer, const uint32_t data_size) +void reset_micro_buffer_offset(MicroBuffer* mb, const uint32_t offset) { - if(data_size > buffer->last_data_size) + mb->iterator = mb->init + offset; + mb->last_data_size = 0U; + mb->error = false; +} + +void align_to(MicroBuffer* mb, const uint32_t size) +{ + uint32_t offset = get_alignment_offset(mb, size); + mb->iterator += offset; + if(mb->iterator > mb->final) + { + mb->iterator = mb->final; + } + + mb->last_data_size = size; +} + +uint32_t get_alignment(uint32_t current_alignment, const uint32_t data_size) +{ + return ((data_size - (current_alignment % data_size)) & (data_size - 1)); +} + +uint32_t get_alignment_offset(const MicroBuffer* mb, const uint32_t data_size) +{ + if(data_size > mb->last_data_size) { - return (data_size - ((uint32_t)(buffer->iterator - buffer->init) % data_size)) & (data_size - 1); + return (data_size - ((uint32_t)(mb->iterator - mb->init) % data_size)) & (data_size - 1); } return 0; } -bool check_size(MicroBuffer* buffer, const uint32_t bytes) +size_t micro_buffer_size(const MicroBuffer* mb) { - return buffer->iterator + bytes <= buffer->final; + return (size_t)(mb->final - mb->init); } +size_t micro_buffer_length(const MicroBuffer* mb) +{ + return (size_t)(mb->iterator - mb->init); +} + +size_t micro_buffer_remaining(const MicroBuffer* mb) +{ + return (size_t)(mb->final - mb->iterator); +} + +Endianness micro_buffer_endianness(const MicroBuffer* mb) +{ + return mb->endianness; +} + +bool micro_buffer_has_error(const MicroBuffer* mb) +{ + return mb->error; +} diff --git a/src/c/common_internals.h b/src/c/common_internals.h new file mode 100644 index 0000000..88c1885 --- /dev/null +++ b/src/c/common_internals.h @@ -0,0 +1,33 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _SRC_COMMON_INTERNALS_H_ +#define _SRC_COMMON_INTERNALS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +// ------------------------------------------------------------------- +// INTERNAL UTIL FUNCTIONS +// ------------------------------------------------------------------- +bool check_buffer(MicroBuffer* mb, const uint32_t bytes); + +#ifdef __cplusplus +} +#endif + +#endif //_SRC_COMMON_INTERNALS_H_ diff --git a/src/c/microcdr.c b/src/c/microcdr.c deleted file mode 100644 index 21fe981..0000000 --- a/src/c/microcdr.c +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "microcdr/microcdr.h" - -void init_micro_buffer(MicroBuffer* buffer, uint8_t* data, const uint32_t size) -{ - init_micro_buffer_offset(buffer, data, size, 0U); -} - -void init_micro_buffer_offset(MicroBuffer* buffer, uint8_t* data, const uint32_t size, uint32_t offset) -{ - buffer->init = data; - buffer->final = buffer->init + size; - buffer->iterator = buffer->init + offset; - buffer->last_data_size = 0U; - buffer->endianness = MACHINE_ENDIANNESS; - buffer->error = BUFFER_OK; -} - -void reset_micro_buffer(MicroBuffer* buffer) -{ - reset_micro_buffer_offset(buffer, 0U); -} - -void reset_micro_buffer_offset(MicroBuffer* buffer, const uint32_t offset) -{ - buffer->iterator = buffer->init + offset; - buffer->last_data_size = 0U; - buffer->error = BUFFER_OK; -} - -MicroState get_micro_state(MicroBuffer* buffer) -{ - MicroState state; - state.position = buffer->iterator; - state.last_data_size = buffer->last_data_size; - state.error = buffer->error; - return state; -} - -void restore_micro_state(MicroBuffer* buffer, const MicroState state) -{ - buffer->iterator = state.position; - buffer->last_data_size = state.last_data_size; - buffer->error = state.error; -} - -void align_to(MicroBuffer* buffer, const uint32_t size) -{ - uint32_t offset = get_alignment_offset(buffer, size); - buffer->iterator += offset; - if(buffer->iterator > buffer->final) - { - buffer->iterator = buffer->final; - } - - buffer->last_data_size = size; -} - -uint32_t get_alignment(uint32_t current_alignment, const uint32_t data_size) -{ - return ((data_size - (current_alignment % data_size)) & (data_size - 1)); -} - -size_t micro_buffer_size(const MicroBuffer* buffer) -{ - return (size_t)(buffer->final - buffer->init); -} - -size_t micro_buffer_length(const MicroBuffer* buffer) -{ - return (size_t)(buffer->iterator - buffer->init); -} - -size_t micro_buffer_remaining(const MicroBuffer* buffer) -{ - return (size_t)(buffer->final - buffer->iterator); -} - diff --git a/src/c/types/array.c b/src/c/types/array.c index 1a7f5a0..3376b9d 100644 --- a/src/c/types/array.c +++ b/src/c/types/array.c @@ -12,420 +12,407 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include #include +#include "../common_internals.h" +#include "array_internals.h" +#include "basic_internals.h" + #include // ------------------------------------------------------------------- -// INTERNAL SERIALIZATION IMPLEMENTATIONS +// INTERNAL SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) +bool serialize_array_byte_1(MicroBuffer* mb, const uint8_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, size)) + if(check_buffer(mb, size)) { - memcpy(buffer->iterator, array, size); + memcpy(mb->iterator, array, size); - buffer->iterator += size; - buffer->last_data_size = data_size; - return true; + mb->iterator += size; + mb->last_data_size = data_size; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } -bool serialize_array_byte_2(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) +bool serialize_array_byte_2(MicroBuffer* mb, const Endianness endianness, const uint16_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint16_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint16_t)); + uint32_t alignment = get_alignment_offset(mb, sizeof(uint16_t)); - if(check_size(buffer, alignment + array_size)) + if(check_buffer(mb, alignment + array_size)) { - buffer->iterator += alignment; + mb->iterator += alignment; if(MACHINE_ENDIANNESS == endianness) { - memcpy(buffer->iterator, array, array_size); + memcpy(mb->iterator, array, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; + mb->iterator += array_size; + mb->last_data_size = data_size; } else { for(uint32_t i = 0; i < size; i++) { - serialize_byte_2(buffer, endianness, array + i); + serialize_byte_2(mb, endianness, array + i); } } - return true; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } -bool serialize_array_byte_4(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) +bool serialize_array_byte_4(MicroBuffer* mb, const Endianness endianness, const uint32_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint32_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint32_t)); + uint32_t alignment = get_alignment_offset(mb, sizeof(uint32_t)); - if(check_size(buffer, alignment + array_size)) + if(check_buffer(mb, alignment + array_size)) { - buffer->iterator += alignment; + mb->iterator += alignment; if(MACHINE_ENDIANNESS == endianness) { - memcpy(buffer->iterator, array, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; + memcpy(mb->iterator, array, array_size); + mb->iterator += array_size; + mb->last_data_size = data_size; } else { for(uint32_t i = 0; i < size; i++) { - serialize_byte_4(buffer, endianness, array + i); + serialize_byte_4(mb, endianness, array + i); } } - return true; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } -bool serialize_array_byte_8(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) +bool serialize_array_byte_8(MicroBuffer* mb, const Endianness endianness, const uint64_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint64_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint64_t)); + uint32_t alignment = get_alignment_offset(mb, sizeof(uint64_t)); - if(check_size(buffer, alignment + array_size)) + if(check_buffer(mb, alignment + array_size)) { - buffer->iterator += alignment; + mb->iterator += alignment; if(MACHINE_ENDIANNESS == endianness) { - memcpy(buffer->iterator, array, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; + memcpy(mb->iterator, array, array_size); + mb->iterator += array_size; + mb->last_data_size = data_size; } else { for(uint32_t i = 0; i < size; i++) { - serialize_byte_8(buffer, endianness, array + i); + serialize_byte_8(mb, endianness, array + i); } } - return true; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } -bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size) +bool deserialize_array_byte_1(MicroBuffer* mb, uint8_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, size)) + if(check_buffer(mb, size)) { - memcpy(array, buffer->iterator, size); + memcpy(array, mb->iterator, size); - buffer->iterator += size; - buffer->last_data_size = data_size; - return true; + mb->iterator += size; + mb->last_data_size = data_size; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } -bool deserialize_array_byte_2(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, const uint32_t size) +bool deserialize_array_byte_2(MicroBuffer* mb, const Endianness endianness, uint16_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint16_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint16_t)); + uint32_t alignment = get_alignment_offset(mb, sizeof(uint16_t)); - if(check_size(buffer, alignment + array_size)) + if(check_buffer(mb, alignment + array_size)) { - buffer->iterator += alignment; + mb->iterator += alignment; if(MACHINE_ENDIANNESS == endianness) { - memcpy(array, buffer->iterator, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; + memcpy(array, mb->iterator, array_size); + mb->iterator += array_size; + mb->last_data_size = data_size; } else { for(uint32_t i = 0; i < size; i++) { - deserialize_byte_2(buffer, endianness, array + i); + deserialize_byte_2(mb, endianness, array + i); } } - return true; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } -bool deserialize_array_byte_4(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, const uint32_t size) +bool deserialize_array_byte_4(MicroBuffer* mb, const Endianness endianness, uint32_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint32_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint32_t)); + uint32_t alignment = get_alignment_offset(mb, sizeof(uint32_t)); - if(check_size(buffer, alignment + array_size)) + if(check_buffer(mb, alignment + array_size)) { - buffer->iterator += alignment; + mb->iterator += alignment; if(MACHINE_ENDIANNESS == endianness) { - memcpy(array, buffer->iterator, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; + memcpy(array, mb->iterator, array_size); + mb->iterator += array_size; + mb->last_data_size = data_size; } else { for(uint32_t i = 0; i < size; i++) { - deserialize_byte_4(buffer, endianness, array + i); + deserialize_byte_4(mb, endianness, array + i); } } - return true; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } -bool deserialize_array_byte_8(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, const uint32_t size) +bool deserialize_array_byte_8(MicroBuffer* mb, const Endianness endianness, uint64_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint64_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(buffer, sizeof(uint64_t)); + uint32_t alignment = get_alignment_offset(mb, sizeof(uint64_t)); - if(check_size(buffer, alignment + array_size)) + if(check_buffer(mb, alignment + array_size)) { - buffer->iterator += alignment; + mb->iterator += alignment; if(MACHINE_ENDIANNESS == endianness) { - memcpy(array, buffer->iterator, array_size); - buffer->iterator += array_size; - buffer->last_data_size = data_size; + memcpy(array, mb->iterator, array_size); + mb->iterator += array_size; + mb->last_data_size = data_size; } else { for(uint32_t i = 0; i < size; i++) { - deserialize_byte_8(buffer, endianness, array + i); + deserialize_byte_8(mb, endianness, array + i); } } - return true; } - buffer->error = BUFFER_NOK; - return false; + return !mb->error; } // ------------------------------------------------------------------- // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool serialize_array_char(MicroBuffer* buffer, const char* array, const uint32_t size) +bool serialize_array_char(MicroBuffer* mb, const char* array, const uint32_t size) { - return serialize_array_byte_1(buffer, (uint8_t*)array, size); + return serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool serialize_array_bool(MicroBuffer* buffer, const bool* array, const uint32_t size) +bool serialize_array_bool(MicroBuffer* mb, const bool* array, const uint32_t size) { - return serialize_array_byte_1(buffer, (uint8_t*)array, size); + return serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool serialize_array_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) +bool serialize_array_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size) { - return serialize_array_byte_1(buffer, array, size); + return serialize_array_byte_1(mb, array, size); } -bool serialize_array_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size) +bool serialize_array_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size) { - return serialize_array_byte_2(buffer, buffer->endianness, array, size); + return serialize_array_byte_2(mb, mb->endianness, array, size); } -bool serialize_array_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size) +bool serialize_array_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size) { - return serialize_array_byte_4(buffer, buffer->endianness, array, size); + return serialize_array_byte_4(mb, mb->endianness, array, size); } -bool serialize_array_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size) +bool serialize_array_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size) { - return serialize_array_byte_8(buffer, buffer->endianness, array, size); + return serialize_array_byte_8(mb, mb->endianness, array, size); } -bool serialize_array_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size) +bool serialize_array_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size) { - return serialize_array_byte_1(buffer, (uint8_t*)array, size); + return serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool serialize_array_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size) +bool serialize_array_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size) { - return serialize_array_byte_2(buffer, buffer->endianness, (uint16_t*)array, size); + return serialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool serialize_array_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size) +bool serialize_array_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size) { - return serialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); + return serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_array_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size) +bool serialize_array_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size) { - return serialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); + return serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_array_float(MicroBuffer* buffer, const float* array, const uint32_t size) +bool serialize_array_float(MicroBuffer* mb, const float* array, const uint32_t size) { - return serialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); + return serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_array_double(MicroBuffer* buffer, const double* array, const uint32_t size) +bool serialize_array_double(MicroBuffer* mb, const double* array, const uint32_t size) { - return serialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); + return serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool deserialize_array_char(MicroBuffer* buffer, char* array, const uint32_t size) +bool deserialize_array_char(MicroBuffer* mb, char* array, const uint32_t size) { - return deserialize_array_byte_1(buffer, (uint8_t*)array, size); + return deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool deserialize_array_bool(MicroBuffer* buffer, bool* array, const uint32_t size) +bool deserialize_array_bool(MicroBuffer* mb, bool* array, const uint32_t size) { - return deserialize_array_byte_1(buffer, (uint8_t*)array, size); + return deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool deserialize_array_uint8_t(MicroBuffer* buffer, uint8_t* array, const uint32_t size) +bool deserialize_array_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t size) { - return deserialize_array_byte_1(buffer, array, size); + return deserialize_array_byte_1(mb, array, size); } -bool deserialize_array_uint16_t(MicroBuffer* buffer, uint16_t* array, const uint32_t size) +bool deserialize_array_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t size) { - return deserialize_array_byte_2(buffer, buffer->endianness, array, size); + return deserialize_array_byte_2(mb, mb->endianness, array, size); } -bool deserialize_array_uint32_t(MicroBuffer* buffer, uint32_t* array, const uint32_t size) +bool deserialize_array_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t size) { - return deserialize_array_byte_4(buffer, buffer->endianness, array, size); + return deserialize_array_byte_4(mb, mb->endianness, array, size); } -bool deserialize_array_uint64_t(MicroBuffer* buffer, uint64_t* array, const uint32_t size) +bool deserialize_array_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t size) { - return deserialize_array_byte_8(buffer, buffer->endianness, array, size); + return deserialize_array_byte_8(mb, mb->endianness, array, size); } -bool deserialize_array_int8_t(MicroBuffer* buffer, int8_t* array, const uint32_t size) +bool deserialize_array_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t size) { - return deserialize_array_byte_1(buffer, (uint8_t*)array, size); + return deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool deserialize_array_int16_t(MicroBuffer* buffer, int16_t* array, const uint32_t size) +bool deserialize_array_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t size) { - return deserialize_array_byte_2(buffer, buffer->endianness, (uint16_t*)array, size); + return deserialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool deserialize_array_int32_t(MicroBuffer* buffer, int32_t* array, const uint32_t size) +bool deserialize_array_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t size) { - return deserialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); + return deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool deserialize_array_int64_t(MicroBuffer* buffer, int64_t* array, const uint32_t size) +bool deserialize_array_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t size) { - return deserialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); + return deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool deserialize_array_float(MicroBuffer* buffer, float* array, const uint32_t size) +bool deserialize_array_float(MicroBuffer* mb, float* array, const uint32_t size) { - return deserialize_array_byte_4(buffer, buffer->endianness, (uint32_t*)array, size); + return deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool deserialize_array_double(MicroBuffer* buffer, double* array, const uint32_t size) +bool deserialize_array_double(MicroBuffer* mb, double* array, const uint32_t size) { - return deserialize_array_byte_8(buffer, buffer->endianness, (uint64_t*)array, size); + return deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_endian_array_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) +bool serialize_endian_array_uint16_t(MicroBuffer* mb, const Endianness endianness, const uint16_t* array, const uint32_t size) { - return serialize_array_byte_2(buffer, endianness, array, size); + return serialize_array_byte_2(mb, endianness, array, size); } -bool serialize_endian_array_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) +bool serialize_endian_array_uint32_t(MicroBuffer* mb, const Endianness endianness, const uint32_t* array, const uint32_t size) { - return serialize_array_byte_4(buffer, endianness, array, size); + return serialize_array_byte_4(mb, endianness, array, size); } -bool serialize_endian_array_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) +bool serialize_endian_array_uint64_t(MicroBuffer* mb, const Endianness endianness, const uint64_t* array, const uint32_t size) { - return serialize_array_byte_8(buffer, endianness, array, size); + return serialize_array_byte_8(mb, endianness, array, size); } -bool serialize_endian_array_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t* array, const uint32_t size) +bool serialize_endian_array_int16_t(MicroBuffer* mb, const Endianness endianness, const int16_t* array, const uint32_t size) { - return serialize_array_byte_2(buffer, endianness, (uint16_t*)array, size); + return serialize_array_byte_2(mb, endianness, (uint16_t*)array, size); } -bool serialize_endian_array_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t* array, const uint32_t size) +bool serialize_endian_array_int32_t(MicroBuffer* mb, const Endianness endianness, const int32_t* array, const uint32_t size) { - return serialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); + return serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_array_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t* array, const uint32_t size) +bool serialize_endian_array_int64_t(MicroBuffer* mb, const Endianness endianness, const int64_t* array, const uint32_t size) { - return serialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); + return serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool serialize_endian_array_float(MicroBuffer* buffer, const Endianness endianness, const float* array, const uint32_t size) +bool serialize_endian_array_float(MicroBuffer* mb, const Endianness endianness, const float* array, const uint32_t size) { - return serialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); + return serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_array_double(MicroBuffer* buffer, const Endianness endianness, const double* array, const uint32_t size) +bool serialize_endian_array_double(MicroBuffer* mb, const Endianness endianness, const double* array, const uint32_t size) { - return serialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); + return serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool deserialize_endian_array_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, const uint32_t size) +bool deserialize_endian_array_uint16_t(MicroBuffer* mb, const Endianness endianness, uint16_t* array, const uint32_t size) { - return deserialize_array_byte_2(buffer, endianness, array, size); + return deserialize_array_byte_2(mb, endianness, array, size); } -bool deserialize_endian_array_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, const uint32_t size) +bool deserialize_endian_array_uint32_t(MicroBuffer* mb, const Endianness endianness, uint32_t* array, const uint32_t size) { - return deserialize_array_byte_4(buffer, endianness, array, size); + return deserialize_array_byte_4(mb, endianness, array, size); } -bool deserialize_endian_array_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, const uint32_t size) +bool deserialize_endian_array_uint64_t(MicroBuffer* mb, const Endianness endianness, uint64_t* array, const uint32_t size) { - return deserialize_array_byte_8(buffer, endianness, array, size); + return deserialize_array_byte_8(mb, endianness, array, size); } -bool deserialize_endian_array_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* array, const uint32_t size) +bool deserialize_endian_array_int16_t(MicroBuffer* mb, const Endianness endianness, int16_t* array, const uint32_t size) { - return deserialize_array_byte_2(buffer, endianness, (uint16_t*)array, size); + return deserialize_array_byte_2(mb, endianness, (uint16_t*)array, size); } -bool deserialize_endian_array_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* array, const uint32_t size) +bool deserialize_endian_array_int32_t(MicroBuffer* mb, const Endianness endianness, int32_t* array, const uint32_t size) { - return deserialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); + return deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool deserialize_endian_array_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* array, const uint32_t size) +bool deserialize_endian_array_int64_t(MicroBuffer* mb, const Endianness endianness, int64_t* array, const uint32_t size) { - return deserialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); + return deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool deserialize_endian_array_float(MicroBuffer* buffer, const Endianness endianness, float* array, const uint32_t size) +bool deserialize_endian_array_float(MicroBuffer* mb, const Endianness endianness, float* array, const uint32_t size) { - return deserialize_array_byte_4(buffer, endianness, (uint32_t*)array, size); + return deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool deserialize_endian_array_double(MicroBuffer* buffer, const Endianness endianness, double* array, const uint32_t size) +bool deserialize_endian_array_double(MicroBuffer* mb, const Endianness endianness, double* array, const uint32_t size) { - return deserialize_array_byte_8(buffer, endianness, (uint64_t*)array, size); + return deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } diff --git a/src/c/types/array_internals.h b/src/c/types/array_internals.h new file mode 100644 index 0000000..3c2b77f --- /dev/null +++ b/src/c/types/array_internals.h @@ -0,0 +1,42 @@ + +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _SRC_TYPES_ARRAY_INTERNALS_H_ +#define _SRC_TYPES_ARRAY_INTERNALS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- +bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); +bool serialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); +bool serialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); +bool serialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); + +bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size); +bool deserialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); +bool deserialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); +bool deserialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); + +#ifdef __cplusplus +} +#endif + +#endif //_SRC_TYPES_ARRAY_INTERNALS_H_ diff --git a/src/c/types/basic.c b/src/c/types/basic.c new file mode 100644 index 0000000..1a3b464 --- /dev/null +++ b/src/c/types/basic.c @@ -0,0 +1,427 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include "../common_internals.h" +#include "basic_internals.h" + +#include + + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION IMPLEMENTATION +// ------------------------------------------------------------------- + +bool serialize_byte_1(MicroBuffer* mb, const uint8_t* byte) +{ + uint32_t data_size = sizeof(uint8_t); + if(check_buffer(mb, data_size)) + { + *mb->iterator = *byte; + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +bool serialize_byte_2(MicroBuffer* mb, const Endianness endianness, const uint16_t* bytes) +{ + uint32_t data_size = sizeof(uint16_t); + uint32_t alignment = get_alignment_offset(mb, data_size); + + if(check_buffer(mb, alignment + data_size)) + { + mb->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(mb->iterator, bytes, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *mb->iterator = *(bytes_pointer + 1); + *(mb->iterator + 1) = *bytes_pointer; + } + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +bool serialize_byte_4(MicroBuffer* mb, const Endianness endianness, const uint32_t* bytes) +{ + uint32_t data_size = sizeof(uint32_t); + uint32_t alignment = get_alignment_offset(mb, data_size); + + if(check_buffer(mb, alignment + data_size)) + { + mb->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(mb->iterator, bytes, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *mb->iterator = *(bytes_pointer + 3); + *(mb->iterator + 1) = *(bytes_pointer + 2); + *(mb->iterator + 2) = *(bytes_pointer + 1); + *(mb->iterator + 3) = *bytes_pointer; + } + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +bool serialize_byte_8(MicroBuffer* mb, const Endianness endianness, const uint64_t* bytes) +{ + uint32_t data_size = sizeof(uint64_t); + uint32_t alignment = get_alignment_offset(mb, data_size); + + if(check_buffer(mb, alignment + data_size)) + { + mb->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(mb->iterator, bytes, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *mb->iterator = *(bytes_pointer + 7); + *(mb->iterator + 1) = *(bytes_pointer + 6); + *(mb->iterator + 2) = *(bytes_pointer + 5); + *(mb->iterator + 3) = *(bytes_pointer + 4); + *(mb->iterator + 4) = *(bytes_pointer + 3); + *(mb->iterator + 5) = *(bytes_pointer + 2); + *(mb->iterator + 6) = *(bytes_pointer + 1); + *(mb->iterator + 7) = *bytes_pointer; + } + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +bool deserialize_byte_1(MicroBuffer* mb, uint8_t* byte) +{ + uint32_t data_size = sizeof(uint8_t); + if(check_buffer(mb, data_size)) + { + *byte = *mb->iterator; + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +bool deserialize_byte_2(MicroBuffer* mb, const Endianness endianness, uint16_t* bytes) +{ + uint32_t data_size = sizeof(uint16_t); + uint32_t alignment = get_alignment_offset(mb, data_size); + + if(check_buffer(mb, alignment + data_size)) + { + mb->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(bytes, mb->iterator, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *bytes_pointer = *(mb->iterator + 1); + *(bytes_pointer + 1) = *mb->iterator ; + } + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +bool deserialize_byte_4(MicroBuffer* mb, const Endianness endianness, uint32_t* bytes) +{ + uint32_t data_size = sizeof(uint32_t); + uint32_t alignment = get_alignment_offset(mb, data_size); + + if(check_buffer(mb, alignment + data_size)) + { + mb->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(bytes, mb->iterator, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *bytes_pointer = *(mb->iterator + 3); + *(bytes_pointer + 1) = *(mb->iterator + 2); + *(bytes_pointer + 2) = *(mb->iterator + 1); + *(bytes_pointer + 3) = *mb->iterator; + } + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +bool deserialize_byte_8(MicroBuffer* mb, const Endianness endianness, uint64_t* bytes) +{ + uint32_t data_size = sizeof(uint64_t); + uint32_t alignment = get_alignment_offset(mb, data_size); + + if(check_buffer(mb, alignment + data_size)) + { + mb->iterator += alignment; + + if(MACHINE_ENDIANNESS == endianness) + { + memcpy(bytes, mb->iterator, data_size); + } + else + { + uint8_t* bytes_pointer = (uint8_t*)bytes; + *bytes_pointer = *(mb->iterator + 7); + *(bytes_pointer + 1) = *(mb->iterator + 6); + *(bytes_pointer + 2) = *(mb->iterator + 5); + *(bytes_pointer + 3) = *(mb->iterator + 4); + *(bytes_pointer + 4) = *(mb->iterator + 3); + *(bytes_pointer + 5) = *(mb->iterator + 2); + *(bytes_pointer + 6) = *(mb->iterator + 1); + *(bytes_pointer + 7) = *mb->iterator; + } + + mb->iterator += data_size; + mb->last_data_size = data_size; + } + return !mb->error; +} + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION IMPLEMENTATION +// ------------------------------------------------------------------- + +bool serialize_char(MicroBuffer* mb, const char value) +{ + return serialize_byte_1(mb, (uint8_t*)&value); +} + +bool serialize_bool(MicroBuffer* mb, const bool value) +{ + return serialize_byte_1(mb, (uint8_t*)&value); +} + +bool serialize_uint8_t(MicroBuffer* mb, const uint8_t value) +{ + return serialize_byte_1(mb, &value); +} + +bool serialize_uint16_t(MicroBuffer* mb, const uint16_t value) +{ + return serialize_byte_2(mb, mb->endianness, &value); +} + +bool serialize_uint32_t(MicroBuffer* mb, const uint32_t value) +{ + return serialize_byte_4(mb, mb->endianness, &value); +} + +bool serialize_uint64_t(MicroBuffer* mb, const uint64_t value) +{ + return serialize_byte_8(mb, mb->endianness, &value); +} + +bool serialize_int8_t(MicroBuffer* mb, const int8_t value) +{ + return serialize_byte_1(mb, (uint8_t*)&value); +} + +bool serialize_int16_t(MicroBuffer* mb, const int16_t value) +{ + return serialize_byte_2(mb, mb->endianness, (uint16_t*)&value); +} + +bool serialize_int32_t(MicroBuffer* mb, const int32_t value) +{ + return serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); +} + +bool serialize_int64_t(MicroBuffer* mb, const int64_t value) +{ + return serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); +} + +bool serialize_float(MicroBuffer* mb, const float value) +{ + return serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); +} + +bool serialize_double(MicroBuffer* mb, const double value) +{ + return serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); +} + +bool deserialize_char(MicroBuffer* mb, char* value) +{ + return deserialize_byte_1(mb, (uint8_t*)value); +} + +bool deserialize_bool(MicroBuffer* mb, bool* value) +{ + return deserialize_byte_1(mb, (uint8_t*)value); +} + +bool deserialize_uint8_t(MicroBuffer* mb, uint8_t* value) +{ + return deserialize_byte_1(mb, value); +} + +bool deserialize_uint16_t(MicroBuffer* mb, uint16_t* value) +{ + return deserialize_byte_2(mb, mb->endianness, value); +} + +bool deserialize_uint32_t(MicroBuffer* mb, uint32_t* value) +{ + return deserialize_byte_4(mb, mb->endianness, value); +} + +bool deserialize_uint64_t(MicroBuffer* mb, uint64_t* value) +{ + return deserialize_byte_8(mb, mb->endianness, value); +} + +bool deserialize_int8_t(MicroBuffer* mb, int8_t* value) +{ + return deserialize_byte_1(mb, (uint8_t*)value); +} + +bool deserialize_int16_t(MicroBuffer* mb, int16_t* value) +{ + return deserialize_byte_2(mb, mb->endianness, (uint16_t*)value); +} + +bool deserialize_int32_t(MicroBuffer* mb, int32_t* value) +{ + return deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); +} + +bool deserialize_int64_t(MicroBuffer* mb, int64_t* value) +{ + return deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); +} + +bool deserialize_float(MicroBuffer* mb, float* value) +{ + return deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); +} + +bool deserialize_double(MicroBuffer* mb, double* value) +{ + return deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); +} + +bool serialize_endian_uint16_t(MicroBuffer* mb, const Endianness endianness, const uint16_t value) +{ + return serialize_byte_2(mb, endianness, &value); +} + +bool serialize_endian_uint32_t(MicroBuffer* mb, const Endianness endianness, const uint32_t value) +{ + return serialize_byte_4(mb, endianness, &value); +} + +bool serialize_endian_uint64_t(MicroBuffer* mb, const Endianness endianness, const uint64_t value) +{ + return serialize_byte_8(mb, endianness, &value); +} + +bool serialize_endian_int16_t(MicroBuffer* mb, const Endianness endianness, const int16_t value) +{ + return serialize_byte_2(mb, endianness, (uint16_t*)&value); +} + +bool serialize_endian_int32_t(MicroBuffer* mb, const Endianness endianness, const int32_t value) +{ + return serialize_byte_4(mb, endianness, (uint32_t*)&value); +} + +bool serialize_endian_int64_t(MicroBuffer* mb, const Endianness endianness, const int64_t value) +{ + return serialize_byte_8(mb, endianness, (uint64_t*)&value); +} + +bool serialize_endian_float(MicroBuffer* mb, const Endianness endianness, const float value) +{ + return serialize_byte_4(mb, endianness, (uint32_t*)&value); +} + +bool serialize_endian_double(MicroBuffer* mb, const Endianness endianness, const double value) +{ + return serialize_byte_8(mb, endianness, (uint64_t*)&value); +} + +bool deserialize_endian_uint16_t(MicroBuffer* mb, const Endianness endianness, uint16_t* value) +{ + return deserialize_byte_2(mb, endianness, value); +} + +bool deserialize_endian_uint32_t(MicroBuffer* mb, const Endianness endianness, uint32_t* value) +{ + return deserialize_byte_4(mb, endianness, value); +} + +bool deserialize_endian_uint64_t(MicroBuffer* mb, const Endianness endianness, uint64_t* value) +{ + return deserialize_byte_8(mb, endianness, value); +} + +bool deserialize_endian_int16_t(MicroBuffer* mb, const Endianness endianness, int16_t* value) +{ + return deserialize_byte_2(mb, endianness, (uint16_t*)value); +} + +bool deserialize_endian_int32_t(MicroBuffer* mb, const Endianness endianness, int32_t* value) +{ + return deserialize_byte_4(mb, endianness, (uint32_t*)value); +} + +bool deserialize_endian_int64_t(MicroBuffer* mb, const Endianness endianness, int64_t* value) +{ + return deserialize_byte_8(mb, endianness, (uint64_t*)value); +} + +bool deserialize_endian_float(MicroBuffer* mb, const Endianness endianness, float* value) +{ + return deserialize_byte_4(mb, endianness, (uint32_t*)value); +} + +bool deserialize_endian_double(MicroBuffer* mb, const Endianness endianness, double* value) +{ + return deserialize_byte_8(mb, endianness, (uint64_t*)value); +} + diff --git a/src/c/types/basic_internals.h b/src/c/types/basic_internals.h new file mode 100644 index 0000000..d2714bb --- /dev/null +++ b/src/c/types/basic_internals.h @@ -0,0 +1,41 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _SRC_TYPES_BASIC_INTERNALS_H_ +#define _SRC_TYPES_BASIC_INTERNALS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- +bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte); +bool serialize_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* bytes); +bool serialize_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* bytes); +bool serialize_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* bytes); + +bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte); +bool deserialize_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* bytes); +bool deserialize_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* bytes); +bool deserialize_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* bytes); + +#ifdef __cplusplus +} +#endif + +#endif //_SRC_TYPES_BASIC_INTERNALS_H_ diff --git a/src/c/types/basics.c b/src/c/types/basics.c deleted file mode 100644 index 571268f..0000000 --- a/src/c/types/basics.c +++ /dev/null @@ -1,454 +0,0 @@ -// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include - -#include - -// ------------------------------------------------------------------- -// INTERNAL SERIALIZATION FUNCTIONS -// ------------------------------------------------------------------- - -bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte); -bool serialize_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* bytes); -bool serialize_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* bytes); -bool serialize_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* bytes); - -bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte); -bool deserialize_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* bytes); -bool deserialize_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* bytes); -bool deserialize_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* bytes); - -// ------------------------------------------------------------------- -// INTERNAL SERIALIZATION IMPLEMENTATION -// ------------------------------------------------------------------- - -bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte) -{ - uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, data_size)) - { - *buffer->iterator = *byte; - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_byte_2(MicroBuffer* buffer, const Endianness endianness, const uint16_t* bytes) -{ - uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, bytes, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *buffer->iterator = *(bytes_pointer + 1); - *(buffer->iterator + 1) = *bytes_pointer; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_byte_4(MicroBuffer* buffer, const Endianness endianness, const uint32_t* bytes) -{ - uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, bytes, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *buffer->iterator = *(bytes_pointer + 3); - *(buffer->iterator + 1) = *(bytes_pointer + 2); - *(buffer->iterator + 2) = *(bytes_pointer + 1); - *(buffer->iterator + 3) = *bytes_pointer; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool serialize_byte_8(MicroBuffer* buffer, const Endianness endianness, const uint64_t* bytes) -{ - uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(buffer->iterator, bytes, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *buffer->iterator = *(bytes_pointer + 7); - *(buffer->iterator + 1) = *(bytes_pointer + 6); - *(buffer->iterator + 2) = *(bytes_pointer + 5); - *(buffer->iterator + 3) = *(bytes_pointer + 4); - *(buffer->iterator + 4) = *(bytes_pointer + 3); - *(buffer->iterator + 5) = *(bytes_pointer + 2); - *(buffer->iterator + 6) = *(bytes_pointer + 1); - *(buffer->iterator + 7) = *bytes_pointer; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte) -{ - uint32_t data_size = sizeof(uint8_t); - if(check_size(buffer, data_size)) - { - *byte = *buffer->iterator; - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_2(MicroBuffer* buffer, const Endianness endianness, uint16_t* bytes) -{ - uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(bytes, buffer->iterator, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *bytes_pointer = *(buffer->iterator + 1); - *(bytes_pointer + 1) = *buffer->iterator ; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_4(MicroBuffer* buffer, const Endianness endianness, uint32_t* bytes) -{ - uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(bytes, buffer->iterator, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *bytes_pointer = *(buffer->iterator + 3); - *(bytes_pointer + 1) = *(buffer->iterator + 2); - *(bytes_pointer + 2) = *(buffer->iterator + 1); - *(bytes_pointer + 3) = *buffer->iterator; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -bool deserialize_byte_8(MicroBuffer* buffer, const Endianness endianness, uint64_t* bytes) -{ - uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = get_alignment_offset(buffer, data_size); - - if(check_size(buffer, alignment + data_size)) - { - buffer->iterator += alignment; - - if(MACHINE_ENDIANNESS == endianness) - { - memcpy(bytes, buffer->iterator, data_size); - } - else - { - uint8_t* bytes_pointer = (uint8_t*)bytes; - *bytes_pointer = *(buffer->iterator + 7); - *(bytes_pointer + 1) = *(buffer->iterator + 6); - *(bytes_pointer + 2) = *(buffer->iterator + 5); - *(bytes_pointer + 3) = *(buffer->iterator + 4); - *(bytes_pointer + 4) = *(buffer->iterator + 3); - *(bytes_pointer + 5) = *(buffer->iterator + 2); - *(bytes_pointer + 6) = *(buffer->iterator + 1); - *(bytes_pointer + 7) = *buffer->iterator; - } - - buffer->iterator += data_size; - buffer->last_data_size = data_size; - return true; - } - buffer->error = BUFFER_NOK; - return false; -} - -// ------------------------------------------------------------------- -// PUBLIC SERIALIZATION IMPLEMENTATION -// ------------------------------------------------------------------- - -bool serialize_char(MicroBuffer* buffer, const char value) -{ - return serialize_byte_1(buffer, (uint8_t*)&value); -} - -bool serialize_bool(MicroBuffer* buffer, const bool value) -{ - return serialize_byte_1(buffer, (uint8_t*)&value); -} - -bool serialize_uint8_t(MicroBuffer* buffer, const uint8_t value) -{ - return serialize_byte_1(buffer, &value); -} - -bool serialize_uint16_t(MicroBuffer* buffer, const uint16_t value) -{ - return serialize_byte_2(buffer, buffer->endianness, &value); -} - -bool serialize_uint32_t(MicroBuffer* buffer, const uint32_t value) -{ - return serialize_byte_4(buffer, buffer->endianness, &value); -} - -bool serialize_uint64_t(MicroBuffer* buffer, const uint64_t value) -{ - return serialize_byte_8(buffer, buffer->endianness, &value); -} - -bool serialize_int8_t(MicroBuffer* buffer, const int8_t value) -{ - return serialize_byte_1(buffer, (uint8_t*)&value); -} - -bool serialize_int16_t(MicroBuffer* buffer, const int16_t value) -{ - return serialize_byte_2(buffer, buffer->endianness, (uint16_t*)&value); -} - -bool serialize_int32_t(MicroBuffer* buffer, const int32_t value) -{ - return serialize_byte_4(buffer, buffer->endianness, (uint32_t*)&value); -} - -bool serialize_int64_t(MicroBuffer* buffer, const int64_t value) -{ - return serialize_byte_8(buffer, buffer->endianness, (uint64_t*)&value); -} - -bool serialize_float(MicroBuffer* buffer, const float value) -{ - return serialize_byte_4(buffer, buffer->endianness, (uint32_t*)&value); -} - -bool serialize_double(MicroBuffer* buffer, const double value) -{ - return serialize_byte_8(buffer, buffer->endianness, (uint64_t*)&value); -} - -bool deserialize_char(MicroBuffer* buffer, char* value) -{ - return deserialize_byte_1(buffer, (uint8_t*)value); -} - -bool deserialize_bool(MicroBuffer* buffer, bool* value) -{ - return deserialize_byte_1(buffer, (uint8_t*)value); -} - -bool deserialize_uint8_t(MicroBuffer* buffer, uint8_t* value) -{ - return deserialize_byte_1(buffer, value); -} - -bool deserialize_uint16_t(MicroBuffer* buffer, uint16_t* value) -{ - return deserialize_byte_2(buffer, buffer->endianness, value); -} - -bool deserialize_uint32_t(MicroBuffer* buffer, uint32_t* value) -{ - return deserialize_byte_4(buffer, buffer->endianness, value); -} - -bool deserialize_uint64_t(MicroBuffer* buffer, uint64_t* value) -{ - return deserialize_byte_8(buffer, buffer->endianness, value); -} - -bool deserialize_int8_t(MicroBuffer* buffer, int8_t* value) -{ - return deserialize_byte_1(buffer, (uint8_t*)value); -} - -bool deserialize_int16_t(MicroBuffer* buffer, int16_t* value) -{ - return deserialize_byte_2(buffer, buffer->endianness, (uint16_t*)value); -} - -bool deserialize_int32_t(MicroBuffer* buffer, int32_t* value) -{ - return deserialize_byte_4(buffer, buffer->endianness, (uint32_t*)value); -} - -bool deserialize_int64_t(MicroBuffer* buffer, int64_t* value) -{ - return deserialize_byte_8(buffer, buffer->endianness, (uint64_t*)value); -} - -bool deserialize_float(MicroBuffer* buffer, float* value) -{ - return deserialize_byte_4(buffer, buffer->endianness, (uint32_t*)value); -} - -bool deserialize_double(MicroBuffer* buffer, double* value) -{ - return deserialize_byte_8(buffer, buffer->endianness, (uint64_t*)value); -} - -bool serialize_endian_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t value) -{ - return serialize_byte_2(buffer, endianness, &value); -} - -bool serialize_endian_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t value) -{ - return serialize_byte_4(buffer, endianness, &value); -} - -bool serialize_endian_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t value) -{ - return serialize_byte_8(buffer, endianness, &value); -} - -bool serialize_endian_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t value) -{ - return serialize_byte_2(buffer, endianness, (uint16_t*)&value); -} - -bool serialize_endian_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t value) -{ - return serialize_byte_4(buffer, endianness, (uint32_t*)&value); -} - -bool serialize_endian_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t value) -{ - return serialize_byte_8(buffer, endianness, (uint64_t*)&value); -} - -bool serialize_endian_float(MicroBuffer* buffer, const Endianness endianness, const float value) -{ - return serialize_byte_4(buffer, endianness, (uint32_t*)&value); -} - -bool serialize_endian_double(MicroBuffer* buffer, const Endianness endianness, const double value) -{ - return serialize_byte_8(buffer, endianness, (uint64_t*)&value); -} - -bool deserialize_endian_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* value) -{ - return deserialize_byte_2(buffer, endianness, value); -} - -bool deserialize_endian_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* value) -{ - return deserialize_byte_4(buffer, endianness, value); -} - -bool deserialize_endian_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* value) -{ - return deserialize_byte_8(buffer, endianness, value); -} - -bool deserialize_endian_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* value) -{ - return deserialize_byte_2(buffer, endianness, (uint16_t*)value); -} - -bool deserialize_endian_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* value) -{ - return deserialize_byte_4(buffer, endianness, (uint32_t*)value); -} - -bool deserialize_endian_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* value) -{ - return deserialize_byte_8(buffer, endianness, (uint64_t*)value); -} - -bool deserialize_endian_float(MicroBuffer* buffer, const Endianness endianness, float* value) -{ - return deserialize_byte_4(buffer, endianness, (uint32_t*)value); -} - -bool deserialize_endian_double(MicroBuffer* buffer, const Endianness endianness, double* value) -{ - return deserialize_byte_8(buffer, endianness, (uint64_t*)value); -} - diff --git a/src/c/types/sequence.c b/src/c/types/sequence.c index ca1bd34..517cd3a 100644 --- a/src/c/types/sequence.c +++ b/src/c/types/sequence.c @@ -12,251 +12,320 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include +#include #include #include +#include "array_internals.h" +#include "sequence_internals.h" + +// ------------------------------------------------------------------- +// INTERNAL UTIL IMPLEMENTATION +// ------------------------------------------------------------------- +static inline void deserialize_sequence_header(MicroBuffer* mb, Endianness endianness, uint32_t capacity, uint32_t* size) +{ + deserialize_endian_uint32_t(mb, endianness, size); + if(*size > capacity) + { + mb->error = true; + } +} + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION IMPLEMENTATION +// ------------------------------------------------------------------- + + + +bool serialize_sequence_byte_1(MicroBuffer* mb, Endianness endianness, const uint8_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(mb, endianness, size); + return serialize_array_byte_1(mb, array, size); +} + +bool serialize_sequence_byte_2(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(mb, endianness, size); + return serialize_array_byte_2(mb, endianness, array, size); +} + +bool serialize_sequence_byte_4(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(mb, endianness, size); + return serialize_array_byte_4(mb, endianness, array, size); +} + +bool serialize_sequence_byte_8(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size) +{ + serialize_endian_uint32_t(mb, endianness, size); + return serialize_array_byte_8(mb, endianness, array, size); +} + +bool deserialize_sequence_byte_1(MicroBuffer* mb, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) +{ + deserialize_sequence_header(mb, endianness, array_capacity, size); + return deserialize_array_byte_1(mb, array, *size); +} + +bool deserialize_sequence_byte_2(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) +{ + deserialize_sequence_header(mb, endianness, array_capacity, size); + return deserialize_array_byte_2(mb, endianness, array, *size); +} + +bool deserialize_sequence_byte_4(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) +{ + deserialize_sequence_header(mb, endianness, array_capacity, size); + return deserialize_array_byte_4(mb, endianness, array, *size); +} + +bool deserialize_sequence_byte_8(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) +{ + deserialize_sequence_header(mb, endianness, array_capacity, size); + return deserialize_array_byte_8(mb, endianness, array, *size); +} + // ------------------------------------------------------------------- // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool serialize_sequence_char(MicroBuffer* buffer, const char* array, const uint32_t size) +bool serialize_sequence_char(MicroBuffer* mb, const char* array, const uint32_t size) +{ + return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); +} + +bool serialize_sequence_bool(MicroBuffer* mb, const bool* array, const uint32_t size) +{ + return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); +} + +bool serialize_sequence_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size) +{ + return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); +} + +bool serialize_sequence_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size) +{ + return serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); +} + +bool serialize_sequence_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size) +{ + return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); +} + +bool serialize_sequence_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size) +{ + return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); +} + +bool serialize_sequence_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size) +{ + return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); +} + +bool serialize_sequence_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size) +{ + return serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); +} + +bool serialize_sequence_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size) { - serialize_uint32_t(buffer, size); - return serialize_array_char(buffer, array, size); + return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_sequence_bool(MicroBuffer* buffer, const bool* array, const uint32_t size) +bool serialize_sequence_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size) { - serialize_uint32_t(buffer, size); - return serialize_array_bool(buffer, array, size); + return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_sequence_uint8_t(MicroBuffer* buffer, const uint8_t* array, const uint32_t size) +bool serialize_sequence_float(MicroBuffer* mb, const float* array, const uint32_t size) { - serialize_uint32_t(buffer, size); - return serialize_array_uint8_t(buffer, array, size); + return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_sequence_uint16_t(MicroBuffer* buffer, const uint16_t* array, const uint32_t size) +bool serialize_sequence_double(MicroBuffer* mb, const double* array, const uint32_t size) { - serialize_uint32_t(buffer, size); - return serialize_array_uint16_t(buffer, array, size); + return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_sequence_uint32_t(MicroBuffer* buffer, const uint32_t* array, const uint32_t size) +bool deserialize_sequence_char(MicroBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_uint32_t(buffer, array, size); + return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool serialize_sequence_uint64_t(MicroBuffer* buffer, const uint64_t* array, const uint32_t size) +bool deserialize_sequence_bool(MicroBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_uint64_t(buffer, array, size); + return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool serialize_sequence_int8_t(MicroBuffer* buffer, const int8_t* array, const uint32_t size) +bool deserialize_sequence_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_int8_t(buffer, array, size); + return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool serialize_sequence_int16_t(MicroBuffer* buffer, const int16_t* array, const uint32_t size) +bool deserialize_sequence_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_int16_t(buffer, array, size); + return deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); } -bool serialize_sequence_int32_t(MicroBuffer* buffer, const int32_t* array, const uint32_t size) +bool deserialize_sequence_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_int32_t(buffer, array, size); + return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool serialize_sequence_int64_t(MicroBuffer* buffer, const int64_t* array, const uint32_t size) +bool deserialize_sequence_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_int64_t(buffer, array, size); + return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool serialize_sequence_float(MicroBuffer* buffer, const float* array, const uint32_t size) +bool deserialize_sequence_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_float(buffer, array, size); + return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool serialize_sequence_double(MicroBuffer* buffer, const double* array, const uint32_t size) +bool deserialize_sequence_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_uint32_t(buffer, size); - return serialize_array_double(buffer, array, size); + return deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); } -bool deserialize_sequence_char(MicroBuffer* buffer, char* array, uint32_t* size) +bool deserialize_sequence_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_char(buffer, array, *size); + return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_sequence_bool(MicroBuffer* buffer, bool* array, uint32_t* size) +bool deserialize_sequence_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_bool(buffer, array, *size); + return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_sequence_uint8_t(MicroBuffer* buffer, uint8_t* array, uint32_t* size) +bool deserialize_sequence_float(MicroBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_uint8_t(buffer, array, *size); + return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_sequence_uint16_t(MicroBuffer* buffer, uint16_t* array, uint32_t* size) +bool deserialize_sequence_double(MicroBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_uint16_t(buffer, array, *size); + return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_sequence_uint32_t(MicroBuffer* buffer, uint32_t* array, uint32_t* size) +bool serialize_endian_sequence_char(MicroBuffer* mb, const Endianness endianness, const char* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_uint32_t(buffer, array, *size); + return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool deserialize_sequence_uint64_t(MicroBuffer* buffer, uint64_t* array, uint32_t* size) +bool serialize_endian_sequence_bool(MicroBuffer* mb, const Endianness endianness, const bool* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_uint64_t(buffer, array, *size); + return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool deserialize_sequence_int8_t(MicroBuffer* buffer, int8_t* array, uint32_t* size) +bool serialize_endian_sequence_uint8_t(MicroBuffer* mb, const Endianness endianness, const uint8_t* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_int8_t(buffer, array, *size); + return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool deserialize_sequence_int16_t(MicroBuffer* buffer, int16_t* array, uint32_t* size) +bool serialize_endian_sequence_uint16_t(MicroBuffer* mb, const Endianness endianness, const uint16_t* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_int16_t(buffer, array, *size); + return serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); } -bool deserialize_sequence_int32_t(MicroBuffer* buffer, int32_t* array, uint32_t* size) +bool serialize_endian_sequence_uint32_t(MicroBuffer* mb, const Endianness endianness, const uint32_t* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_int32_t(buffer, array, *size); + return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool deserialize_sequence_int64_t(MicroBuffer* buffer, int64_t* array, uint32_t* size) +bool serialize_endian_sequence_uint64_t(MicroBuffer* mb, const Endianness endianness, const uint64_t* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_int64_t(buffer, array, *size); + return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool deserialize_sequence_float(MicroBuffer* buffer, float* array, uint32_t* size) +bool serialize_endian_sequence_int8_t(MicroBuffer* mb, const Endianness endianness, const int8_t* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_float(buffer, array, *size); + return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool deserialize_sequence_double(MicroBuffer* buffer, double* array, uint32_t* size) +bool serialize_endian_sequence_int16_t(MicroBuffer* mb, const Endianness endianness, const int16_t* array, const uint32_t size) { - deserialize_uint32_t(buffer, size); - return deserialize_array_double(buffer, array, *size); + return serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); } -bool serialize_endian_sequence_uint16_t(MicroBuffer* buffer, const Endianness endianness, const uint16_t* array, const uint32_t size) +bool serialize_endian_sequence_int32_t(MicroBuffer* mb, const Endianness endianness, const int32_t* array, const uint32_t size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_uint16_t(buffer, endianness, array, size); + return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_sequence_uint32_t(MicroBuffer* buffer, const Endianness endianness, const uint32_t* array, const uint32_t size) +bool serialize_endian_sequence_int64_t(MicroBuffer* mb, const Endianness endianness, const int64_t* array, const uint32_t size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_uint32_t(buffer, endianness, array, size); + return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool serialize_endian_sequence_uint64_t(MicroBuffer* buffer, const Endianness endianness, const uint64_t* array, const uint32_t size) +bool serialize_endian_sequence_float(MicroBuffer* mb, const Endianness endianness, const float* array, const uint32_t size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_uint64_t(buffer, endianness, array, size); + return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_sequence_int16_t(MicroBuffer* buffer, const Endianness endianness, const int16_t* array, const uint32_t size) +bool serialize_endian_sequence_double(MicroBuffer* mb, const Endianness endianness, const double* array, const uint32_t size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_int16_t(buffer, endianness, array, size); + return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool serialize_endian_sequence_int32_t(MicroBuffer* buffer, const Endianness endianness, const int32_t* array, const uint32_t size) +bool deserialize_endian_sequence_char(MicroBuffer* mb, const Endianness endianness, char* array, const uint32_t array_capacity, uint32_t* size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_int32_t(buffer, endianness, array, size); + return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool serialize_endian_sequence_int64_t(MicroBuffer* buffer, const Endianness endianness, const int64_t* array, const uint32_t size) +bool deserialize_endian_sequence_bool(MicroBuffer* mb, const Endianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_int64_t(buffer, endianness, array, size); + return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool serialize_endian_sequence_float(MicroBuffer* buffer, const Endianness endianness, const float* array, const uint32_t size) +bool deserialize_endian_sequence_uint8_t(MicroBuffer* mb, const Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_float(buffer, endianness, array, size); + return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool serialize_endian_sequence_double(MicroBuffer* buffer, const Endianness endianness, const double* array, const uint32_t size) +bool deserialize_endian_sequence_uint16_t(MicroBuffer* mb, const Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { - serialize_endian_uint32_t(buffer, endianness, size); - return serialize_endian_array_double(buffer, endianness, array, size); + return deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_uint16_t(MicroBuffer* buffer, const Endianness endianness, uint16_t* array, uint32_t* size) +bool deserialize_endian_sequence_uint32_t(MicroBuffer* mb, const Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_uint16_t(buffer, endianness, array, *size); + return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_uint32_t(MicroBuffer* buffer, const Endianness endianness, uint32_t* array, uint32_t* size) +bool deserialize_endian_sequence_uint64_t(MicroBuffer* mb, const Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_uint32_t(buffer, endianness, array, *size); + return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_uint64_t(MicroBuffer* buffer, const Endianness endianness, uint64_t* array, uint32_t* size) +bool deserialize_endian_sequence_int8_t(MicroBuffer* mb, const Endianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_uint64_t(buffer, endianness, array, *size); + return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_int16_t(MicroBuffer* buffer, const Endianness endianness, int16_t* array, uint32_t* size) +bool deserialize_endian_sequence_int16_t(MicroBuffer* mb, const Endianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_int16_t(buffer, endianness, array, *size); + return deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_int32_t(MicroBuffer* buffer, const Endianness endianness, int32_t* array, uint32_t* size) +bool deserialize_endian_sequence_int32_t(MicroBuffer* mb, const Endianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_int32_t(buffer, endianness, array, *size); + return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_int64_t(MicroBuffer* buffer, const Endianness endianness, int64_t* array, uint32_t* size) +bool deserialize_endian_sequence_int64_t(MicroBuffer* mb, const Endianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_int64_t(buffer, endianness, array, *size); + return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_float(MicroBuffer* buffer, const Endianness endianness, float* array, uint32_t* size) +bool deserialize_endian_sequence_float(MicroBuffer* mb, const Endianness endianness, float* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_float(buffer, endianness, array, *size); + return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_double(MicroBuffer* buffer, const Endianness endianness, double* array, uint32_t* size) +bool deserialize_endian_sequence_double(MicroBuffer* mb, const Endianness endianness, double* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_endian_uint32_t(buffer, endianness, size); - return deserialize_endian_array_double(buffer, endianness, array, *size); + return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } diff --git a/src/c/types/sequence_internals.h b/src/c/types/sequence_internals.h new file mode 100644 index 0000000..af58b4e --- /dev/null +++ b/src/c/types/sequence_internals.h @@ -0,0 +1,43 @@ + + +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _SRC_TYPES_SEQUENCE_INTERNALS_H_ +#define _SRC_TYPES_SEQUENCE_INTERNALS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +// ------------------------------------------------------------------- +// INTERNAL SERIALIZATION FUNCTIONS +// ------------------------------------------------------------------- +bool serialize_sequence_byte_1(MicroBuffer* buffer, Endianness endianness, const uint8_t* array, const uint32_t size); +bool serialize_sequence_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); +bool serialize_sequence_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); +bool serialize_sequence_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); + +bool deserialize_sequence_byte_1(MicroBuffer* buffer, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +bool deserialize_sequence_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +bool deserialize_sequence_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +bool deserialize_sequence_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); + +#ifdef __cplusplus +} +#endif + +#endif //_SRC_TYPES_SEQUENCE_INTERNALS_H_ diff --git a/src/c/types/string.c b/src/c/types/string.c new file mode 100644 index 0000000..c567368 --- /dev/null +++ b/src/c/types/string.c @@ -0,0 +1,45 @@ + +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include + +#include + +// ------------------------------------------------------------------- +// PUBLIC SERIALIZATION IMPLEMENTATIONS +// ------------------------------------------------------------------- + +bool serialize_string(MicroBuffer* mb, const char* string) +{ + return serialize_sequence_char(mb, string, (uint32_t)strlen(string) + 1); +} + +bool deserialize_string(MicroBuffer* mb, char* string, const uint32_t string_capacity) +{ + uint32_t length; + return deserialize_sequence_char(mb, string, string_capacity, &length); +} + +bool serialize_endian_string(MicroBuffer* mb, Endianness endianness, const char* string) +{ + return serialize_endian_sequence_char(mb, endianness, string, (uint32_t)strlen(string) + 1); +} + +bool deserialize_endian_string(MicroBuffer* mb, Endianness endianness, char* string, const uint32_t string_capacity) +{ + uint32_t length; + return deserialize_endian_sequence_char(mb, endianness, string, string_capacity, &length); +} diff --git a/test/Alignment.cpp b/test/Alignment.cpp index 3143db4..c978628 100644 --- a/test/Alignment.cpp +++ b/test/Alignment.cpp @@ -12,536 +12,54 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include -#include +#include "serialization/BasicSerialization.hpp" -#define BUFFER_LENGTH 1024 - -TEST(alignment_2, Offset_0) -{ - uint16_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint16_t(&writer, 0); - - deserialize_uint16_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 2); - EXPECT_EQ(reader.iterator - reader.init, 2); -} - -TEST(alignment_2, Offset_1) -{ - uint8_t offset; - uint16_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint16_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint16_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 4); - EXPECT_EQ(reader.iterator - reader.init, 4); -} - -TEST(alignment_2, Offset_2) -{ - uint8_t offset; - uint16_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint16_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint16_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 4); - EXPECT_EQ(reader.iterator - reader.init, 4); -} - -TEST(alignment_2, Offset_3) -{ - uint8_t offset; - uint16_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint16_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint16_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 6); - EXPECT_EQ(reader.iterator - reader.init, 6); -} - -TEST(alignment_4, Offset_0) -{ - uint32_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint32_t(&writer, 0); - - deserialize_uint32_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 4); - EXPECT_EQ(reader.iterator - reader.init, 4); -} - -TEST(alignment_4, Offset_1) -{ - uint8_t offset; - uint32_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint32_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint32_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 8); - EXPECT_EQ(reader.iterator - reader.init, 8); -} - -TEST(alignment_4, Offset_2) +class Alignment : public BasicSerialization, public ::testing::WithParamInterface { - uint8_t offset; - uint32_t data; - uint8_t buffer[BUFFER_LENGTH]; +public: - MicroBuffer writer; - MicroBuffer reader; + Alignment() + { + int offset = GetParam(); + for(int i = 0; i < offset; ++i) + { + uint8_t_serialization(); + } + } - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + void check_alignment(int alignment) + { + EXPECT_EQ(static_cast(micro_buffer_length(&writer)) % alignment, 0); + EXPECT_EQ(static_cast(micro_buffer_length(&reader)) % alignment, 0); + } - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint32_t(&writer, 0); + virtual ~Alignment() + { + } +}; - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint32_t(&reader, &data); +INSTANTIATE_TEST_CASE_P(Offset, Alignment, ::testing::Range(0, 17), ::testing::PrintToStringParamName()); - EXPECT_EQ(writer.iterator - writer.init, 8); - EXPECT_EQ(reader.iterator - reader.init, 8); -} - -TEST(alignment_4, Offset_3) +TEST_P(Alignment, Block_8) { - uint8_t offset; - uint32_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint32_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint32_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 8); - EXPECT_EQ(reader.iterator - reader.init, 8); + uint64_t_serialization(); + check_alignment(8); } -TEST(alignment_4, Offset_4) +TEST_P(Alignment, Block_4) { - uint8_t offset; - uint32_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint32_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint32_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 8); - EXPECT_EQ(reader.iterator - reader.init, 8); + uint32_t_serialization(); + check_alignment(4); } -TEST(alignment_4, Offset_5) +TEST_P(Alignment, Block_2) { - uint8_t offset; - uint32_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint32_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint32_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 12); - EXPECT_EQ(reader.iterator - reader.init, 12); + uint16_t_serialization(); + check_alignment(2); } -TEST(alignment_8, Offset_0) +TEST_P(Alignment, Block_1) { - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint64_t(&writer, 0); - - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 8); - EXPECT_EQ(reader.iterator - reader.init, 8); -} - -TEST(alignment_8, Offset_1) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_2) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_3) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_4) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_5) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_6) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_7) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_8) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 16); - EXPECT_EQ(reader.iterator - reader.init, 16); -} - -TEST(alignment_8, Offset_9) -{ - uint8_t offset; - uint64_t data; - uint8_t buffer[BUFFER_LENGTH]; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint8_t(&writer, 0); - serialize_uint64_t(&writer, 0); - - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint8_t(&reader, &offset); - deserialize_uint64_t(&reader, &data); - - EXPECT_EQ(writer.iterator - writer.init, 24); - EXPECT_EQ(reader.iterator - reader.init, 24); + uint8_t_serialization(); + check_alignment(1); } diff --git a/test/BufferError.cpp b/test/BufferError.cpp deleted file mode 100644 index bd1cfc5..0000000 --- a/test/BufferError.cpp +++ /dev/null @@ -1,479 +0,0 @@ -// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include - -#define BUFFER_LENGTH_KO 0 -#define ARRAY_LENGTH 4 -#define PI 3.1415926535897932384626433832795028 - -static Endianness endianness = BIG_ENDIANNESS; - -TEST(buffer_error, BoolKO) -{ - bool input = true; - bool output; - uint8_t *buffer = NULL; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH_KO); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH_KO); - - EXPECT_FALSE(serialize_bool(&writer, input)); - EXPECT_FALSE(deserialize_bool(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, CharKO) -{ - char input = 'A'; - char output; - uint8_t *buffer = NULL; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH_KO); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH_KO); - - EXPECT_FALSE(serialize_char(&writer, input)); - EXPECT_FALSE(deserialize_char(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Int8KO) -{ - int8_t input = 0x09; - int8_t output; - uint8_t *buffer = NULL; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH_KO); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH_KO); - - EXPECT_FALSE(serialize_int8_t(&writer, input)); - EXPECT_FALSE(deserialize_int8_t(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Uint8KO) -{ - uint8_t input = 0x09; - uint8_t output; - uint8_t *buffer = NULL; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH_KO); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH_KO); - - EXPECT_FALSE(serialize_uint8_t(&writer, input)); - EXPECT_FALSE(deserialize_uint8_t(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Int16KO) -{ - int16_t input = 0x0A0B; - int16_t output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_int16_t(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_int16_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Uint16KO) -{ - uint16_t input = 0x0A0B; - uint16_t output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_uint16_t(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_uint16_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Int32KO) -{ - int32_t input = 0x0C0D0E0F; - int32_t output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_int32_t(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_int32_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Uint32KO) -{ - uint32_t input = 0x0C0D0E0F; - uint32_t output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_uint32_t(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_uint32_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Int64KO) -{ - int64_t input = 0x0102030405060708; - int64_t output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_int64_t(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_int64_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, Uint64KO) -{ - uint64_t input = 0x0102030405060708; - uint64_t output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_uint64_t(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_uint64_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, FloatKO) -{ - float input = static_cast(PI); - float output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_float(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_float(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, DoubleKO) -{ - double input = PI; - double output; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_double(&writer, endianness, input)); - EXPECT_FALSE(deserialize_endian_double(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayBoolKO) -{ - bool input[ARRAY_LENGTH] = {true}; - bool output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_array_bool(&writer, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_array_bool(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayCharKO) -{ - char input[ARRAY_LENGTH] = {'A'}; - char output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_array_char(&writer, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_array_char(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayInt8KO) -{ - int8_t input[ARRAY_LENGTH] = {0x09}; - int8_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_array_int8_t(&writer, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_array_int8_t(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayUint8KO) -{ - uint8_t input[ARRAY_LENGTH] = {0x09}; - uint8_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_array_uint8_t(&writer, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_array_uint8_t(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayInt16KO) -{ - int16_t input[ARRAY_LENGTH] = {0x0A0B}; - int16_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_int16_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_int16_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayUint16KO) -{ - uint16_t input[ARRAY_LENGTH] = {0x0A0B}; - uint16_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_uint16_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_uint16_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayInt32KO) -{ - int32_t input[ARRAY_LENGTH] = {0x0C0D0E0F}; - int32_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_int32_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_int32_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayUint32KO) -{ - uint32_t input[ARRAY_LENGTH] = {0x0C0D0E0F}; - uint32_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_uint32_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_uint32_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayInt64KO) -{ - int64_t input[ARRAY_LENGTH] = {0x0102030405060708}; - int64_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_int64_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_int64_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayUint64KO) -{ - uint64_t input[ARRAY_LENGTH] = {0x0102030405060708}; - uint64_t output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_uint64_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_uint64_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayFloatKO) -{ - float input[ARRAY_LENGTH] = {static_cast(PI)}; - float output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_float(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_float(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - -TEST(buffer_error, ArrayDoubleKO) -{ - double input[ARRAY_LENGTH] = {PI}; - double output[ARRAY_LENGTH]; - uint8_t buffer[sizeof(output) / 2] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, sizeof(output) / 2); - init_micro_buffer(&reader, buffer, sizeof(output) / 2); - - EXPECT_FALSE(serialize_endian_array_double(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_FALSE(deserialize_endian_array_double(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_NOK); - EXPECT_EQ(reader.error, BUFFER_NOK); -} - diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f3aa447..f80f6d9 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -26,9 +26,17 @@ check_gtest() if(GTEST_FOUND) include(CTest) set(SRCS - SerializationDeserialization.cpp + serialization/BasicSerialization.cpp + serialization/StringSerialization.cpp + serialization/ArraySerialization.cpp + serialization/SequenceSerialization.cpp + endianness/BasicEndianness.cpp + endianness/ArrayEndianness.cpp + endianness/SequenceEndianness.cpp + SequenceOverflow.cpp Alignment.cpp - BufferError.cpp) + FullBuffer.cpp + ) add_executable(${PROJECT_NAME} ${SRCS}) set_common_compile_options(${PROJECT_NAME}) add_gtest(${PROJECT_NAME} @@ -39,5 +47,10 @@ if(GTEST_FOUND) ) target_include_directories(${PROJECT_NAME} PRIVATE ${GTEST_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} microcdr ${GTEST_BOTH_LIBRARIES}) + + set_target_properties(${PROJECT_NAME} PROPERTIES + CXX_STANDARD 11 + CXX_STANDARD_REQUIRED YES + ) endif() diff --git a/test/FullBuffer.cpp b/test/FullBuffer.cpp new file mode 100644 index 0000000..2fbd586 --- /dev/null +++ b/test/FullBuffer.cpp @@ -0,0 +1,113 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "serialization/BasicSerialization.hpp" + +class FullBuffer : public BasicSerialization +{ +public: + FullBuffer() + { + } + + void fill_buffer_except(int gap) + { + for(int i = 0; i < BUFFER_LENGTH - gap; ++i) + { + uint8_t_serialization(); + } + + writer_it = writer.iterator; + reader_it = reader.iterator; + } + + void try_block_1() + { + uint8_t input = 0xAA; + uint8_t output = 0; + + EXPECT_FALSE(serialize_uint8_t(&writer, input)); + EXPECT_FALSE(deserialize_uint8_t(&reader, &output)); + } + + void try_block_2() + { + uint16_t input = 0xAABB; + uint16_t output = 0; + + EXPECT_FALSE(serialize_uint16_t(&writer, input)); + EXPECT_FALSE(deserialize_uint16_t(&reader, &output)); + } + + void try_block_4() + { + uint32_t input = 0xAABBCCDD; + uint32_t output = 0; + + EXPECT_FALSE(serialize_uint32_t(&writer, input)); + EXPECT_FALSE(deserialize_uint32_t(&reader, &output)); + } + + void try_block_8() + { + uint64_t input = 0x0123456789ABCDEF; + uint64_t output = 0; + + EXPECT_FALSE(serialize_uint64_t(&writer, input)); + EXPECT_FALSE(deserialize_uint64_t(&reader, &output)); + } + + ~FullBuffer() + { + EXPECT_EQ(writer_it, writer.iterator); + EXPECT_EQ(reader_it, reader.iterator); + EXPECT_TRUE(writer.error); + EXPECT_TRUE(reader.error); + + // To satisfy the base destructor + writer.error = false; + reader.error = false; + } + +private: + uint8_t* writer_it; + uint8_t* reader_it; +}; + +TEST_F(FullBuffer, Block_8) +{ + fill_buffer_except(7); + try_block_8(); + try_block_1(); +} + +TEST_F(FullBuffer, Block_4) +{ + fill_buffer_except(3); + try_block_4(); + try_block_1(); +} + +TEST_F(FullBuffer, Block_2) +{ + fill_buffer_except(1); + try_block_2(); + try_block_1(); +} + +TEST_F(FullBuffer, Block_1) +{ + fill_buffer_except(0); + try_block_1(); +} diff --git a/test/SequenceOverflow.cpp b/test/SequenceOverflow.cpp new file mode 100644 index 0000000..17de428 --- /dev/null +++ b/test/SequenceOverflow.cpp @@ -0,0 +1,76 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "serialization/SequenceSerialization.hpp" + +#define SEQUENCE_SIZE_OVERFLOW ARRAY_CAPACITY + 1 + +class SequenceOverflow : public SequenceSerialization +{ +public: + SequenceOverflow() + { + set_sequence_size(SEQUENCE_SIZE_OVERFLOW); + } + + ~SequenceOverflow() + { + //4 because of the sequence header (no necessary padding) + EXPECT_EQ(micro_buffer_length(&reader), 4); + EXPECT_TRUE(reader.error); + + // To satisfy the base destructor + reader.error = false; + reader.iterator = writer.iterator; + } + +private: +}; + +TEST_F(SequenceOverflow, Block1) +{ + uint8_t input[SEQUENCE_SIZE_OVERFLOW]; + uint8_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint8_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); +} + +TEST_F(SequenceOverflow, Block2) +{ + uint16_t input[SEQUENCE_SIZE_OVERFLOW]; + uint16_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint16_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); +} + +TEST_F(SequenceOverflow, Block4) +{ + uint32_t input[SEQUENCE_SIZE_OVERFLOW]; + uint32_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint32_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); +} + +TEST_F(SequenceOverflow, Block8) +{ + uint64_t input[SEQUENCE_SIZE_OVERFLOW]; + uint64_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint64_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); +} + diff --git a/test/SerializationDeserialization.cpp b/test/SerializationDeserialization.cpp deleted file mode 100644 index 664a183..0000000 --- a/test/SerializationDeserialization.cpp +++ /dev/null @@ -1,911 +0,0 @@ -// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include -#include - -#define BUFFER_LENGTH 1024 -#define ARRAY_LENGTH 4u -#define PI 3.1415926535897932384626433832795028 - -static Endianness endianness = BIG_ENDIANNESS; - -TEST(serialization_deserialization, Bool) -{ - bool input = true; - bool output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_bool(&writer, input)); - EXPECT_TRUE(deserialize_bool(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Char) -{ - char input = 'A'; - char output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_char(&writer, input)); - EXPECT_TRUE(deserialize_char(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Int8) -{ - int8_t input = 0x09; - int8_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_int8_t(&writer, input)); - EXPECT_TRUE(deserialize_int8_t(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Uint8) -{ - uint8_t input = 0x09; - uint8_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_uint8_t(&writer, input)); - EXPECT_TRUE(deserialize_uint8_t(&reader, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Int16) -{ - int16_t input = 0x0A0B; - int16_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_int16_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_int16_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Uint16) -{ - uint16_t input = 0x0A0B; - uint16_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_uint16_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_uint16_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Int32) -{ - int32_t input = 0x0C0D0E0F; - int32_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_int32_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_int32_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Uint32) -{ - uint32_t input = 0x0C0D0E0F; - uint32_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_uint32_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_uint32_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Int64) -{ - int64_t input = 0x0102030405060708L; - int64_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_int64_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_int64_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Uint64) -{ - uint64_t input = 0x0102030405060708L; - uint64_t output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_uint64_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_uint64_t(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Float) -{ - float input = static_cast(PI); - float output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_float(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_float(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, Double) -{ - double input = PI; - double output; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_double(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_double(&reader, endianness, &output)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(input, output); -} - -TEST(serialization_deserialization, ArrayBool) -{ - bool input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, true); - bool output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_array_bool(&writer, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_array_bool(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayChar) -{ - char input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 'A'); - char output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_array_char(&writer, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_array_char(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayInt8) -{ - int8_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x09); - int8_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_array_int8_t(&writer, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_array_int8_t(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayUint8) -{ - uint8_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x09); - uint8_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_array_uint8_t(&writer, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_array_uint8_t(&reader, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayInt16) -{ - int16_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0A0B); - int16_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_int16_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_int16_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayUint16) -{ - uint16_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0A0B); - uint16_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_uint16_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_uint16_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayInt32) -{ - int32_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0C0D0E0F); - int32_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_int32_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_int32_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayUint32) -{ - uint32_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0C0D0E0F); - uint32_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_uint32_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_uint32_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayInt64) -{ - int64_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0102030405060708L); - int64_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_int64_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_int64_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayUint64) -{ - uint64_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0102030405060708L); - uint64_t output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_uint64_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_uint64_t(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayFloat) -{ - float input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, static_cast(PI)); - float output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_float(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_float(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, ArrayDouble) -{ - double input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, PI); - double output[ARRAY_LENGTH]; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_array_double(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_array_double(&reader, endianness, output, ARRAY_LENGTH)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceChar) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - char input[ARRAY_LENGTH]; - std::fill_n(input, sequence_size, 'A'); - char output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_sequence_char(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_char(&reader, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceBool) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - bool input[ARRAY_LENGTH]; - std::fill_n(input, sequence_size, true); - bool output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_sequence_bool(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_bool(&reader, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceInt8) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - int8_t input[ARRAY_LENGTH]; - std::fill_n(input, sequence_size, 0x09); - int8_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_sequence_int8_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_int8_t(&reader, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceUint8) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - uint8_t input[ARRAY_LENGTH]; - std::fill_n(input, sequence_size, 0x09); - uint8_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_sequence_uint8_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_uint8_t(&reader, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceInt16) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - int16_t input[ARRAY_LENGTH]; - std::fill_n(input, sequence_size, 0x0A0B); - int16_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_int16_t(&writer, endianness, input, sequence_size)); - EXPECT_TRUE(deserialize_endian_sequence_int16_t(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceUint16) -{ - uint16_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0A0B); - uint16_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_uint16_t(&writer, endianness, input, ARRAY_LENGTH)); - EXPECT_TRUE(deserialize_endian_sequence_uint16_t(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(ARRAY_LENGTH, outputSize); - for (uint32_t i = 0; i < ARRAY_LENGTH; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceInt32) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - int32_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0A0B0C0D); - int32_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_int32_t(&writer, endianness, input, sequence_size)); - EXPECT_TRUE(deserialize_endian_sequence_int32_t(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceUint32) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - uint32_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0A0B0C0D); - uint32_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_uint32_t(&writer, endianness, input, sequence_size)); - EXPECT_TRUE(deserialize_endian_sequence_uint32_t(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceInt64) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - int64_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0102030405060708L); - int64_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_int64_t(&writer, endianness, input, sequence_size)); - EXPECT_TRUE(deserialize_endian_sequence_int64_t(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceUint64) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - uint64_t input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, 0x0102030405060708L); - uint64_t output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_uint64_t(&writer, endianness, input, sequence_size)); - EXPECT_TRUE(deserialize_endian_sequence_uint64_t(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceFloat) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - float input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, static_cast(PI)); - float output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_float(&writer, endianness, input, sequence_size)); - EXPECT_TRUE(deserialize_endian_sequence_float(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} - -TEST(serialization_deserialization, SequenceDouble) -{ - uint32_t sequence_size = ARRAY_LENGTH / 2; - double input[ARRAY_LENGTH]; - std::fill_n(input, ARRAY_LENGTH, PI); - double output[ARRAY_LENGTH]; - uint32_t outputSize = 0; - uint8_t buffer[BUFFER_LENGTH] = {0}; - - MicroBuffer writer; - MicroBuffer reader; - - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); - - EXPECT_TRUE(serialize_endian_sequence_double(&writer, endianness, input, sequence_size)); - EXPECT_TRUE(deserialize_endian_sequence_double(&reader, endianness, output, &outputSize)); - - EXPECT_EQ(writer.error, BUFFER_OK); - EXPECT_EQ(reader.error, BUFFER_OK); - - EXPECT_EQ(sequence_size, outputSize); - - for (uint32_t i = 0; i < sequence_size; i++) - { - EXPECT_EQ(input[i], output[i]); - } -} diff --git a/test/endianness/ArrayEndianness.cpp b/test/endianness/ArrayEndianness.cpp new file mode 100644 index 0000000..fcbf906 --- /dev/null +++ b/test/endianness/ArrayEndianness.cpp @@ -0,0 +1,130 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "../serialization/ArraySerialization.hpp" + +class ArrayEndianness : public ArraySerialization, public ::testing::WithParamInterface +{ +public: + + ArrayEndianness() + { + endianness = GetParam(); + } + + virtual ~ArrayEndianness() + { + } + +protected: + Endianness endianness; +}; + +TEST_P(ArrayEndianness, Int16) +{ + int16_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0A0B); + int16_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_int16_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_int16_t(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +TEST_P(ArrayEndianness, Uint16) +{ + uint16_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0A0B); + uint16_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_uint16_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_uint16_t(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +TEST_P(ArrayEndianness, Int32) +{ + int32_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); + int32_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_int32_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_int32_t(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +TEST_P(ArrayEndianness, Uint32) +{ + uint32_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); + uint32_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_uint32_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_uint32_t(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +TEST_P(ArrayEndianness, Int64) +{ + int64_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); + int64_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_int64_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_int64_t(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +TEST_P(ArrayEndianness, Uint64) +{ + uint64_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); + uint64_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_uint64_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_uint64_t(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +TEST_P(ArrayEndianness, Float) +{ + float input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462f); + float output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_float(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_float(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +TEST_P(ArrayEndianness, Double) +{ + double input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462); + double output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_endian_array_double(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_endian_array_double(&reader, endianness, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); +} + +INSTANTIATE_TEST_CASE_P(Endianness, ArrayEndianness, ::testing::Values(LITTLE_ENDIANNESS, BIG_ENDIANNESS)); diff --git a/test/endianness/BasicEndianness.cpp b/test/endianness/BasicEndianness.cpp new file mode 100644 index 0000000..3657dbc --- /dev/null +++ b/test/endianness/BasicEndianness.cpp @@ -0,0 +1,122 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "../serialization/BasicSerialization.hpp" + +class BasicEndianness : public BasicSerialization, public ::testing::WithParamInterface +{ +public: + + BasicEndianness() + { + endianness = GetParam(); + } + + virtual ~BasicEndianness() + { + } + +protected: + Endianness endianness; +}; + +TEST_P(BasicEndianness, Int16) +{ + int16_t input = 0x0A0B; + int16_t output = 0; + + EXPECT_TRUE(serialize_endian_int16_t(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_int16_t(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +TEST_P(BasicEndianness, Uint16) +{ + uint16_t input = 0x0A0B; + uint16_t output = 0; + + EXPECT_TRUE(serialize_endian_uint16_t(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_uint16_t(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +TEST_P(BasicEndianness, Int32) +{ + int32_t input = 0x0C0D0E0F; + int32_t output = 0; + + EXPECT_TRUE(serialize_endian_int32_t(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_int32_t(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +TEST_P(BasicEndianness, Uint32) +{ + uint32_t input = 0x0C0D0E0F; + uint32_t output = 0; + + EXPECT_TRUE(serialize_endian_uint32_t(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_uint32_t(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +TEST_P(BasicEndianness, Int64) +{ + int64_t input = 0x0102030405060708L; + int64_t output = 0; + + EXPECT_TRUE(serialize_endian_int64_t(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_int64_t(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +TEST_P(BasicEndianness, Uint64) +{ + uint64_t input = 0x0102030405060708L; + uint64_t output = 0; + + EXPECT_TRUE(serialize_endian_uint64_t(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_uint64_t(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +TEST_P(BasicEndianness, Float) +{ + float input = 3.141592653589793238462f; + float output = 0; + + EXPECT_TRUE(serialize_endian_float(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_float(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +TEST_P(BasicEndianness, Double) +{ + double input = 3.141592653589793238462; + double output = 0; + + EXPECT_TRUE(serialize_endian_double(&writer, endianness, input)); + EXPECT_TRUE(deserialize_endian_double(&reader, endianness, &output)); + + EXPECT_EQ(input, output); +} + +INSTANTIATE_TEST_CASE_P(Endianness, BasicEndianness, ::testing::Values(LITTLE_ENDIANNESS, BIG_ENDIANNESS)); diff --git a/test/endianness/SequenceEndianness.cpp b/test/endianness/SequenceEndianness.cpp new file mode 100644 index 0000000..0516482 --- /dev/null +++ b/test/endianness/SequenceEndianness.cpp @@ -0,0 +1,179 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "../serialization/SequenceSerialization.hpp" + +class SequenceEndianness : public SequenceSerialization, public ::testing::WithParamInterface +{ +public: + + SequenceEndianness() + { + endianness = GetParam(); + } + + virtual ~SequenceEndianness() + { + } + + +protected: + Endianness endianness; +}; + +TEST_P(SequenceEndianness, Bool) +{ + bool input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, true); + bool output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_bool(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_bool(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Char) +{ + char input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 'A'); + char output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_char(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_char(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Int8) +{ + int8_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x09); + int8_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_int8_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_int8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Uint8) +{ + uint8_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x09); + uint8_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_uint8_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_uint8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Int16) +{ + int16_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x0A0B); + int16_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_int16_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_int16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Uint16) +{ + uint16_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x0A0B); + uint16_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_uint16_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_uint16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Int32) +{ + int32_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x0A0B0C0D); + int32_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_int32_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_int32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Uint32) +{ + uint32_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x0A0B0C0D); + uint32_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_uint32_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_uint32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Int64) +{ + int64_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x0102030405060708L); + int64_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_int64_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_int64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Uint64) +{ + uint64_t input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 0x0102030405060708L); + uint64_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_uint64_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_uint64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Float) +{ + float input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 3.141592653589793238462f); + float output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_float(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_float(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +TEST_P(SequenceEndianness, Double) +{ + double input[ARRAY_CAPACITY]; + std::fill_n(input, SEQUENCE_SIZE, 3.141592653589793238462); + double output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_endian_sequence_double(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(deserialize_endian_sequence_double(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); +} + +INSTANTIATE_TEST_CASE_P(Endianness, SequenceEndianness, ::testing::Values(LITTLE_ENDIANNESS, BIG_ENDIANNESS)); diff --git a/test/serialization/ArraySerialization.cpp b/test/serialization/ArraySerialization.cpp new file mode 100644 index 0000000..b244212 --- /dev/null +++ b/test/serialization/ArraySerialization.cpp @@ -0,0 +1,75 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "ArraySerialization.hpp" + +TEST_F(ArraySerialization, Bool) +{ + bool_array_serialization(); +} + +TEST_F(ArraySerialization, Char) +{ + char_array_serialization(); +} + +TEST_F(ArraySerialization, Int8) +{ + int8_t_array_serialization(); +} + +TEST_F(ArraySerialization, Uint8) +{ + uint8_t_array_serialization(); +} + +TEST_F(ArraySerialization, Int16) +{ + int16_t_array_serialization(); +} + +TEST_F(ArraySerialization, Uint16) +{ + uint16_t_array_serialization(); +} + +TEST_F(ArraySerialization, Int32) +{ + int32_t_array_serialization(); +} + +TEST_F(ArraySerialization, Uint32) +{ + uint32_t_array_serialization(); +} + +TEST_F(ArraySerialization, Int64) +{ + int64_t_array_serialization(); +} + +TEST_F(ArraySerialization, Uint64) +{ + uint64_t_array_serialization(); +} + +TEST_F(ArraySerialization, Float) +{ + float_array_serialization(); +} + +TEST_F(ArraySerialization, Double) +{ + double_array_serialization(); +} diff --git a/test/serialization/ArraySerialization.hpp b/test/serialization/ArraySerialization.hpp new file mode 100644 index 0000000..bbfd748 --- /dev/null +++ b/test/serialization/ArraySerialization.hpp @@ -0,0 +1,179 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _ARRAY_SERIALIZATION_HPP_ +#define _ARRAY_SERIALIZATION_HPP_ + +#include "BasicSerialization.hpp" + +#define ARRAY_SIZE 32 + +class ArraySerialization : public BasicSerialization +{ +public: + + ArraySerialization() + { + } + + virtual ~ArraySerialization() + { + } + + void bool_array_serialization() + { + bool input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, true); + bool output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_bool(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_bool(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void char_array_serialization() + { + char input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 'A'); + char output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_char(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_char(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void int8_t_array_serialization() + { + int8_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x09); + int8_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_int8_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_int8_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void uint8_t_array_serialization() + { + uint8_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x09); + uint8_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_uint8_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_uint8_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void int16_t_array_serialization() + { + int16_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0A0B); + int16_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_int16_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_int16_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void uint16_t_array_serialization() + { + uint16_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0A0B); + uint16_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_uint16_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_uint16_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void int32_t_array_serialization() + { + int32_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); + int32_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_int32_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_int32_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void uint32_t_array_serialization() + { + uint32_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); + uint32_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_uint32_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_uint32_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void int64_t_array_serialization() + { + int64_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); + int64_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_int64_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_int64_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void uint64_t_array_serialization() + { + uint64_t input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); + uint64_t output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_uint64_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_uint64_t(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void float_array_serialization() + { + float input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462f); + float output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_float(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_float(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } + + void double_array_serialization() + { + double input[ARRAY_SIZE]; + std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462); + double output[ARRAY_SIZE]; + + EXPECT_TRUE(serialize_array_double(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(deserialize_array_double(&reader, output, ARRAY_SIZE)); + + EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); + } +}; + +#endif //_ARRAY_SERIALIZATION_HPP_ diff --git a/test/serialization/BasicSerialization.cpp b/test/serialization/BasicSerialization.cpp new file mode 100644 index 0000000..9618f35 --- /dev/null +++ b/test/serialization/BasicSerialization.cpp @@ -0,0 +1,76 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "BasicSerialization.hpp" + +TEST_F(BasicSerialization, Bool) +{ + bool_serialization(); +} + +TEST_F(BasicSerialization, Char) +{ + char_serialization(); +} + +TEST_F(BasicSerialization, Int8) +{ + int8_t_serialization(); +} + +TEST_F(BasicSerialization, Uint8) +{ + uint8_t_serialization(); +} + +TEST_F(BasicSerialization, Int16) +{ + int16_t_serialization(); +} + +TEST_F(BasicSerialization, Uint16) +{ + uint16_t_serialization(); +} + +TEST_F(BasicSerialization, Int32) +{ + int32_t_serialization(); +} + +TEST_F(BasicSerialization, Uint32) +{ + uint32_t_serialization(); +} + +TEST_F(BasicSerialization, Int64) +{ + int64_t_serialization(); +} + +TEST_F(BasicSerialization, Uint64) +{ + uint64_t_serialization(); +} + +TEST_F(BasicSerialization, Float) +{ + float_serialization(); +} + +TEST_F(BasicSerialization, Double) +{ + double_serialization(); +} + diff --git a/test/serialization/BasicSerialization.hpp b/test/serialization/BasicSerialization.hpp new file mode 100644 index 0000000..0f11d0c --- /dev/null +++ b/test/serialization/BasicSerialization.hpp @@ -0,0 +1,200 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _BASIC_SERIALIZATION_HPP_ +#define _BASIC_SERIALIZATION_HPP_ + +#include +#include +#include +#include + +#define BUFFER_LENGTH 1024 + +class BasicSerialization : public ::testing::Test +{ +public: + + BasicSerialization() + { + std::memset(buffer, 0, BUFFER_LENGTH); + init_micro_buffer(&writer, buffer, BUFFER_LENGTH); + init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + } + + void check_data_size(uint32_t data_size) + { + EXPECT_EQ(writer.last_data_size, data_size); + EXPECT_EQ(reader.last_data_size, data_size); + } + + virtual ~BasicSerialization() + { + EXPECT_EQ(writer.iterator, reader.iterator); + EXPECT_FALSE(writer.error); + EXPECT_FALSE(reader.error); + } + + void bool_serialization() + { + bool input = true; + bool output = 0; + + EXPECT_TRUE(serialize_bool(&writer, input)); + EXPECT_TRUE(deserialize_bool(&reader, &output)); + + EXPECT_EQ(input, output); + + check_data_size(1); + } + + void char_serialization() + { + char input = 'A'; + char output = 0; + + EXPECT_TRUE(serialize_char(&writer, input)); + EXPECT_TRUE(deserialize_char(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(1); + } + + void int8_t_serialization() + { + int8_t input = 0x09; + int8_t output = 0; + + EXPECT_TRUE(serialize_int8_t(&writer, input)); + EXPECT_TRUE(deserialize_int8_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(1); + } + + void uint8_t_serialization() + { + uint8_t input = 0x09; + uint8_t output = 0; + + EXPECT_TRUE(serialize_uint8_t(&writer, input)); + EXPECT_TRUE(deserialize_uint8_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(1); + } + + void int16_t_serialization() + { + int16_t input = 0x0A0B; + int16_t output = 0; + + EXPECT_TRUE(serialize_int16_t(&writer, input)); + EXPECT_TRUE(deserialize_int16_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(2); + } + + void uint16_t_serialization() + { + uint16_t input = 0x0A0B; + uint16_t output = 0; + + EXPECT_TRUE(serialize_uint16_t(&writer, input)); + EXPECT_TRUE(deserialize_uint16_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(2); + } + + void int32_t_serialization() + { + int32_t input = 0x0C0D0E0F; + int32_t output = 0; + + EXPECT_TRUE(serialize_int32_t(&writer, input)); + EXPECT_TRUE(deserialize_int32_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(4); + } + + void uint32_t_serialization() + { + uint32_t input = 0x0C0D0E0F; + uint32_t output = 0; + + EXPECT_TRUE(serialize_uint32_t(&writer, input)); + EXPECT_TRUE(deserialize_uint32_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(4); + } + + void int64_t_serialization() + { + int64_t input = 0x0102030405060708L; + int64_t output = 0; + + EXPECT_TRUE(serialize_int64_t(&writer, input)); + EXPECT_TRUE(deserialize_int64_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(8); + } + + void uint64_t_serialization() + { + uint64_t input = 0x0102030405060708L; + uint64_t output = 0; + + EXPECT_TRUE(serialize_uint64_t(&writer, input)); + EXPECT_TRUE(deserialize_uint64_t(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(8); + } + + void float_serialization() + { + float input = 3.141592653589793238462f; + float output = 0; + + EXPECT_TRUE(serialize_float(&writer, input)); + EXPECT_TRUE(deserialize_float(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(4); + } + + void double_serialization() + { + double input = 3.141592653589793238462; + double output = 0; + + EXPECT_TRUE(serialize_double(&writer, input)); + EXPECT_TRUE(deserialize_double(&reader, &output)); + + EXPECT_EQ(input, output); + check_data_size(8); + } + +protected: + MicroBuffer writer; + MicroBuffer reader; + uint8_t buffer[BUFFER_LENGTH]; +}; + +#endif //_BASIC_SERIALIZATION_HPP_ diff --git a/test/serialization/SequenceSerialization.cpp b/test/serialization/SequenceSerialization.cpp new file mode 100644 index 0000000..7f15dab --- /dev/null +++ b/test/serialization/SequenceSerialization.cpp @@ -0,0 +1,76 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "SequenceSerialization.hpp" + +TEST_F(SequenceSerialization, Bool) +{ + bool_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Char) +{ + char_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Int8) +{ + int8_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Uint8) +{ + uint8_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Int16) +{ + int16_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Uint16) +{ + uint16_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Int32) +{ + int32_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Uint32) +{ + uint32_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Int64) +{ + int64_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Uint64) +{ + uint64_t_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Float) +{ + float_sequence_serialization(); +} + +TEST_F(SequenceSerialization, Double) +{ + double_sequence_serialization(); +} + diff --git a/test/serialization/SequenceSerialization.hpp b/test/serialization/SequenceSerialization.hpp new file mode 100644 index 0000000..28ce435 --- /dev/null +++ b/test/serialization/SequenceSerialization.hpp @@ -0,0 +1,190 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _SEQUENCE_SERIALIZATION_HPP_ +#define _SEQUENCE_SERIALIZATION_HPP_ + +#include "ArraySerialization.hpp" + +#define SEQUENCE_SIZE 16 +#define ARRAY_CAPACITY ARRAY_SIZE + +class SequenceSerialization : public ArraySerialization +{ +public: + + SequenceSerialization() : sequence_size(SEQUENCE_SIZE) + { + } + + virtual ~SequenceSerialization() + { + EXPECT_EQ(output_size, sequence_size); + } + + void set_sequence_size(uint32_t size) + { + sequence_size = size; + } + + void bool_sequence_serialization() + { + bool input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, true); + bool output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_bool(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_bool(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void char_sequence_serialization() + { + char input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 'A'); + char output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_char(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_char(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void int8_t_sequence_serialization() + { + int8_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x09); + int8_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_int8_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_int8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void uint8_t_sequence_serialization() + { + uint8_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x09); + uint8_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint8_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void int16_t_sequence_serialization() + { + int16_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x0A0B); + int16_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_int16_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_int16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void uint16_t_sequence_serialization() + { + uint16_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x0A0B); + uint16_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint16_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void int32_t_sequence_serialization() + { + int32_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x0A0B0C0D); + int32_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_int32_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_int32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void uint32_t_sequence_serialization() + { + uint32_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x0A0B0C0D); + uint32_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint32_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void int64_t_sequence_serialization() + { + int64_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x0102030405060708L); + int64_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_int64_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_int64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void uint64_t_sequence_serialization() + { + uint64_t input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 0x0102030405060708L); + uint64_t output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_uint64_t(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void float_sequence_serialization() + { + float input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 3.141592653589793238462f); + float output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_float(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_float(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + + void double_sequence_serialization() + { + double input[ARRAY_CAPACITY]; + std::fill_n(input, sequence_size, 3.141592653589793238462); + double output[ARRAY_CAPACITY]; + + EXPECT_TRUE(serialize_sequence_double(&writer, input, sequence_size)); + EXPECT_TRUE(deserialize_sequence_double(&reader, output, ARRAY_CAPACITY, &output_size)); + + EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); + } + +protected: + uint32_t sequence_size; + uint32_t output_size = 0; +}; + +#endif //_SEQUENCE_SERIALIZATION_HPP_ diff --git a/test/serialization/StringSerialization.cpp b/test/serialization/StringSerialization.cpp new file mode 100644 index 0000000..fa57080 --- /dev/null +++ b/test/serialization/StringSerialization.cpp @@ -0,0 +1,21 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "StringSerialization.hpp" + +TEST_F(StringSerialization, String) +{ + string_serialization(); +} + diff --git a/test/serialization/StringSerialization.hpp b/test/serialization/StringSerialization.hpp new file mode 100644 index 0000000..884d8e4 --- /dev/null +++ b/test/serialization/StringSerialization.hpp @@ -0,0 +1,45 @@ +// Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _STRING_SERIALIZATION_HPP_ +#define _STRING_SERIALIZATION_HPP_ + +#include "BasicSerialization.hpp" + +#define MAX_STRING_LENGTH 64 + +class StringSerialization : public BasicSerialization +{ +public: + StringSerialization() + { + } + + virtual ~StringSerialization() + { + } + + void string_serialization() + { + char input[MAX_STRING_LENGTH] = "This is a message test"; + char output[MAX_STRING_LENGTH] = {0}; + + EXPECT_TRUE(serialize_string(&writer, input)); + EXPECT_TRUE(deserialize_string(&reader, output, MAX_STRING_LENGTH)); + + EXPECT_STREQ(input, output); + } +}; + +#endif //_STRING_SERIALIZATION_HPP_ From 94d6a52fde5b013c946060826c68c376a93f602d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Enrique=20Mu=C3=B1oz=20Mart=C3=ADn?= Date: Fri, 21 Sep 2018 08:58:14 +0200 Subject: [PATCH 3/9] Refs #3408. Modified DLL exports (#10) --- examples/basic.c | 2 +- include/microcdr/common.h | 40 ++++----- include/microcdr/{microcdr_dll.h => dll.h} | 16 ++-- include/microcdr/types/array.h | 80 +++++++++--------- include/microcdr/types/basic.h | 80 +++++++++--------- include/microcdr/types/sequence.h | 96 +++++++++++----------- include/microcdr/types/string.h | 8 +- 7 files changed, 160 insertions(+), 162 deletions(-) rename include/microcdr/{microcdr_dll.h => dll.h} (74%) diff --git a/examples/basic.c b/examples/basic.c index d2174db..e1adf4b 100644 --- a/examples/basic.c +++ b/examples/basic.c @@ -31,7 +31,7 @@ int main() init_micro_buffer(&reader, buffer, BUFFER_LENGTH); // Serialize data - char input[16] = "Hello microCDR!"; //16 characters + char input[16] = "Hello MicroCDR!"; //16 characters serialize_array_char(&writer, input, 16); // Deserialize data diff --git a/include/microcdr/common.h b/include/microcdr/common.h index df28187..53f8d03 100644 --- a/include/microcdr/common.h +++ b/include/microcdr/common.h @@ -19,8 +19,8 @@ extern "C" { #endif -#include -#include +#include +#include #include #include @@ -45,28 +45,28 @@ typedef struct MicroBuffer } MicroBuffer; -microcdr_DllAPI extern const Endianness MACHINE_ENDIANNESS; +MCDLLAPI extern const Endianness MACHINE_ENDIANNESS; // ------------------------------------------------ // Main library functions // ------------------------------------------------ -microcdr_DllAPI void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); -microcdr_DllAPI void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); -microcdr_DllAPI void init_micro_buffer_offset_endian (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, Endianness endianness); -microcdr_DllAPI void copy_micro_buffer (MicroBuffer* mb_dest, const MicroBuffer* mb_source); - -microcdr_DllAPI void reset_micro_buffer (MicroBuffer* mb); -microcdr_DllAPI void reset_micro_buffer_offset (MicroBuffer* mb, const uint32_t offset); - -microcdr_DllAPI void align_to (MicroBuffer* mb, const uint32_t alignment); -microcdr_DllAPI uint32_t get_alignment (uint32_t buffer_position, const uint32_t data_size); //change name -microcdr_DllAPI uint32_t get_alignment_offset(const MicroBuffer* mb, const uint32_t data_size); //change name - -microcdr_DllAPI size_t micro_buffer_size (const MicroBuffer* mb); -microcdr_DllAPI size_t micro_buffer_length (const MicroBuffer* mb); -microcdr_DllAPI size_t micro_buffer_remaining (const MicroBuffer* mb); -microcdr_DllAPI Endianness micro_buffer_endianness(const MicroBuffer* mb); -microcdr_DllAPI bool micro_buffer_has_error (const MicroBuffer* mb); +MCDLLAPI void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); +MCDLLAPI void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +MCDLLAPI void init_micro_buffer_offset_endian (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, Endianness endianness); +MCDLLAPI void copy_micro_buffer (MicroBuffer* mb_dest, const MicroBuffer* mb_source); + +MCDLLAPI void reset_micro_buffer (MicroBuffer* mb); +MCDLLAPI void reset_micro_buffer_offset (MicroBuffer* mb, const uint32_t offset); + +MCDLLAPI void align_to (MicroBuffer* mb, const uint32_t alignment); +MCDLLAPI uint32_t get_alignment (uint32_t buffer_position, const uint32_t data_size); //change name +MCDLLAPI uint32_t get_alignment_offset(const MicroBuffer* mb, const uint32_t data_size); //change name + +MCDLLAPI size_t micro_buffer_size (const MicroBuffer* mb); +MCDLLAPI size_t micro_buffer_length (const MicroBuffer* mb); +MCDLLAPI size_t micro_buffer_remaining (const MicroBuffer* mb); +MCDLLAPI Endianness micro_buffer_endianness(const MicroBuffer* mb); +MCDLLAPI bool micro_buffer_has_error (const MicroBuffer* mb); #ifdef __cplusplus } diff --git a/include/microcdr/microcdr_dll.h b/include/microcdr/dll.h similarity index 74% rename from include/microcdr/microcdr_dll.h rename to include/microcdr/dll.h index b3666f2..83a1b95 100644 --- a/include/microcdr/microcdr_dll.h +++ b/include/microcdr/dll.h @@ -13,23 +13,21 @@ // limitations under the License. -#ifndef _MICROCDR_MICROCDR_DLL_H_ -#define _MICROCDR_MICROCDR_DLL_H_ - -#include +#ifndef _MICROCDR_DLL_H_ +#define _MICROCDR_DLL_H_ #if defined(_WIN32) #if defined(microcdr_SHARED) #if defined(microcdr_EXPORTS) -#define microcdr_DllAPI __declspec( dllexport ) +#define MCDLLAPI __declspec( dllexport ) #else -#define microcdr_DllAPI __declspec( dllimport ) +#define MCDLLAPI __declspec( dllimport ) #endif // microcdr_EXPORTS #else -#define microcdr_DllAPI +#define MCDLLAPI #endif // BUILDING_SHARED_LIBS #else -#define microcdr_DllAPI +#define MCDLLAPI #endif // _WIN32 -#endif // _MICROCDR_MICROCDR_DLL_H_ +#endif // _MICROCDR_DLL_H_ diff --git a/include/microcdr/types/array.h b/include/microcdr/types/array.h index 043015e..51d19a6 100644 --- a/include/microcdr/types/array.h +++ b/include/microcdr/types/array.h @@ -25,49 +25,49 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -microcdr_DllAPI bool serialize_array_char(MicroBuffer* mb, const char* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_bool(MicroBuffer* mb, const bool* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_float(MicroBuffer* mb, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_array_double(MicroBuffer* mb, const double* array, const uint32_t size); +MCDLLAPI bool serialize_array_char(MicroBuffer* mb, const char* array, const uint32_t size); +MCDLLAPI bool serialize_array_bool(MicroBuffer* mb, const bool* array, const uint32_t size); +MCDLLAPI bool serialize_array_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); +MCDLLAPI bool serialize_array_float(MicroBuffer* mb, const float* array, const uint32_t size); +MCDLLAPI bool serialize_array_double(MicroBuffer* mb, const double* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_char(MicroBuffer* mb, char* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_bool(MicroBuffer* mb, bool* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_float(MicroBuffer* mb, float* array, const uint32_t size); -microcdr_DllAPI bool deserialize_array_double(MicroBuffer* mb, double* array, const uint32_t size); +MCDLLAPI bool deserialize_array_char(MicroBuffer* mb, char* array, const uint32_t size); +MCDLLAPI bool deserialize_array_bool(MicroBuffer* mb, bool* array, const uint32_t size); +MCDLLAPI bool deserialize_array_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t size); +MCDLLAPI bool deserialize_array_float(MicroBuffer* mb, float* array, const uint32_t size); +MCDLLAPI bool deserialize_array_double(MicroBuffer* mb, double* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_array_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); +MCDLLAPI bool serialize_endian_array_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_array_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t size); +MCDLLAPI bool deserialize_endian_array_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t size); #ifdef __cplusplus } diff --git a/include/microcdr/types/basic.h b/include/microcdr/types/basic.h index 5bd6478..ec197d4 100644 --- a/include/microcdr/types/basic.h +++ b/include/microcdr/types/basic.h @@ -25,49 +25,49 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -microcdr_DllAPI bool serialize_char(MicroBuffer* mb, const char value); -microcdr_DllAPI bool serialize_bool(MicroBuffer* mb, const bool value); -microcdr_DllAPI bool serialize_uint8_t(MicroBuffer* mb, const uint8_t value); -microcdr_DllAPI bool serialize_uint16_t(MicroBuffer* mb, const uint16_t value); -microcdr_DllAPI bool serialize_uint32_t(MicroBuffer* mb, const uint32_t value); -microcdr_DllAPI bool serialize_uint64_t(MicroBuffer* mb, const uint64_t value); -microcdr_DllAPI bool serialize_int8_t(MicroBuffer* mb, const int8_t value); -microcdr_DllAPI bool serialize_int16_t(MicroBuffer* mb, const int16_t value); -microcdr_DllAPI bool serialize_int32_t(MicroBuffer* mb, const int32_t value); -microcdr_DllAPI bool serialize_int64_t(MicroBuffer* mb, const int64_t value); -microcdr_DllAPI bool serialize_float(MicroBuffer* mb, const float value); -microcdr_DllAPI bool serialize_double(MicroBuffer* mb, const double value); +MCDLLAPI bool serialize_char(MicroBuffer* mb, const char value); +MCDLLAPI bool serialize_bool(MicroBuffer* mb, const bool value); +MCDLLAPI bool serialize_uint8_t(MicroBuffer* mb, const uint8_t value); +MCDLLAPI bool serialize_uint16_t(MicroBuffer* mb, const uint16_t value); +MCDLLAPI bool serialize_uint32_t(MicroBuffer* mb, const uint32_t value); +MCDLLAPI bool serialize_uint64_t(MicroBuffer* mb, const uint64_t value); +MCDLLAPI bool serialize_int8_t(MicroBuffer* mb, const int8_t value); +MCDLLAPI bool serialize_int16_t(MicroBuffer* mb, const int16_t value); +MCDLLAPI bool serialize_int32_t(MicroBuffer* mb, const int32_t value); +MCDLLAPI bool serialize_int64_t(MicroBuffer* mb, const int64_t value); +MCDLLAPI bool serialize_float(MicroBuffer* mb, const float value); +MCDLLAPI bool serialize_double(MicroBuffer* mb, const double value); -microcdr_DllAPI bool deserialize_char(MicroBuffer* mb, char* value); -microcdr_DllAPI bool deserialize_bool(MicroBuffer* mb, bool* value); -microcdr_DllAPI bool deserialize_uint8_t(MicroBuffer* mb, uint8_t* value); -microcdr_DllAPI bool deserialize_uint16_t(MicroBuffer* mb, uint16_t* value); -microcdr_DllAPI bool deserialize_uint32_t(MicroBuffer* mb, uint32_t* value); -microcdr_DllAPI bool deserialize_uint64_t(MicroBuffer* mb, uint64_t* value); -microcdr_DllAPI bool deserialize_int8_t(MicroBuffer* mb, int8_t* value); -microcdr_DllAPI bool deserialize_int16_t(MicroBuffer* mb, int16_t* value); -microcdr_DllAPI bool deserialize_int32_t(MicroBuffer* mb, int32_t* value); -microcdr_DllAPI bool deserialize_int64_t(MicroBuffer* mb, int64_t* value); -microcdr_DllAPI bool deserialize_float(MicroBuffer* mb, float* value); -microcdr_DllAPI bool deserialize_double(MicroBuffer* mb, double* value); +MCDLLAPI bool deserialize_char(MicroBuffer* mb, char* value); +MCDLLAPI bool deserialize_bool(MicroBuffer* mb, bool* value); +MCDLLAPI bool deserialize_uint8_t(MicroBuffer* mb, uint8_t* value); +MCDLLAPI bool deserialize_uint16_t(MicroBuffer* mb, uint16_t* value); +MCDLLAPI bool deserialize_uint32_t(MicroBuffer* mb, uint32_t* value); +MCDLLAPI bool deserialize_uint64_t(MicroBuffer* mb, uint64_t* value); +MCDLLAPI bool deserialize_int8_t(MicroBuffer* mb, int8_t* value); +MCDLLAPI bool deserialize_int16_t(MicroBuffer* mb, int16_t* value); +MCDLLAPI bool deserialize_int32_t(MicroBuffer* mb, int32_t* value); +MCDLLAPI bool deserialize_int64_t(MicroBuffer* mb, int64_t* value); +MCDLLAPI bool deserialize_float(MicroBuffer* mb, float* value); +MCDLLAPI bool deserialize_double(MicroBuffer* mb, double* value); -microcdr_DllAPI bool serialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t value); -microcdr_DllAPI bool serialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t value); -microcdr_DllAPI bool serialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t value); -microcdr_DllAPI bool serialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t value); -microcdr_DllAPI bool serialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t value); -microcdr_DllAPI bool serialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t value); -microcdr_DllAPI bool serialize_endian_float(MicroBuffer* mb, Endianness endianness, const float value); -microcdr_DllAPI bool serialize_endian_double(MicroBuffer* mb, Endianness endianness, const double value); +MCDLLAPI bool serialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t value); +MCDLLAPI bool serialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t value); +MCDLLAPI bool serialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t value); +MCDLLAPI bool serialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t value); +MCDLLAPI bool serialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t value); +MCDLLAPI bool serialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t value); +MCDLLAPI bool serialize_endian_float(MicroBuffer* mb, Endianness endianness, const float value); +MCDLLAPI bool serialize_endian_double(MicroBuffer* mb, Endianness endianness, const double value); -microcdr_DllAPI bool deserialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* value); -microcdr_DllAPI bool deserialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t *value); -microcdr_DllAPI bool deserialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* value); -microcdr_DllAPI bool deserialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* value); -microcdr_DllAPI bool deserialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* value); -microcdr_DllAPI bool deserialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* value); -microcdr_DllAPI bool deserialize_endian_float(MicroBuffer* mb, Endianness endianness, float* value); -microcdr_DllAPI bool deserialize_endian_double(MicroBuffer* mb, Endianness endianness, double* value); +MCDLLAPI bool deserialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* value); +MCDLLAPI bool deserialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t *value); +MCDLLAPI bool deserialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* value); +MCDLLAPI bool deserialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* value); +MCDLLAPI bool deserialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* value); +MCDLLAPI bool deserialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* value); +MCDLLAPI bool deserialize_endian_float(MicroBuffer* mb, Endianness endianness, float* value); +MCDLLAPI bool deserialize_endian_double(MicroBuffer* mb, Endianness endianness, double* value); #ifdef __cplusplus } diff --git a/include/microcdr/types/sequence.h b/include/microcdr/types/sequence.h index 581f2da..f96bcdb 100644 --- a/include/microcdr/types/sequence.h +++ b/include/microcdr/types/sequence.h @@ -25,57 +25,57 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -microcdr_DllAPI bool serialize_sequence_char(MicroBuffer* mb, const char* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_bool(MicroBuffer* mb, const bool* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_float(MicroBuffer* mb, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_sequence_double(MicroBuffer* mb, const double* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_char(MicroBuffer* mb, const char* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_bool(MicroBuffer* mb, const bool* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_float(MicroBuffer* mb, const float* array, const uint32_t size); +MCDLLAPI bool serialize_sequence_double(MicroBuffer* mb, const double* array, const uint32_t size); -microcdr_DllAPI bool deserialize_sequence_char(MicroBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_bool(MicroBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_float(MicroBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_sequence_double(MicroBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_char(MicroBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_bool(MicroBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_float(MicroBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_sequence_double(MicroBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool serialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, const char* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, const bool* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, const uint8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, const int8_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); -microcdr_DllAPI bool serialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, const char* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, const bool* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, const uint8_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, const int8_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); +MCDLLAPI bool serialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); -microcdr_DllAPI bool deserialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, char* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t array_capacity, uint32_t* size); -microcdr_DllAPI bool deserialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, char* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool deserialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t array_capacity, uint32_t* size); #ifdef __cplusplus } diff --git a/include/microcdr/types/string.h b/include/microcdr/types/string.h index 8cf3782..dcf59bb 100644 --- a/include/microcdr/types/string.h +++ b/include/microcdr/types/string.h @@ -28,11 +28,11 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -microcdr_DllAPI bool serialize_string(MicroBuffer* mb, const char* string); -microcdr_DllAPI bool deserialize_string(MicroBuffer* mb, char* string, const uint32_t string_capacity); +MCDLLAPI bool serialize_string(MicroBuffer* mb, const char* string); +MCDLLAPI bool deserialize_string(MicroBuffer* mb, char* string, const uint32_t string_capacity); -microcdr_DllAPI bool serialize_endian_string(MicroBuffer* mb, Endianness endianness, const char* string); -microcdr_DllAPI bool deserialize_endian_string(MicroBuffer* mb, Endianness endianness, char* string, const uint32_t string_capacity); +MCDLLAPI bool serialize_endian_string(MicroBuffer* mb, Endianness endianness, const char* string); +MCDLLAPI bool deserialize_endian_string(MicroBuffer* mb, Endianness endianness, char* string, const uint32_t string_capacity); #ifdef __cplusplus } From da4c5583668127013e6d52fca56eb0cf8e0474f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Enrique=20Mu=C3=B1oz=20Mart=C3=ADn?= Date: Thu, 27 Sep 2018 10:57:34 +0200 Subject: [PATCH 4/9] Added mc prefix to MicroCDR (#11) * Refs #3436. MicroBuffer => mcMicroBuffer * Refs #3436. Added -mc at deserialization functions. * Refs #3436. Added -mc at serialization functions. * Recovered internal functions names. * Refs #3436. Rename common functions. * Refs #3436. Added mc preffix to endianness. * Refs #3436. Added mc to README and example. * Refs #3436. Modify mcMicroBuffer to mcBuffer * Refs #3436. micro_buffer to buffer function names * Refs #3436. Fix error. * Refs #3436. Fix mc prefix at mrEndianness. Minor correction * Fix windows warning * Fix warnings * Fix warnings --- README.md | 98 +++++++------- examples/basic.c | 12 +- include/microcdr/common.h | 50 ++++---- include/microcdr/config.h.in | 2 +- include/microcdr/types/array.h | 80 ++++++------ include/microcdr/types/basic.h | 80 ++++++------ include/microcdr/types/sequence.h | 96 +++++++------- include/microcdr/types/string.h | 8 +- src/c/common.c | 44 +++---- src/c/common_internals.h | 2 +- src/c/types/array.c | 120 +++++++++--------- src/c/types/array_internals.h | 18 +-- src/c/types/basic.c | 120 +++++++++--------- src/c/types/basic_internals.h | 16 +-- src/c/types/sequence.c | 127 +++++++++---------- src/c/types/sequence_internals.h | 18 +-- src/c/types/string.c | 16 +-- test/Alignment.cpp | 4 +- test/FullBuffer.cpp | 16 +-- test/SequenceOverflow.cpp | 18 +-- test/endianness/ArrayEndianness.cpp | 42 +++--- test/endianness/BasicEndianness.cpp | 38 +++--- test/endianness/SequenceEndianness.cpp | 62 ++++----- test/serialization/ArraySerialization.hpp | 58 ++++----- test/serialization/BasicSerialization.hpp | 56 ++++---- test/serialization/SequenceSerialization.hpp | 56 ++++---- test/serialization/StringSerialization.hpp | 4 +- 27 files changed, 633 insertions(+), 628 deletions(-) diff --git a/README.md b/README.md index a09fafd..84cee86 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This library is focused on embedded and resource-limited systems. ## Usage examples This is a code example showing the serialization and deserialization of a string. -As *MicroCDR* uses a static buffer, that means the user has to provide a defined buffer and its size during the *MicroBuffer* creation. +As *MicroCDR* uses a static buffer, that means the user has to provide a defined buffer and its size during the *mcBuffer* creation. ```c #include @@ -23,20 +23,20 @@ As *MicroCDR* uses a static buffer, that means the user has to provide a defined uint8_t buffer[BUFFER_LENGTH]; // Structs for handle the buffer. - MicroBuffer writer; - MicroBuffer reader; + mcBuffer writer; + mcBuffer reader; // Initialize the MicroBuffers for working with an user-managed buffer. - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + mc_init_buffer(&writer, buffer, BUFFER_LENGTH); + mc_init_buffer(&reader, buffer, BUFFER_LENGTH); // Serialize data char input[16] = "Hello MicroCDR!"; //16 characters - serialize_array_char(&writer, input, 16); + mc_serialize_array_char(&writer, input, 16); // Deserialize data char output[16]; - deserialize_array_char(&reader, output, 16); + mc_deserialize_array_char(&reader, output, 16); printf("Input: %s\n", input); printf("Output: %s\n", output); @@ -48,97 +48,105 @@ As *MicroCDR* uses a static buffer, that means the user has to provide a defined ## API functions ```c -void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); -void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +void mc_init_buffer (mcBuffer* mb, uint8_t* data, const uint32_t size); +void mc_init_buffer_offset (mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); ``` -Initialize a `MicroBuffer` structure, the main struct of *MicroCDR*. -- `mb`: the `MicroBuffer` struct -- `data`: the buffer that the `MicroBuffer` will use. -- `size`: the size of the buffer that the `MicroBuffer` will use. +Initialize a `mcBuffer` structure, the main struct of *MicroCDR*. +- `mb`: the `mcBuffer` struct +- `data`: the buffer that the `mcBuffer` will use. +- `size`: the size of the buffer that the `mcBuffer` will use. - `offset`: where the serialization/deserialization will start. Initially, the serialization/deserialization starts at the beginning of the buffer. --- ```c -void copy_micro_buffer (MicroBuffer* mb_dest, const MicroBuffer* mb_source); +void mc_copy_buffer (mcBuffer* mb_dest, const mcBuffer* mb_source); ``` -Copy a `MicroBuffer` structure data to another `MicroBuffer` structure. -- `mb_dest`: the destination `MicroBuffer` struct. -- `mb_source`: the origin initialized `MicroBuffer` struct. +Copy a `mcBuffer` structure data to another `mcBuffer` structure. +- `mb_dest`: the destination `mcBuffer` struct. +- `mb_source`: the origin initialized `mcBuffer` struct. --- ```c -void reset_micro_buffer (MicroBuffer* mb); -void reset_micro_buffer_offset(MicroBuffer* mb, const uint32_t offset); +void mc_reset_buffer (mcBuffer* mb); +void mc_reset_buffer_offset(mcBuffer* mb, const uint32_t offset); ``` -Reset the `MicroBuffer` as the same state that it was created. -- `mb`: the `MicroBuffer` struct. +Reset the `mcBuffer` as the same state that it was created. +- `mb`: the `mcBuffer` struct. - `offset`: where the serialization/deserialization will start. Initially, the serialization/deserialization starts at the beginning of the buffer. --- ```c -void align_to (MicroBuffer* mb, const uint32_t alignment); +void mc_align_to (mcBuffer* mb, const uint32_t alignment); ``` -Align the MicroBuffer to an `alignment` position. -After call this function, the serialization pointer will be moved only if the current `MicroBuffer` was not aligment to the passed value. +Align the mcBuffer to an `alignment` position. +After call this function, the serialization pointer will be moved only if the current `mcBuffer` was not aligment to the passed value. -- `mb`: the `MicroBuffer` struct +- `mb`: the `mcBuffer` struct - `alignment`: the alignment value used. --- ```c -uint32_t get_alignment(uint32_t buffer_position, const uint32_t data_size); +uint32_t mc_aligment(uint32_t buffer_position, const uint32_t data_size); ``` Returns the aligment necessary to serialize/deserialize a type with `data_size` size. -- `buffer_position`: the current serialization/deserialization position of the `MicroBuffer`. (Typically `mb->iterator - mb->init`). +- `buffer_position`: the current serialization/deserialization position of the `mcBuffer`. (Typically `mb->iterator - mb->init`). - `data_size`: the bytes of the data that you are asking for. --- ```c -size_t micro_buffer_size(const MicroBuffer* mb); +uint32_t mc_buffer_alignment(const mcBuffer* mb, const uint32_t data_size); +``` +Returns the aligment necessary to serialize/deserialize a type with `data_size` size into the `mcBuffer` given. + +- `mb`: the `mcBuffer` struct to ask the alignment. +- `data_size`: the bytes of the data that you are asking for. +--- + +```c +size_t mc_buffer_size(const mcBuffer* mb); ``` Returns the memory size of the buffer. -- `mb`: the `MicroBuffer` struct +- `mb`: the `mcBuffer` struct --- ```c -size_t micro_buffer_length(const MicroBuffer* mb); +size_t mc_buffer_length(const mcBuffer* mb); ``` Returns the size of the serialized/deserialized data. -- `mb`: the `MicroBuffer` struct +- `mb`: the `mcBuffer` struct --- ```c -size_t micro_buffer_remaining(const MicroBuffer* mb); +size_t mc_buffer_remaining(const mcBuffer* mb); ``` Returns the remaining size for the serializing/deserializing. -- `mb`: the `MicroBuffer` struct - +- `mb`: the `mcBuffer` struct --- ```c -Endianness micro_buffer_endianness(const MicroBuffer* mb); +mcEndianness mc_buffer_endianness(const mcBuffer* mb); ``` Returns the serialization/deserialization endianness. -- `mb`: the `MicroBuffer` struct +- `mb`: the `mcBuffer` struct --- ```c -bool micro_buffer_error(const MicroBuffer* mb); +bool mc_buffer_error(const mcBuffer* mb); ``` -Returns the status error of the `MicroBuffer`. -- `mb`: the `MicroBuffer` struct +Returns the status error of the `mcBuffer`. +- `mb`: the `mcBuffer` struct ### Serialization/deserialization functions @@ -152,20 +160,20 @@ Adding to this, there is a big set of functions for deserialize and deserialize The configuration can be done by cmake with the cmake `__BIG_ENDIAN__` variable. A `0` value implies that the serialization will performed into a little endian machine, and `1` into a big endian machine. -The default endianness serialization can be choosen by setting the `endianness` parameter of a `MicroBuffer` to `BIG_ENDIANNESS` or `LITTLE_ENDIANNESS`. +The default endianness serialization can be choosen by setting the `endianness` parameter of a `mcBuffer` to `MC_BIG_ENDIANNESS` or `MC_LITTLE_ENDIANNESS`. Also, there are a functions that allow to force an endianness in their serialization/deserialization. These functions contains the name `endiannness` in their signature. ### Error All serialization/deserialization functions return a boolean indicating the result of their operations. When a serialization/deserialization could not be possible (the type can not be serialized, or the capacity of the destination buffer is not enough), -an status error is setted into the `MicroBuffer`. -If a `MicroBuffer` has an error state, the next serialization/deserialization operations will not works and will return `false` in their execution. +an status error is setted into the `mcBuffer`. +If a `mcBuffer` has an error state, the next serialization/deserialization operations will not works and will return `false` in their execution. A buffer marked with an error can be used, but any serialization/deserialization operation over it will not produce any effect. -If is kwown that an operation can fails over a `MicroBuffer`, and its necessary to continue with the serialization/deserialization if it happens, -the `MicroBuffer` state can be saved using the `copy_micro_buffer` function. -After the application of the wrong serialization/deserialization, only the `MicroBuffer` that performed the operation will have a dirty state. +If is kwown that an operation can fails over a `mcBuffer`, and its necessary to continue with the serialization/deserialization if it happens, +the `mcBuffer` state can be saved using the `mc_copy_buffer` function. +After the application of the wrong serialization/deserialization, only the `mcBuffer` that performed the operation will have a dirty state. ## Serialization/deserialization list The available modes of serialization/deserializations in *MicroCDR* are shown in the following table. diff --git a/examples/basic.c b/examples/basic.c index e1adf4b..94d0aa6 100644 --- a/examples/basic.c +++ b/examples/basic.c @@ -23,20 +23,20 @@ int main() uint8_t buffer[BUFFER_LENGTH]; // Structs for handle the buffer. - MicroBuffer writer; - MicroBuffer reader; + mcBuffer writer; + mcBuffer reader; // Initialize the MicroBuffers for working with an user-managed buffer. - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + mc_init_buffer(&writer, buffer, BUFFER_LENGTH); + mc_init_buffer(&reader, buffer, BUFFER_LENGTH); // Serialize data char input[16] = "Hello MicroCDR!"; //16 characters - serialize_array_char(&writer, input, 16); + mc_serialize_array_char(&writer, input, 16); // Deserialize data char output[16]; - deserialize_array_char(&reader, output, 16); + mc_deserialize_array_char(&reader, output, 16); printf("Input: %s\n", input); printf("Output: %s\n", output); diff --git a/include/microcdr/common.h b/include/microcdr/common.h index 53f8d03..63ae0fc 100644 --- a/include/microcdr/common.h +++ b/include/microcdr/common.h @@ -26,47 +26,47 @@ extern "C" { #include #include -typedef enum Endianness { - BIG_ENDIANNESS, - LITTLE_ENDIANNESS +typedef enum mcEndianness { + MC_BIG_ENDIANNESS, + MC_LITTLE_ENDIANNESS -} Endianness; +} mcEndianness; -typedef struct MicroBuffer +typedef struct mcBuffer { uint8_t *init; uint8_t *final; uint8_t *iterator; - Endianness endianness; + mcEndianness endianness; uint32_t last_data_size; bool error; -} MicroBuffer; +} mcBuffer; -MCDLLAPI extern const Endianness MACHINE_ENDIANNESS; +MCDLLAPI extern const mcEndianness MC_MACHINE_ENDIANNESS; // ------------------------------------------------ // Main library functions // ------------------------------------------------ -MCDLLAPI void init_micro_buffer (MicroBuffer* mb, uint8_t* data, const uint32_t size); -MCDLLAPI void init_micro_buffer_offset (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); -MCDLLAPI void init_micro_buffer_offset_endian (MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, Endianness endianness); -MCDLLAPI void copy_micro_buffer (MicroBuffer* mb_dest, const MicroBuffer* mb_source); - -MCDLLAPI void reset_micro_buffer (MicroBuffer* mb); -MCDLLAPI void reset_micro_buffer_offset (MicroBuffer* mb, const uint32_t offset); - -MCDLLAPI void align_to (MicroBuffer* mb, const uint32_t alignment); -MCDLLAPI uint32_t get_alignment (uint32_t buffer_position, const uint32_t data_size); //change name -MCDLLAPI uint32_t get_alignment_offset(const MicroBuffer* mb, const uint32_t data_size); //change name - -MCDLLAPI size_t micro_buffer_size (const MicroBuffer* mb); -MCDLLAPI size_t micro_buffer_length (const MicroBuffer* mb); -MCDLLAPI size_t micro_buffer_remaining (const MicroBuffer* mb); -MCDLLAPI Endianness micro_buffer_endianness(const MicroBuffer* mb); -MCDLLAPI bool micro_buffer_has_error (const MicroBuffer* mb); +MCDLLAPI void mc_init_buffer (mcBuffer* mb, uint8_t* data, const uint32_t size); +MCDLLAPI void mc_init_buffer_offset (mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +MCDLLAPI void mc_init_buffer_offset_endian (mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, mcEndianness endianness); +MCDLLAPI void mc_copy_buffer (mcBuffer* mb_dest, const mcBuffer* mb_source); + +MCDLLAPI void mc_reset_buffer (mcBuffer* mb); +MCDLLAPI void mc_reset_buffer_offset (mcBuffer* mb, const uint32_t offset); + +MCDLLAPI void mc_align_to (mcBuffer* mb, const uint32_t alignment); +MCDLLAPI uint32_t mc_alignment (uint32_t buffer_position, const uint32_t data_size); +MCDLLAPI uint32_t mc_buffer_alignment(const mcBuffer* mb, const uint32_t data_size); + +MCDLLAPI size_t mc_buffer_size (const mcBuffer* mb); +MCDLLAPI size_t mc_buffer_length (const mcBuffer* mb); +MCDLLAPI size_t mc_buffer_remaining (const mcBuffer* mb); +MCDLLAPI mcEndianness mc_buffer_endianness(const mcBuffer* mb); +MCDLLAPI bool mc_buffer_has_error (const mcBuffer* mb); #ifdef __cplusplus } diff --git a/include/microcdr/config.h.in b/include/microcdr/config.h.in index f21cd30..b5f3de0 100644 --- a/include/microcdr/config.h.in +++ b/include/microcdr/config.h.in @@ -21,7 +21,7 @@ #define MICROCDR_VERSION_MICRO @PROJECT_VERSION_PATCH@ #define MICROCDR_VERSION_STR "@PROJECT_VERSION@" -// Endianness defines +// mcEndianness defines #ifndef __BIG_ENDIAN__ #define __BIG_ENDIAN__ @__BIG_ENDIAN__@ #endif diff --git a/include/microcdr/types/array.h b/include/microcdr/types/array.h index 51d19a6..6fee269 100644 --- a/include/microcdr/types/array.h +++ b/include/microcdr/types/array.h @@ -25,49 +25,49 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool serialize_array_char(MicroBuffer* mb, const char* array, const uint32_t size); -MCDLLAPI bool serialize_array_bool(MicroBuffer* mb, const bool* array, const uint32_t size); -MCDLLAPI bool serialize_array_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); -MCDLLAPI bool serialize_array_float(MicroBuffer* mb, const float* array, const uint32_t size); -MCDLLAPI bool serialize_array_double(MicroBuffer* mb, const double* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_char(mcBuffer* mb, const char* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_bool(mcBuffer* mb, const bool* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_float(mcBuffer* mb, const float* array, const uint32_t size); +MCDLLAPI bool mc_serialize_array_double(mcBuffer* mb, const double* array, const uint32_t size); -MCDLLAPI bool deserialize_array_char(MicroBuffer* mb, char* array, const uint32_t size); -MCDLLAPI bool deserialize_array_bool(MicroBuffer* mb, bool* array, const uint32_t size); -MCDLLAPI bool deserialize_array_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t size); -MCDLLAPI bool deserialize_array_float(MicroBuffer* mb, float* array, const uint32_t size); -MCDLLAPI bool deserialize_array_double(MicroBuffer* mb, double* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_char(mcBuffer* mb, char* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_bool(mcBuffer* mb, bool* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_int8_t(mcBuffer* mb, int8_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_int16_t(mcBuffer* mb, int16_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_int32_t(mcBuffer* mb, int32_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_int64_t(mcBuffer* mb, int64_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_float(mcBuffer* mb, float* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_array_double(mcBuffer* mb, double* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); -MCDLLAPI bool serialize_endian_array_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_uint16_t(mcBuffer* mb, mcEndianness endianness, const uint16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_uint32_t(mcBuffer* mb, mcEndianness endianness, const uint32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_uint64_t(mcBuffer* mb, mcEndianness endianness, const uint64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_int16_t(mcBuffer* mb, mcEndianness endianness, const int16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_int32_t(mcBuffer* mb, mcEndianness endianness, const int32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_int64_t(mcBuffer* mb, mcEndianness endianness, const int64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_float(mcBuffer* mb, mcEndianness endianness, const float* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_array_double(mcBuffer* mb, mcEndianness endianness, const double* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_array_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_uint16_t(mcBuffer* mb, mcEndianness endianness, uint16_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_uint32_t(mcBuffer* mb, mcEndianness endianness, uint32_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_uint64_t(mcBuffer* mb, mcEndianness endianness, uint64_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_int16_t(mcBuffer* mb, mcEndianness endianness, int16_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_int32_t(mcBuffer* mb, mcEndianness endianness, int32_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_int64_t(mcBuffer* mb, mcEndianness endianness, int64_t* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_float(mcBuffer* mb, mcEndianness endianness, float* array, const uint32_t size); +MCDLLAPI bool mc_deserialize_endian_array_double(mcBuffer* mb, mcEndianness endianness, double* array, const uint32_t size); #ifdef __cplusplus } diff --git a/include/microcdr/types/basic.h b/include/microcdr/types/basic.h index ec197d4..1422e50 100644 --- a/include/microcdr/types/basic.h +++ b/include/microcdr/types/basic.h @@ -25,49 +25,49 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool serialize_char(MicroBuffer* mb, const char value); -MCDLLAPI bool serialize_bool(MicroBuffer* mb, const bool value); -MCDLLAPI bool serialize_uint8_t(MicroBuffer* mb, const uint8_t value); -MCDLLAPI bool serialize_uint16_t(MicroBuffer* mb, const uint16_t value); -MCDLLAPI bool serialize_uint32_t(MicroBuffer* mb, const uint32_t value); -MCDLLAPI bool serialize_uint64_t(MicroBuffer* mb, const uint64_t value); -MCDLLAPI bool serialize_int8_t(MicroBuffer* mb, const int8_t value); -MCDLLAPI bool serialize_int16_t(MicroBuffer* mb, const int16_t value); -MCDLLAPI bool serialize_int32_t(MicroBuffer* mb, const int32_t value); -MCDLLAPI bool serialize_int64_t(MicroBuffer* mb, const int64_t value); -MCDLLAPI bool serialize_float(MicroBuffer* mb, const float value); -MCDLLAPI bool serialize_double(MicroBuffer* mb, const double value); +MCDLLAPI bool mc_serialize_char(mcBuffer* mb, const char value); +MCDLLAPI bool mc_serialize_bool(mcBuffer* mb, const bool value); +MCDLLAPI bool mc_serialize_uint8_t(mcBuffer* mb, const uint8_t value); +MCDLLAPI bool mc_serialize_uint16_t(mcBuffer* mb, const uint16_t value); +MCDLLAPI bool mc_serialize_uint32_t(mcBuffer* mb, const uint32_t value); +MCDLLAPI bool mc_serialize_uint64_t(mcBuffer* mb, const uint64_t value); +MCDLLAPI bool mc_serialize_int8_t(mcBuffer* mb, const int8_t value); +MCDLLAPI bool mc_serialize_int16_t(mcBuffer* mb, const int16_t value); +MCDLLAPI bool mc_serialize_int32_t(mcBuffer* mb, const int32_t value); +MCDLLAPI bool mc_serialize_int64_t(mcBuffer* mb, const int64_t value); +MCDLLAPI bool mc_serialize_float(mcBuffer* mb, const float value); +MCDLLAPI bool mc_serialize_double(mcBuffer* mb, const double value); -MCDLLAPI bool deserialize_char(MicroBuffer* mb, char* value); -MCDLLAPI bool deserialize_bool(MicroBuffer* mb, bool* value); -MCDLLAPI bool deserialize_uint8_t(MicroBuffer* mb, uint8_t* value); -MCDLLAPI bool deserialize_uint16_t(MicroBuffer* mb, uint16_t* value); -MCDLLAPI bool deserialize_uint32_t(MicroBuffer* mb, uint32_t* value); -MCDLLAPI bool deserialize_uint64_t(MicroBuffer* mb, uint64_t* value); -MCDLLAPI bool deserialize_int8_t(MicroBuffer* mb, int8_t* value); -MCDLLAPI bool deserialize_int16_t(MicroBuffer* mb, int16_t* value); -MCDLLAPI bool deserialize_int32_t(MicroBuffer* mb, int32_t* value); -MCDLLAPI bool deserialize_int64_t(MicroBuffer* mb, int64_t* value); -MCDLLAPI bool deserialize_float(MicroBuffer* mb, float* value); -MCDLLAPI bool deserialize_double(MicroBuffer* mb, double* value); +MCDLLAPI bool mc_deserialize_char(mcBuffer* mb, char* value); +MCDLLAPI bool mc_deserialize_bool(mcBuffer* mb, bool* value); +MCDLLAPI bool mc_deserialize_uint8_t(mcBuffer* mb, uint8_t* value); +MCDLLAPI bool mc_deserialize_uint16_t(mcBuffer* mb, uint16_t* value); +MCDLLAPI bool mc_deserialize_uint32_t(mcBuffer* mb, uint32_t* value); +MCDLLAPI bool mc_deserialize_uint64_t(mcBuffer* mb, uint64_t* value); +MCDLLAPI bool mc_deserialize_int8_t(mcBuffer* mb, int8_t* value); +MCDLLAPI bool mc_deserialize_int16_t(mcBuffer* mb, int16_t* value); +MCDLLAPI bool mc_deserialize_int32_t(mcBuffer* mb, int32_t* value); +MCDLLAPI bool mc_deserialize_int64_t(mcBuffer* mb, int64_t* value); +MCDLLAPI bool mc_deserialize_float(mcBuffer* mb, float* value); +MCDLLAPI bool mc_deserialize_double(mcBuffer* mb, double* value); -MCDLLAPI bool serialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t value); -MCDLLAPI bool serialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t value); -MCDLLAPI bool serialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t value); -MCDLLAPI bool serialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t value); -MCDLLAPI bool serialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t value); -MCDLLAPI bool serialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t value); -MCDLLAPI bool serialize_endian_float(MicroBuffer* mb, Endianness endianness, const float value); -MCDLLAPI bool serialize_endian_double(MicroBuffer* mb, Endianness endianness, const double value); +MCDLLAPI bool mc_serialize_endian_uint16_t(mcBuffer* mb, mcEndianness endianness, const uint16_t value); +MCDLLAPI bool mc_serialize_endian_uint32_t(mcBuffer* mb, mcEndianness endianness, const uint32_t value); +MCDLLAPI bool mc_serialize_endian_uint64_t(mcBuffer* mb, mcEndianness endianness, const uint64_t value); +MCDLLAPI bool mc_serialize_endian_int16_t(mcBuffer* mb, mcEndianness endianness, const int16_t value); +MCDLLAPI bool mc_serialize_endian_int32_t(mcBuffer* mb, mcEndianness endianness, const int32_t value); +MCDLLAPI bool mc_serialize_endian_int64_t(mcBuffer* mb, mcEndianness endianness, const int64_t value); +MCDLLAPI bool mc_serialize_endian_float(mcBuffer* mb, mcEndianness endianness, const float value); +MCDLLAPI bool mc_serialize_endian_double(mcBuffer* mb, mcEndianness endianness, const double value); -MCDLLAPI bool deserialize_endian_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* value); -MCDLLAPI bool deserialize_endian_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t *value); -MCDLLAPI bool deserialize_endian_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* value); -MCDLLAPI bool deserialize_endian_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* value); -MCDLLAPI bool deserialize_endian_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* value); -MCDLLAPI bool deserialize_endian_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* value); -MCDLLAPI bool deserialize_endian_float(MicroBuffer* mb, Endianness endianness, float* value); -MCDLLAPI bool deserialize_endian_double(MicroBuffer* mb, Endianness endianness, double* value); +MCDLLAPI bool mc_deserialize_endian_uint16_t(mcBuffer* mb, mcEndianness endianness, uint16_t* value); +MCDLLAPI bool mc_deserialize_endian_uint32_t(mcBuffer* mb, mcEndianness endianness, uint32_t *value); +MCDLLAPI bool mc_deserialize_endian_uint64_t(mcBuffer* mb, mcEndianness endianness, uint64_t* value); +MCDLLAPI bool mc_deserialize_endian_int16_t(mcBuffer* mb, mcEndianness endianness, int16_t* value); +MCDLLAPI bool mc_deserialize_endian_int32_t(mcBuffer* mb, mcEndianness endianness, int32_t* value); +MCDLLAPI bool mc_deserialize_endian_int64_t(mcBuffer* mb, mcEndianness endianness, int64_t* value); +MCDLLAPI bool mc_deserialize_endian_float(mcBuffer* mb, mcEndianness endianness, float* value); +MCDLLAPI bool mc_deserialize_endian_double(mcBuffer* mb, mcEndianness endianness, double* value); #ifdef __cplusplus } diff --git a/include/microcdr/types/sequence.h b/include/microcdr/types/sequence.h index f96bcdb..f8bfc04 100644 --- a/include/microcdr/types/sequence.h +++ b/include/microcdr/types/sequence.h @@ -25,57 +25,57 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool serialize_sequence_char(MicroBuffer* mb, const char* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_bool(MicroBuffer* mb, const bool* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_float(MicroBuffer* mb, const float* array, const uint32_t size); -MCDLLAPI bool serialize_sequence_double(MicroBuffer* mb, const double* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_char(mcBuffer* mb, const char* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_bool(mcBuffer* mb, const bool* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_float(mcBuffer* mb, const float* array, const uint32_t size); +MCDLLAPI bool mc_serialize_sequence_double(mcBuffer* mb, const double* array, const uint32_t size); -MCDLLAPI bool deserialize_sequence_char(MicroBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_bool(MicroBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_float(MicroBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_sequence_double(MicroBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_char(mcBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_bool(mcBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_int8_t(mcBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_int16_t(mcBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_int32_t(mcBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_int64_t(mcBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_float(mcBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_sequence_double(mcBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool serialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, const char* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, const bool* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, const uint8_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, const int8_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, const int16_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, const int32_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, const int64_t* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, const float* array, const uint32_t size); -MCDLLAPI bool serialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, const double* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_char(mcBuffer* mb, mcEndianness endianness, const char* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_bool(mcBuffer* mb, mcEndianness endianness, const bool* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_uint8_t(mcBuffer* mb, mcEndianness endianness, const uint8_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_uint16_t(mcBuffer* mb, mcEndianness endianness, const uint16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_uint32_t(mcBuffer* mb, mcEndianness endianness, const uint32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_uint64_t(mcBuffer* mb, mcEndianness endianness, const uint64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_int8_t(mcBuffer* mb, mcEndianness endianness, const int8_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_int16_t(mcBuffer* mb, mcEndianness endianness, const int16_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_int32_t(mcBuffer* mb, mcEndianness endianness, const int32_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_int64_t(mcBuffer* mb, mcEndianness endianness, const int64_t* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_float(mcBuffer* mb, mcEndianness endianness, const float* array, const uint32_t size); +MCDLLAPI bool mc_serialize_endian_sequence_double(mcBuffer* mb, mcEndianness endianness, const double* array, const uint32_t size); -MCDLLAPI bool deserialize_endian_sequence_char(MicroBuffer* mb, Endianness endianness, char* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_bool(MicroBuffer* mb, Endianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_uint8_t(MicroBuffer* mb, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_uint16_t(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_uint32_t(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_uint64_t(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_int8_t(MicroBuffer* mb, Endianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_int16_t(MicroBuffer* mb, Endianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_int32_t(MicroBuffer* mb, Endianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_int64_t(MicroBuffer* mb, Endianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_float(MicroBuffer* mb, Endianness endianness, float* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool deserialize_endian_sequence_double(MicroBuffer* mb, Endianness endianness, double* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_char(mcBuffer* mb, mcEndianness endianness, char* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_bool(mcBuffer* mb, mcEndianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_uint8_t(mcBuffer* mb, mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_uint16_t(mcBuffer* mb, mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_uint32_t(mcBuffer* mb, mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_uint64_t(mcBuffer* mb, mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_int8_t(mcBuffer* mb, mcEndianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_int16_t(mcBuffer* mb, mcEndianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_int32_t(mcBuffer* mb, mcEndianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_int64_t(mcBuffer* mb, mcEndianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_float(mcBuffer* mb, mcEndianness endianness, float* array, const uint32_t array_capacity, uint32_t* size); +MCDLLAPI bool mc_deserialize_endian_sequence_double(mcBuffer* mb, mcEndianness endianness, double* array, const uint32_t array_capacity, uint32_t* size); #ifdef __cplusplus } diff --git a/include/microcdr/types/string.h b/include/microcdr/types/string.h index dcf59bb..d919517 100644 --- a/include/microcdr/types/string.h +++ b/include/microcdr/types/string.h @@ -28,11 +28,11 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool serialize_string(MicroBuffer* mb, const char* string); -MCDLLAPI bool deserialize_string(MicroBuffer* mb, char* string, const uint32_t string_capacity); +MCDLLAPI bool mc_serialize_string(mcBuffer* mb, const char* string); +MCDLLAPI bool mc_deserialize_string(mcBuffer* mb, char* string, const uint32_t string_capacity); -MCDLLAPI bool serialize_endian_string(MicroBuffer* mb, Endianness endianness, const char* string); -MCDLLAPI bool deserialize_endian_string(MicroBuffer* mb, Endianness endianness, char* string, const uint32_t string_capacity); +MCDLLAPI bool mc_serialize_endian_string(mcBuffer* mb, mcEndianness endianness, const char* string); +MCDLLAPI bool mc_deserialize_endian_string(mcBuffer* mb, mcEndianness endianness, char* string, const uint32_t string_capacity); #ifdef __cplusplus } diff --git a/src/c/common.c b/src/c/common.c index 5a8e029..cc646d9 100644 --- a/src/c/common.c +++ b/src/c/common.c @@ -17,15 +17,15 @@ #include #if __BIG_ENDIAN__ - const Endianness MACHINE_ENDIANNESS = BIG_ENDIANNESS; + const mcEndianness MC_MACHINE_ENDIANNESS = MC_BIG_ENDIANNESS; #else - const Endianness MACHINE_ENDIANNESS = LITTLE_ENDIANNESS; + const mcEndianness MC_MACHINE_ENDIANNESS = MC_LITTLE_ENDIANNESS; #endif // ------------------------------------------------------------------- // INTERNAL UTIL IMPLEMENTATIONS // ------------------------------------------------------------------- -bool check_buffer(MicroBuffer* mb, const uint32_t bytes) +bool check_buffer(mcBuffer* mb, const uint32_t bytes) { if(!mb->error) { @@ -42,17 +42,17 @@ bool check_buffer(MicroBuffer* mb, const uint32_t bytes) // ------------------------------------------------------------------- // PUBLIC IMPLEMENTATION // ------------------------------------------------------------------- -void init_micro_buffer(MicroBuffer* mb, uint8_t* data, const uint32_t size) +void mc_init_buffer(mcBuffer* mb, uint8_t* data, const uint32_t size) { - init_micro_buffer_offset(mb, data, size, 0U); + mc_init_buffer_offset(mb, data, size, 0U); } -void init_micro_buffer_offset(MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset) +void mc_init_buffer_offset(mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset) { - init_micro_buffer_offset_endian(mb, data, size, offset, MACHINE_ENDIANNESS); + mc_init_buffer_offset_endian(mb, data, size, offset, MC_MACHINE_ENDIANNESS); } -void init_micro_buffer_offset_endian(MicroBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, Endianness endianness) +void mc_init_buffer_offset_endian(mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, mcEndianness endianness) { mb->init = data; mb->final = mb->init + size; @@ -63,26 +63,26 @@ void init_micro_buffer_offset_endian(MicroBuffer* mb, uint8_t* data, const uint3 } -void copy_micro_buffer(MicroBuffer* mb_dest, const MicroBuffer* mb_source) +void mc_copy_buffer(mcBuffer* mb_dest, const mcBuffer* mb_source) { - memcpy(mb_dest, mb_source, sizeof(MicroBuffer)); + memcpy(mb_dest, mb_source, sizeof(mcBuffer)); } -void reset_micro_buffer(MicroBuffer* mb) +void mc_reset_buffer(mcBuffer* mb) { - reset_micro_buffer_offset(mb, 0U); + mc_reset_buffer_offset(mb, 0U); } -void reset_micro_buffer_offset(MicroBuffer* mb, const uint32_t offset) +void mc_reset_buffer_offset(mcBuffer* mb, const uint32_t offset) { mb->iterator = mb->init + offset; mb->last_data_size = 0U; mb->error = false; } -void align_to(MicroBuffer* mb, const uint32_t size) +void mc_align_to(mcBuffer* mb, const uint32_t size) { - uint32_t offset = get_alignment_offset(mb, size); + uint32_t offset = mc_buffer_alignment(mb, size); mb->iterator += offset; if(mb->iterator > mb->final) { @@ -92,12 +92,12 @@ void align_to(MicroBuffer* mb, const uint32_t size) mb->last_data_size = size; } -uint32_t get_alignment(uint32_t current_alignment, const uint32_t data_size) +uint32_t mc_alignment(uint32_t current_alignment, const uint32_t data_size) { return ((data_size - (current_alignment % data_size)) & (data_size - 1)); } -uint32_t get_alignment_offset(const MicroBuffer* mb, const uint32_t data_size) +uint32_t mc_buffer_alignment(const mcBuffer* mb, const uint32_t data_size) { if(data_size > mb->last_data_size) { @@ -107,27 +107,27 @@ uint32_t get_alignment_offset(const MicroBuffer* mb, const uint32_t data_size) return 0; } -size_t micro_buffer_size(const MicroBuffer* mb) +size_t mc_buffer_size(const mcBuffer* mb) { return (size_t)(mb->final - mb->init); } -size_t micro_buffer_length(const MicroBuffer* mb) +size_t mc_buffer_length(const mcBuffer* mb) { return (size_t)(mb->iterator - mb->init); } -size_t micro_buffer_remaining(const MicroBuffer* mb) +size_t mc_buffer_remaining(const mcBuffer* mb) { return (size_t)(mb->final - mb->iterator); } -Endianness micro_buffer_endianness(const MicroBuffer* mb) +mcEndianness mc_buffer_endianness(const mcBuffer* mb) { return mb->endianness; } -bool micro_buffer_has_error(const MicroBuffer* mb) +bool mc_buffer_has_error(const mcBuffer* mb) { return mb->error; } diff --git a/src/c/common_internals.h b/src/c/common_internals.h index 88c1885..bde4b7b 100644 --- a/src/c/common_internals.h +++ b/src/c/common_internals.h @@ -24,7 +24,7 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL UTIL FUNCTIONS // ------------------------------------------------------------------- -bool check_buffer(MicroBuffer* mb, const uint32_t bytes); +bool check_buffer(mcBuffer* mb, const uint32_t bytes); #ifdef __cplusplus } diff --git a/src/c/types/array.c b/src/c/types/array.c index 3376b9d..ef52e0a 100644 --- a/src/c/types/array.c +++ b/src/c/types/array.c @@ -24,7 +24,7 @@ // INTERNAL SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool serialize_array_byte_1(MicroBuffer* mb, const uint8_t* array, const uint32_t size) +bool serialize_array_byte_1(mcBuffer* mb, const uint8_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint8_t); if(check_buffer(mb, size)) @@ -37,16 +37,16 @@ bool serialize_array_byte_1(MicroBuffer* mb, const uint8_t* array, const uint32_ return !mb->error; } -bool serialize_array_byte_2(MicroBuffer* mb, const Endianness endianness, const uint16_t* array, const uint32_t size) +bool serialize_array_byte_2(mcBuffer* mb, const mcEndianness endianness, const uint16_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint16_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(mb, sizeof(uint16_t)); + uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint16_t)); if(check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, array, array_size); @@ -64,17 +64,17 @@ bool serialize_array_byte_2(MicroBuffer* mb, const Endianness endianness, const return !mb->error; } -bool serialize_array_byte_4(MicroBuffer* mb, const Endianness endianness, const uint32_t* array, const uint32_t size) +bool serialize_array_byte_4(mcBuffer* mb, const mcEndianness endianness, const uint32_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint32_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(mb, sizeof(uint32_t)); + uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint32_t)); if(check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, array, array_size); mb->iterator += array_size; @@ -91,17 +91,17 @@ bool serialize_array_byte_4(MicroBuffer* mb, const Endianness endianness, const return !mb->error; } -bool serialize_array_byte_8(MicroBuffer* mb, const Endianness endianness, const uint64_t* array, const uint32_t size) +bool serialize_array_byte_8(mcBuffer* mb, const mcEndianness endianness, const uint64_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint64_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(mb, sizeof(uint64_t)); + uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint64_t)); if(check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, array, array_size); mb->iterator += array_size; @@ -118,7 +118,7 @@ bool serialize_array_byte_8(MicroBuffer* mb, const Endianness endianness, const return !mb->error; } -bool deserialize_array_byte_1(MicroBuffer* mb, uint8_t* array, const uint32_t size) +bool deserialize_array_byte_1(mcBuffer* mb, uint8_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint8_t); if(check_buffer(mb, size)) @@ -131,17 +131,17 @@ bool deserialize_array_byte_1(MicroBuffer* mb, uint8_t* array, const uint32_t si return !mb->error; } -bool deserialize_array_byte_2(MicroBuffer* mb, const Endianness endianness, uint16_t* array, const uint32_t size) +bool deserialize_array_byte_2(mcBuffer* mb, const mcEndianness endianness, uint16_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint16_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(mb, sizeof(uint16_t)); + uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint16_t)); if(check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(array, mb->iterator, array_size); mb->iterator += array_size; @@ -158,17 +158,17 @@ bool deserialize_array_byte_2(MicroBuffer* mb, const Endianness endianness, uint return !mb->error; } -bool deserialize_array_byte_4(MicroBuffer* mb, const Endianness endianness, uint32_t* array, const uint32_t size) +bool deserialize_array_byte_4(mcBuffer* mb, const mcEndianness endianness, uint32_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint32_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(mb, sizeof(uint32_t)); + uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint32_t)); if(check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(array, mb->iterator, array_size); mb->iterator += array_size; @@ -185,17 +185,17 @@ bool deserialize_array_byte_4(MicroBuffer* mb, const Endianness endianness, uint return !mb->error; } -bool deserialize_array_byte_8(MicroBuffer* mb, const Endianness endianness, uint64_t* array, const uint32_t size) +bool deserialize_array_byte_8(mcBuffer* mb, const mcEndianness endianness, uint64_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint64_t); uint32_t array_size = size * data_size; - uint32_t alignment = get_alignment_offset(mb, sizeof(uint64_t)); + uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint64_t)); if(check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(array, mb->iterator, array_size); mb->iterator += array_size; @@ -216,202 +216,202 @@ bool deserialize_array_byte_8(MicroBuffer* mb, const Endianness endianness, uint // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool serialize_array_char(MicroBuffer* mb, const char* array, const uint32_t size) +bool mc_serialize_array_char(mcBuffer* mb, const char* array, const uint32_t size) { return serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool serialize_array_bool(MicroBuffer* mb, const bool* array, const uint32_t size) +bool mc_serialize_array_bool(mcBuffer* mb, const bool* array, const uint32_t size) { return serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool serialize_array_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size) +bool mc_serialize_array_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size) { return serialize_array_byte_1(mb, array, size); } -bool serialize_array_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size) +bool mc_serialize_array_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size) { return serialize_array_byte_2(mb, mb->endianness, array, size); } -bool serialize_array_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size) +bool mc_serialize_array_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size) { return serialize_array_byte_4(mb, mb->endianness, array, size); } -bool serialize_array_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size) +bool mc_serialize_array_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size) { return serialize_array_byte_8(mb, mb->endianness, array, size); } -bool serialize_array_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size) +bool mc_serialize_array_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size) { return serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool serialize_array_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size) +bool mc_serialize_array_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size) { return serialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool serialize_array_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size) +bool mc_serialize_array_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size) { return serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_array_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size) +bool mc_serialize_array_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size) { return serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_array_float(MicroBuffer* mb, const float* array, const uint32_t size) +bool mc_serialize_array_float(mcBuffer* mb, const float* array, const uint32_t size) { return serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_array_double(MicroBuffer* mb, const double* array, const uint32_t size) +bool mc_serialize_array_double(mcBuffer* mb, const double* array, const uint32_t size) { return serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool deserialize_array_char(MicroBuffer* mb, char* array, const uint32_t size) +bool mc_deserialize_array_char(mcBuffer* mb, char* array, const uint32_t size) { return deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool deserialize_array_bool(MicroBuffer* mb, bool* array, const uint32_t size) +bool mc_deserialize_array_bool(mcBuffer* mb, bool* array, const uint32_t size) { return deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool deserialize_array_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t size) +bool mc_deserialize_array_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t size) { return deserialize_array_byte_1(mb, array, size); } -bool deserialize_array_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t size) +bool mc_deserialize_array_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t size) { return deserialize_array_byte_2(mb, mb->endianness, array, size); } -bool deserialize_array_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t size) +bool mc_deserialize_array_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t size) { return deserialize_array_byte_4(mb, mb->endianness, array, size); } -bool deserialize_array_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t size) +bool mc_deserialize_array_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t size) { return deserialize_array_byte_8(mb, mb->endianness, array, size); } -bool deserialize_array_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t size) +bool mc_deserialize_array_int8_t(mcBuffer* mb, int8_t* array, const uint32_t size) { return deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool deserialize_array_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t size) +bool mc_deserialize_array_int16_t(mcBuffer* mb, int16_t* array, const uint32_t size) { return deserialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool deserialize_array_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t size) +bool mc_deserialize_array_int32_t(mcBuffer* mb, int32_t* array, const uint32_t size) { return deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool deserialize_array_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t size) +bool mc_deserialize_array_int64_t(mcBuffer* mb, int64_t* array, const uint32_t size) { return deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool deserialize_array_float(MicroBuffer* mb, float* array, const uint32_t size) +bool mc_deserialize_array_float(mcBuffer* mb, float* array, const uint32_t size) { return deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool deserialize_array_double(MicroBuffer* mb, double* array, const uint32_t size) +bool mc_deserialize_array_double(mcBuffer* mb, double* array, const uint32_t size) { return deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_endian_array_uint16_t(MicroBuffer* mb, const Endianness endianness, const uint16_t* array, const uint32_t size) +bool mc_serialize_endian_array_uint16_t(mcBuffer* mb, const mcEndianness endianness, const uint16_t* array, const uint32_t size) { return serialize_array_byte_2(mb, endianness, array, size); } -bool serialize_endian_array_uint32_t(MicroBuffer* mb, const Endianness endianness, const uint32_t* array, const uint32_t size) +bool mc_serialize_endian_array_uint32_t(mcBuffer* mb, const mcEndianness endianness, const uint32_t* array, const uint32_t size) { return serialize_array_byte_4(mb, endianness, array, size); } -bool serialize_endian_array_uint64_t(MicroBuffer* mb, const Endianness endianness, const uint64_t* array, const uint32_t size) +bool mc_serialize_endian_array_uint64_t(mcBuffer* mb, const mcEndianness endianness, const uint64_t* array, const uint32_t size) { return serialize_array_byte_8(mb, endianness, array, size); } -bool serialize_endian_array_int16_t(MicroBuffer* mb, const Endianness endianness, const int16_t* array, const uint32_t size) +bool mc_serialize_endian_array_int16_t(mcBuffer* mb, const mcEndianness endianness, const int16_t* array, const uint32_t size) { return serialize_array_byte_2(mb, endianness, (uint16_t*)array, size); } -bool serialize_endian_array_int32_t(MicroBuffer* mb, const Endianness endianness, const int32_t* array, const uint32_t size) +bool mc_serialize_endian_array_int32_t(mcBuffer* mb, const mcEndianness endianness, const int32_t* array, const uint32_t size) { return serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_array_int64_t(MicroBuffer* mb, const Endianness endianness, const int64_t* array, const uint32_t size) +bool mc_serialize_endian_array_int64_t(mcBuffer* mb, const mcEndianness endianness, const int64_t* array, const uint32_t size) { return serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool serialize_endian_array_float(MicroBuffer* mb, const Endianness endianness, const float* array, const uint32_t size) +bool mc_serialize_endian_array_float(mcBuffer* mb, const mcEndianness endianness, const float* array, const uint32_t size) { return serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_array_double(MicroBuffer* mb, const Endianness endianness, const double* array, const uint32_t size) +bool mc_serialize_endian_array_double(mcBuffer* mb, const mcEndianness endianness, const double* array, const uint32_t size) { return serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool deserialize_endian_array_uint16_t(MicroBuffer* mb, const Endianness endianness, uint16_t* array, const uint32_t size) +bool mc_deserialize_endian_array_uint16_t(mcBuffer* mb, const mcEndianness endianness, uint16_t* array, const uint32_t size) { return deserialize_array_byte_2(mb, endianness, array, size); } -bool deserialize_endian_array_uint32_t(MicroBuffer* mb, const Endianness endianness, uint32_t* array, const uint32_t size) +bool mc_deserialize_endian_array_uint32_t(mcBuffer* mb, const mcEndianness endianness, uint32_t* array, const uint32_t size) { return deserialize_array_byte_4(mb, endianness, array, size); } -bool deserialize_endian_array_uint64_t(MicroBuffer* mb, const Endianness endianness, uint64_t* array, const uint32_t size) +bool mc_deserialize_endian_array_uint64_t(mcBuffer* mb, const mcEndianness endianness, uint64_t* array, const uint32_t size) { return deserialize_array_byte_8(mb, endianness, array, size); } -bool deserialize_endian_array_int16_t(MicroBuffer* mb, const Endianness endianness, int16_t* array, const uint32_t size) +bool mc_deserialize_endian_array_int16_t(mcBuffer* mb, const mcEndianness endianness, int16_t* array, const uint32_t size) { return deserialize_array_byte_2(mb, endianness, (uint16_t*)array, size); } -bool deserialize_endian_array_int32_t(MicroBuffer* mb, const Endianness endianness, int32_t* array, const uint32_t size) +bool mc_deserialize_endian_array_int32_t(mcBuffer* mb, const mcEndianness endianness, int32_t* array, const uint32_t size) { return deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool deserialize_endian_array_int64_t(MicroBuffer* mb, const Endianness endianness, int64_t* array, const uint32_t size) +bool mc_deserialize_endian_array_int64_t(mcBuffer* mb, const mcEndianness endianness, int64_t* array, const uint32_t size) { return deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool deserialize_endian_array_float(MicroBuffer* mb, const Endianness endianness, float* array, const uint32_t size) +bool mc_deserialize_endian_array_float(mcBuffer* mb, const mcEndianness endianness, float* array, const uint32_t size) { return deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool deserialize_endian_array_double(MicroBuffer* mb, const Endianness endianness, double* array, const uint32_t size) +bool mc_deserialize_endian_array_double(mcBuffer* mb, const mcEndianness endianness, double* array, const uint32_t size) { return deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } diff --git a/src/c/types/array_internals.h b/src/c/types/array_internals.h index 3c2b77f..fba23c3 100644 --- a/src/c/types/array_internals.h +++ b/src/c/types/array_internals.h @@ -25,15 +25,15 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -bool serialize_array_byte_1(MicroBuffer* buffer, const uint8_t* array, const uint32_t size); -bool serialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -bool serialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -bool serialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); - -bool deserialize_array_byte_1(MicroBuffer* buffer, uint8_t* array, const uint32_t size); -bool deserialize_array_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t size); -bool deserialize_array_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t size); -bool deserialize_array_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t size); +bool serialize_array_byte_1(mcBuffer* buffer, const uint8_t* array, const uint32_t size); +bool serialize_array_byte_2(mcBuffer* buffer, mcEndianness endianness, const uint16_t* array, const uint32_t size); +bool serialize_array_byte_4(mcBuffer* buffer, mcEndianness endianness, const uint32_t* array, const uint32_t size); +bool serialize_array_byte_8(mcBuffer* buffer, mcEndianness endianness, const uint64_t* array, const uint32_t size); + +bool deserialize_array_byte_1(mcBuffer* buffer, uint8_t* array, const uint32_t size); +bool deserialize_array_byte_2(mcBuffer* buffer, mcEndianness endianness, uint16_t* array, const uint32_t size); +bool deserialize_array_byte_4(mcBuffer* buffer, mcEndianness endianness, uint32_t* array, const uint32_t size); +bool deserialize_array_byte_8(mcBuffer* buffer, mcEndianness endianness, uint64_t* array, const uint32_t size); #ifdef __cplusplus } diff --git a/src/c/types/basic.c b/src/c/types/basic.c index 1a3b464..9d12afb 100644 --- a/src/c/types/basic.c +++ b/src/c/types/basic.c @@ -23,7 +23,7 @@ // INTERNAL SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool serialize_byte_1(MicroBuffer* mb, const uint8_t* byte) +bool serialize_byte_1(mcBuffer* mb, const uint8_t* byte) { uint32_t data_size = sizeof(uint8_t); if(check_buffer(mb, data_size)) @@ -36,16 +36,16 @@ bool serialize_byte_1(MicroBuffer* mb, const uint8_t* byte) return !mb->error; } -bool serialize_byte_2(MicroBuffer* mb, const Endianness endianness, const uint16_t* bytes) +bool serialize_byte_2(mcBuffer* mb, const mcEndianness endianness, const uint16_t* bytes) { uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = get_alignment_offset(mb, data_size); + uint32_t alignment = mc_buffer_alignment(mb, data_size); if(check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, bytes, data_size); } @@ -62,16 +62,16 @@ bool serialize_byte_2(MicroBuffer* mb, const Endianness endianness, const uint16 return !mb->error; } -bool serialize_byte_4(MicroBuffer* mb, const Endianness endianness, const uint32_t* bytes) +bool serialize_byte_4(mcBuffer* mb, const mcEndianness endianness, const uint32_t* bytes) { uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = get_alignment_offset(mb, data_size); + uint32_t alignment = mc_buffer_alignment(mb, data_size); if(check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, bytes, data_size); } @@ -90,16 +90,16 @@ bool serialize_byte_4(MicroBuffer* mb, const Endianness endianness, const uint32 return !mb->error; } -bool serialize_byte_8(MicroBuffer* mb, const Endianness endianness, const uint64_t* bytes) +bool serialize_byte_8(mcBuffer* mb, const mcEndianness endianness, const uint64_t* bytes) { uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = get_alignment_offset(mb, data_size); + uint32_t alignment = mc_buffer_alignment(mb, data_size); if(check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, bytes, data_size); } @@ -122,7 +122,7 @@ bool serialize_byte_8(MicroBuffer* mb, const Endianness endianness, const uint64 return !mb->error; } -bool deserialize_byte_1(MicroBuffer* mb, uint8_t* byte) +bool deserialize_byte_1(mcBuffer* mb, uint8_t* byte) { uint32_t data_size = sizeof(uint8_t); if(check_buffer(mb, data_size)) @@ -135,16 +135,16 @@ bool deserialize_byte_1(MicroBuffer* mb, uint8_t* byte) return !mb->error; } -bool deserialize_byte_2(MicroBuffer* mb, const Endianness endianness, uint16_t* bytes) +bool deserialize_byte_2(mcBuffer* mb, const mcEndianness endianness, uint16_t* bytes) { uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = get_alignment_offset(mb, data_size); + uint32_t alignment = mc_buffer_alignment(mb, data_size); if(check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(bytes, mb->iterator, data_size); } @@ -161,16 +161,16 @@ bool deserialize_byte_2(MicroBuffer* mb, const Endianness endianness, uint16_t* return !mb->error; } -bool deserialize_byte_4(MicroBuffer* mb, const Endianness endianness, uint32_t* bytes) +bool deserialize_byte_4(mcBuffer* mb, const mcEndianness endianness, uint32_t* bytes) { uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = get_alignment_offset(mb, data_size); + uint32_t alignment = mc_buffer_alignment(mb, data_size); if(check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(bytes, mb->iterator, data_size); } @@ -189,16 +189,16 @@ bool deserialize_byte_4(MicroBuffer* mb, const Endianness endianness, uint32_t* return !mb->error; } -bool deserialize_byte_8(MicroBuffer* mb, const Endianness endianness, uint64_t* bytes) +bool deserialize_byte_8(mcBuffer* mb, const mcEndianness endianness, uint64_t* bytes) { uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = get_alignment_offset(mb, data_size); + uint32_t alignment = mc_buffer_alignment(mb, data_size); if(check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MACHINE_ENDIANNESS == endianness) + if(MC_MACHINE_ENDIANNESS == endianness) { memcpy(bytes, mb->iterator, data_size); } @@ -225,202 +225,202 @@ bool deserialize_byte_8(MicroBuffer* mb, const Endianness endianness, uint64_t* // PUBLIC SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool serialize_char(MicroBuffer* mb, const char value) +bool mc_serialize_char(mcBuffer* mb, const char value) { return serialize_byte_1(mb, (uint8_t*)&value); } -bool serialize_bool(MicroBuffer* mb, const bool value) +bool mc_serialize_bool(mcBuffer* mb, const bool value) { return serialize_byte_1(mb, (uint8_t*)&value); } -bool serialize_uint8_t(MicroBuffer* mb, const uint8_t value) +bool mc_serialize_uint8_t(mcBuffer* mb, const uint8_t value) { return serialize_byte_1(mb, &value); } -bool serialize_uint16_t(MicroBuffer* mb, const uint16_t value) +bool mc_serialize_uint16_t(mcBuffer* mb, const uint16_t value) { return serialize_byte_2(mb, mb->endianness, &value); } -bool serialize_uint32_t(MicroBuffer* mb, const uint32_t value) +bool mc_serialize_uint32_t(mcBuffer* mb, const uint32_t value) { return serialize_byte_4(mb, mb->endianness, &value); } -bool serialize_uint64_t(MicroBuffer* mb, const uint64_t value) +bool mc_serialize_uint64_t(mcBuffer* mb, const uint64_t value) { return serialize_byte_8(mb, mb->endianness, &value); } -bool serialize_int8_t(MicroBuffer* mb, const int8_t value) +bool mc_serialize_int8_t(mcBuffer* mb, const int8_t value) { return serialize_byte_1(mb, (uint8_t*)&value); } -bool serialize_int16_t(MicroBuffer* mb, const int16_t value) +bool mc_serialize_int16_t(mcBuffer* mb, const int16_t value) { return serialize_byte_2(mb, mb->endianness, (uint16_t*)&value); } -bool serialize_int32_t(MicroBuffer* mb, const int32_t value) +bool mc_serialize_int32_t(mcBuffer* mb, const int32_t value) { return serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); } -bool serialize_int64_t(MicroBuffer* mb, const int64_t value) +bool mc_serialize_int64_t(mcBuffer* mb, const int64_t value) { return serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); } -bool serialize_float(MicroBuffer* mb, const float value) +bool mc_serialize_float(mcBuffer* mb, const float value) { return serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); } -bool serialize_double(MicroBuffer* mb, const double value) +bool mc_serialize_double(mcBuffer* mb, const double value) { return serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); } -bool deserialize_char(MicroBuffer* mb, char* value) +bool mc_deserialize_char(mcBuffer* mb, char* value) { return deserialize_byte_1(mb, (uint8_t*)value); } -bool deserialize_bool(MicroBuffer* mb, bool* value) +bool mc_deserialize_bool(mcBuffer* mb, bool* value) { return deserialize_byte_1(mb, (uint8_t*)value); } -bool deserialize_uint8_t(MicroBuffer* mb, uint8_t* value) +bool mc_deserialize_uint8_t(mcBuffer* mb, uint8_t* value) { return deserialize_byte_1(mb, value); } -bool deserialize_uint16_t(MicroBuffer* mb, uint16_t* value) +bool mc_deserialize_uint16_t(mcBuffer* mb, uint16_t* value) { return deserialize_byte_2(mb, mb->endianness, value); } -bool deserialize_uint32_t(MicroBuffer* mb, uint32_t* value) +bool mc_deserialize_uint32_t(mcBuffer* mb, uint32_t* value) { return deserialize_byte_4(mb, mb->endianness, value); } -bool deserialize_uint64_t(MicroBuffer* mb, uint64_t* value) +bool mc_deserialize_uint64_t(mcBuffer* mb, uint64_t* value) { return deserialize_byte_8(mb, mb->endianness, value); } -bool deserialize_int8_t(MicroBuffer* mb, int8_t* value) +bool mc_deserialize_int8_t(mcBuffer* mb, int8_t* value) { return deserialize_byte_1(mb, (uint8_t*)value); } -bool deserialize_int16_t(MicroBuffer* mb, int16_t* value) +bool mc_deserialize_int16_t(mcBuffer* mb, int16_t* value) { return deserialize_byte_2(mb, mb->endianness, (uint16_t*)value); } -bool deserialize_int32_t(MicroBuffer* mb, int32_t* value) +bool mc_deserialize_int32_t(mcBuffer* mb, int32_t* value) { return deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); } -bool deserialize_int64_t(MicroBuffer* mb, int64_t* value) +bool mc_deserialize_int64_t(mcBuffer* mb, int64_t* value) { return deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); } -bool deserialize_float(MicroBuffer* mb, float* value) +bool mc_deserialize_float(mcBuffer* mb, float* value) { return deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); } -bool deserialize_double(MicroBuffer* mb, double* value) +bool mc_deserialize_double(mcBuffer* mb, double* value) { return deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); } -bool serialize_endian_uint16_t(MicroBuffer* mb, const Endianness endianness, const uint16_t value) +bool mc_serialize_endian_uint16_t(mcBuffer* mb, const mcEndianness endianness, const uint16_t value) { return serialize_byte_2(mb, endianness, &value); } -bool serialize_endian_uint32_t(MicroBuffer* mb, const Endianness endianness, const uint32_t value) +bool mc_serialize_endian_uint32_t(mcBuffer* mb, const mcEndianness endianness, const uint32_t value) { return serialize_byte_4(mb, endianness, &value); } -bool serialize_endian_uint64_t(MicroBuffer* mb, const Endianness endianness, const uint64_t value) +bool mc_serialize_endian_uint64_t(mcBuffer* mb, const mcEndianness endianness, const uint64_t value) { return serialize_byte_8(mb, endianness, &value); } -bool serialize_endian_int16_t(MicroBuffer* mb, const Endianness endianness, const int16_t value) +bool mc_serialize_endian_int16_t(mcBuffer* mb, const mcEndianness endianness, const int16_t value) { return serialize_byte_2(mb, endianness, (uint16_t*)&value); } -bool serialize_endian_int32_t(MicroBuffer* mb, const Endianness endianness, const int32_t value) +bool mc_serialize_endian_int32_t(mcBuffer* mb, const mcEndianness endianness, const int32_t value) { return serialize_byte_4(mb, endianness, (uint32_t*)&value); } -bool serialize_endian_int64_t(MicroBuffer* mb, const Endianness endianness, const int64_t value) +bool mc_serialize_endian_int64_t(mcBuffer* mb, const mcEndianness endianness, const int64_t value) { return serialize_byte_8(mb, endianness, (uint64_t*)&value); } -bool serialize_endian_float(MicroBuffer* mb, const Endianness endianness, const float value) +bool mc_serialize_endian_float(mcBuffer* mb, const mcEndianness endianness, const float value) { return serialize_byte_4(mb, endianness, (uint32_t*)&value); } -bool serialize_endian_double(MicroBuffer* mb, const Endianness endianness, const double value) +bool mc_serialize_endian_double(mcBuffer* mb, const mcEndianness endianness, const double value) { return serialize_byte_8(mb, endianness, (uint64_t*)&value); } -bool deserialize_endian_uint16_t(MicroBuffer* mb, const Endianness endianness, uint16_t* value) +bool mc_deserialize_endian_uint16_t(mcBuffer* mb, const mcEndianness endianness, uint16_t* value) { return deserialize_byte_2(mb, endianness, value); } -bool deserialize_endian_uint32_t(MicroBuffer* mb, const Endianness endianness, uint32_t* value) +bool mc_deserialize_endian_uint32_t(mcBuffer* mb, const mcEndianness endianness, uint32_t* value) { return deserialize_byte_4(mb, endianness, value); } -bool deserialize_endian_uint64_t(MicroBuffer* mb, const Endianness endianness, uint64_t* value) +bool mc_deserialize_endian_uint64_t(mcBuffer* mb, const mcEndianness endianness, uint64_t* value) { return deserialize_byte_8(mb, endianness, value); } -bool deserialize_endian_int16_t(MicroBuffer* mb, const Endianness endianness, int16_t* value) +bool mc_deserialize_endian_int16_t(mcBuffer* mb, const mcEndianness endianness, int16_t* value) { return deserialize_byte_2(mb, endianness, (uint16_t*)value); } -bool deserialize_endian_int32_t(MicroBuffer* mb, const Endianness endianness, int32_t* value) +bool mc_deserialize_endian_int32_t(mcBuffer* mb, const mcEndianness endianness, int32_t* value) { return deserialize_byte_4(mb, endianness, (uint32_t*)value); } -bool deserialize_endian_int64_t(MicroBuffer* mb, const Endianness endianness, int64_t* value) +bool mc_deserialize_endian_int64_t(mcBuffer* mb, const mcEndianness endianness, int64_t* value) { return deserialize_byte_8(mb, endianness, (uint64_t*)value); } -bool deserialize_endian_float(MicroBuffer* mb, const Endianness endianness, float* value) +bool mc_deserialize_endian_float(mcBuffer* mb, const mcEndianness endianness, float* value) { return deserialize_byte_4(mb, endianness, (uint32_t*)value); } -bool deserialize_endian_double(MicroBuffer* mb, const Endianness endianness, double* value) +bool mc_deserialize_endian_double(mcBuffer* mb, const mcEndianness endianness, double* value) { return deserialize_byte_8(mb, endianness, (uint64_t*)value); } diff --git a/src/c/types/basic_internals.h b/src/c/types/basic_internals.h index d2714bb..2be43ae 100644 --- a/src/c/types/basic_internals.h +++ b/src/c/types/basic_internals.h @@ -24,15 +24,15 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -bool serialize_byte_1(MicroBuffer* buffer, const uint8_t* byte); -bool serialize_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* bytes); -bool serialize_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* bytes); -bool serialize_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* bytes); +bool serialize_byte_1(mcBuffer* buffer, const uint8_t* byte); +bool serialize_byte_2(mcBuffer* buffer, mcEndianness endianness, const uint16_t* bytes); +bool serialize_byte_4(mcBuffer* buffer, mcEndianness endianness, const uint32_t* bytes); +bool serialize_byte_8(mcBuffer* buffer, mcEndianness endianness, const uint64_t* bytes); -bool deserialize_byte_1(MicroBuffer* buffer, uint8_t* byte); -bool deserialize_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* bytes); -bool deserialize_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* bytes); -bool deserialize_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* bytes); +bool deserialize_byte_1(mcBuffer* buffer, uint8_t* byte); +bool deserialize_byte_2(mcBuffer* buffer, mcEndianness endianness, uint16_t* bytes); +bool deserialize_byte_4(mcBuffer* buffer, mcEndianness endianness, uint32_t* bytes); +bool deserialize_byte_8(mcBuffer* buffer, mcEndianness endianness, uint64_t* bytes); #ifdef __cplusplus } diff --git a/src/c/types/sequence.c b/src/c/types/sequence.c index 517cd3a..922cef9 100644 --- a/src/c/types/sequence.c +++ b/src/c/types/sequence.c @@ -22,9 +22,9 @@ // ------------------------------------------------------------------- // INTERNAL UTIL IMPLEMENTATION // ------------------------------------------------------------------- -static inline void deserialize_sequence_header(MicroBuffer* mb, Endianness endianness, uint32_t capacity, uint32_t* size) +static inline void deserialize_sequence_header(mcBuffer* mb, mcEndianness endianness, uint32_t capacity, uint32_t* size) { - deserialize_endian_uint32_t(mb, endianness, size); + mc_deserialize_endian_uint32_t(mb, endianness, size); if(*size > capacity) { mb->error = true; @@ -34,52 +34,49 @@ static inline void deserialize_sequence_header(MicroBuffer* mb, Endianness endia // ------------------------------------------------------------------- // INTERNAL SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- - - - -bool serialize_sequence_byte_1(MicroBuffer* mb, Endianness endianness, const uint8_t* array, const uint32_t size) +bool serialize_sequence_byte_1(mcBuffer* mb, mcEndianness endianness, const uint8_t* array, const uint32_t size) { - serialize_endian_uint32_t(mb, endianness, size); + mc_serialize_endian_uint32_t(mb, endianness, size); return serialize_array_byte_1(mb, array, size); } -bool serialize_sequence_byte_2(MicroBuffer* mb, Endianness endianness, const uint16_t* array, const uint32_t size) +bool serialize_sequence_byte_2(mcBuffer* mb, mcEndianness endianness, const uint16_t* array, const uint32_t size) { - serialize_endian_uint32_t(mb, endianness, size); + mc_serialize_endian_uint32_t(mb, endianness, size); return serialize_array_byte_2(mb, endianness, array, size); } -bool serialize_sequence_byte_4(MicroBuffer* mb, Endianness endianness, const uint32_t* array, const uint32_t size) +bool serialize_sequence_byte_4(mcBuffer* mb, mcEndianness endianness, const uint32_t* array, const uint32_t size) { - serialize_endian_uint32_t(mb, endianness, size); + mc_serialize_endian_uint32_t(mb, endianness, size); return serialize_array_byte_4(mb, endianness, array, size); } -bool serialize_sequence_byte_8(MicroBuffer* mb, Endianness endianness, const uint64_t* array, const uint32_t size) +bool serialize_sequence_byte_8(mcBuffer* mb, mcEndianness endianness, const uint64_t* array, const uint32_t size) { - serialize_endian_uint32_t(mb, endianness, size); + mc_serialize_endian_uint32_t(mb, endianness, size); return serialize_array_byte_8(mb, endianness, array, size); } -bool deserialize_sequence_byte_1(MicroBuffer* mb, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) +bool deserialize_sequence_byte_1(mcBuffer* mb, mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { deserialize_sequence_header(mb, endianness, array_capacity, size); return deserialize_array_byte_1(mb, array, *size); } -bool deserialize_sequence_byte_2(MicroBuffer* mb, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) +bool deserialize_sequence_byte_2(mcBuffer* mb, mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { deserialize_sequence_header(mb, endianness, array_capacity, size); return deserialize_array_byte_2(mb, endianness, array, *size); } -bool deserialize_sequence_byte_4(MicroBuffer* mb, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) +bool deserialize_sequence_byte_4(mcBuffer* mb, mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { deserialize_sequence_header(mb, endianness, array_capacity, size); return deserialize_array_byte_4(mb, endianness, array, *size); } -bool deserialize_sequence_byte_8(MicroBuffer* mb, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) +bool deserialize_sequence_byte_8(mcBuffer* mb, mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { deserialize_sequence_header(mb, endianness, array_capacity, size); return deserialize_array_byte_8(mb, endianness, array, *size); @@ -89,242 +86,242 @@ bool deserialize_sequence_byte_8(MicroBuffer* mb, Endianness endianness, uint64_ // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool serialize_sequence_char(MicroBuffer* mb, const char* array, const uint32_t size) +bool mc_serialize_sequence_char(mcBuffer* mb, const char* array, const uint32_t size) { return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool serialize_sequence_bool(MicroBuffer* mb, const bool* array, const uint32_t size) +bool mc_serialize_sequence_bool(mcBuffer* mb, const bool* array, const uint32_t size) { return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool serialize_sequence_uint8_t(MicroBuffer* mb, const uint8_t* array, const uint32_t size) +bool mc_serialize_sequence_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size) { return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool serialize_sequence_uint16_t(MicroBuffer* mb, const uint16_t* array, const uint32_t size) +bool mc_serialize_sequence_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size) { return serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool serialize_sequence_uint32_t(MicroBuffer* mb, const uint32_t* array, const uint32_t size) +bool mc_serialize_sequence_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size) { return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_sequence_uint64_t(MicroBuffer* mb, const uint64_t* array, const uint32_t size) +bool mc_serialize_sequence_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size) { return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_sequence_int8_t(MicroBuffer* mb, const int8_t* array, const uint32_t size) +bool mc_serialize_sequence_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size) { return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool serialize_sequence_int16_t(MicroBuffer* mb, const int16_t* array, const uint32_t size) +bool mc_serialize_sequence_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size) { return serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool serialize_sequence_int32_t(MicroBuffer* mb, const int32_t* array, const uint32_t size) +bool mc_serialize_sequence_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size) { return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_sequence_int64_t(MicroBuffer* mb, const int64_t* array, const uint32_t size) +bool mc_serialize_sequence_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size) { return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool serialize_sequence_float(MicroBuffer* mb, const float* array, const uint32_t size) +bool mc_serialize_sequence_float(mcBuffer* mb, const float* array, const uint32_t size) { return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool serialize_sequence_double(MicroBuffer* mb, const double* array, const uint32_t size) +bool mc_serialize_sequence_double(mcBuffer* mb, const double* array, const uint32_t size) { return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool deserialize_sequence_char(MicroBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_char(mcBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_sequence_bool(MicroBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_bool(mcBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_sequence_uint8_t(MicroBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_sequence_uint16_t(MicroBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); } -bool deserialize_sequence_uint32_t(MicroBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_sequence_uint64_t(MicroBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_sequence_int8_t(MicroBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_int8_t(mcBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_sequence_int16_t(MicroBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_int16_t(mcBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); } -bool deserialize_sequence_int32_t(MicroBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_int32_t(mcBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_sequence_int64_t(MicroBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_int64_t(mcBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_sequence_float(MicroBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_float(mcBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_sequence_double(MicroBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_sequence_double(mcBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool serialize_endian_sequence_char(MicroBuffer* mb, const Endianness endianness, const char* array, const uint32_t size) +bool mc_serialize_endian_sequence_char(mcBuffer* mb, const mcEndianness endianness, const char* array, const uint32_t size) { return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool serialize_endian_sequence_bool(MicroBuffer* mb, const Endianness endianness, const bool* array, const uint32_t size) +bool mc_serialize_endian_sequence_bool(mcBuffer* mb, const mcEndianness endianness, const bool* array, const uint32_t size) { return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool serialize_endian_sequence_uint8_t(MicroBuffer* mb, const Endianness endianness, const uint8_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_uint8_t(mcBuffer* mb, const mcEndianness endianness, const uint8_t* array, const uint32_t size) { return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool serialize_endian_sequence_uint16_t(MicroBuffer* mb, const Endianness endianness, const uint16_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_uint16_t(mcBuffer* mb, const mcEndianness endianness, const uint16_t* array, const uint32_t size) { return serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); } -bool serialize_endian_sequence_uint32_t(MicroBuffer* mb, const Endianness endianness, const uint32_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_uint32_t(mcBuffer* mb, const mcEndianness endianness, const uint32_t* array, const uint32_t size) { return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_sequence_uint64_t(MicroBuffer* mb, const Endianness endianness, const uint64_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_uint64_t(mcBuffer* mb, const mcEndianness endianness, const uint64_t* array, const uint32_t size) { return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool serialize_endian_sequence_int8_t(MicroBuffer* mb, const Endianness endianness, const int8_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_int8_t(mcBuffer* mb, const mcEndianness endianness, const int8_t* array, const uint32_t size) { return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool serialize_endian_sequence_int16_t(MicroBuffer* mb, const Endianness endianness, const int16_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_int16_t(mcBuffer* mb, const mcEndianness endianness, const int16_t* array, const uint32_t size) { return serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); } -bool serialize_endian_sequence_int32_t(MicroBuffer* mb, const Endianness endianness, const int32_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_int32_t(mcBuffer* mb, const mcEndianness endianness, const int32_t* array, const uint32_t size) { return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_sequence_int64_t(MicroBuffer* mb, const Endianness endianness, const int64_t* array, const uint32_t size) +bool mc_serialize_endian_sequence_int64_t(mcBuffer* mb, const mcEndianness endianness, const int64_t* array, const uint32_t size) { return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool serialize_endian_sequence_float(MicroBuffer* mb, const Endianness endianness, const float* array, const uint32_t size) +bool mc_serialize_endian_sequence_float(mcBuffer* mb, const mcEndianness endianness, const float* array, const uint32_t size) { return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool serialize_endian_sequence_double(MicroBuffer* mb, const Endianness endianness, const double* array, const uint32_t size) +bool mc_serialize_endian_sequence_double(mcBuffer* mb, const mcEndianness endianness, const double* array, const uint32_t size) { return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool deserialize_endian_sequence_char(MicroBuffer* mb, const Endianness endianness, char* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_char(mcBuffer* mb, const mcEndianness endianness, char* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_bool(MicroBuffer* mb, const Endianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_bool(mcBuffer* mb, const mcEndianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_uint8_t(MicroBuffer* mb, const Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_uint8_t(mcBuffer* mb, const mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_uint16_t(MicroBuffer* mb, const Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_uint16_t(mcBuffer* mb, const mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_uint32_t(MicroBuffer* mb, const Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_uint32_t(mcBuffer* mb, const mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_uint64_t(MicroBuffer* mb, const Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_uint64_t(mcBuffer* mb, const mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_int8_t(MicroBuffer* mb, const Endianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_int8_t(mcBuffer* mb, const mcEndianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_int16_t(MicroBuffer* mb, const Endianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_int16_t(mcBuffer* mb, const mcEndianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_int32_t(MicroBuffer* mb, const Endianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_int32_t(mcBuffer* mb, const mcEndianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_int64_t(MicroBuffer* mb, const Endianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_int64_t(mcBuffer* mb, const mcEndianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_float(MicroBuffer* mb, const Endianness endianness, float* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_float(mcBuffer* mb, const mcEndianness endianness, float* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool deserialize_endian_sequence_double(MicroBuffer* mb, const Endianness endianness, double* array, const uint32_t array_capacity, uint32_t* size) +bool mc_deserialize_endian_sequence_double(mcBuffer* mb, const mcEndianness endianness, double* array, const uint32_t array_capacity, uint32_t* size) { return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } diff --git a/src/c/types/sequence_internals.h b/src/c/types/sequence_internals.h index af58b4e..39048c6 100644 --- a/src/c/types/sequence_internals.h +++ b/src/c/types/sequence_internals.h @@ -26,15 +26,15 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -bool serialize_sequence_byte_1(MicroBuffer* buffer, Endianness endianness, const uint8_t* array, const uint32_t size); -bool serialize_sequence_byte_2(MicroBuffer* buffer, Endianness endianness, const uint16_t* array, const uint32_t size); -bool serialize_sequence_byte_4(MicroBuffer* buffer, Endianness endianness, const uint32_t* array, const uint32_t size); -bool serialize_sequence_byte_8(MicroBuffer* buffer, Endianness endianness, const uint64_t* array, const uint32_t size); - -bool deserialize_sequence_byte_1(MicroBuffer* buffer, Endianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -bool deserialize_sequence_byte_2(MicroBuffer* buffer, Endianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -bool deserialize_sequence_byte_4(MicroBuffer* buffer, Endianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -bool deserialize_sequence_byte_8(MicroBuffer* buffer, Endianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +bool serialize_sequence_byte_1(mcBuffer* buffer, mcEndianness endianness, const uint8_t* array, const uint32_t size); +bool serialize_sequence_byte_2(mcBuffer* buffer, mcEndianness endianness, const uint16_t* array, const uint32_t size); +bool serialize_sequence_byte_4(mcBuffer* buffer, mcEndianness endianness, const uint32_t* array, const uint32_t size); +bool serialize_sequence_byte_8(mcBuffer* buffer, mcEndianness endianness, const uint64_t* array, const uint32_t size); + +bool deserialize_sequence_byte_1(mcBuffer* buffer, mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +bool deserialize_sequence_byte_2(mcBuffer* buffer, mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +bool deserialize_sequence_byte_4(mcBuffer* buffer, mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +bool deserialize_sequence_byte_8(mcBuffer* buffer, mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); #ifdef __cplusplus } diff --git a/src/c/types/string.c b/src/c/types/string.c index c567368..7709d4c 100644 --- a/src/c/types/string.c +++ b/src/c/types/string.c @@ -22,24 +22,24 @@ // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool serialize_string(MicroBuffer* mb, const char* string) +bool mc_serialize_string(mcBuffer* mb, const char* string) { - return serialize_sequence_char(mb, string, (uint32_t)strlen(string) + 1); + return mc_serialize_sequence_char(mb, string, (uint32_t)strlen(string) + 1); } -bool deserialize_string(MicroBuffer* mb, char* string, const uint32_t string_capacity) +bool mc_deserialize_string(mcBuffer* mb, char* string, const uint32_t string_capacity) { uint32_t length; - return deserialize_sequence_char(mb, string, string_capacity, &length); + return mc_deserialize_sequence_char(mb, string, string_capacity, &length); } -bool serialize_endian_string(MicroBuffer* mb, Endianness endianness, const char* string) +bool mc_serialize_endian_string(mcBuffer* mb, mcEndianness endianness, const char* string) { - return serialize_endian_sequence_char(mb, endianness, string, (uint32_t)strlen(string) + 1); + return mc_serialize_endian_sequence_char(mb, endianness, string, (uint32_t)strlen(string) + 1); } -bool deserialize_endian_string(MicroBuffer* mb, Endianness endianness, char* string, const uint32_t string_capacity) +bool mc_deserialize_endian_string(mcBuffer* mb, mcEndianness endianness, char* string, const uint32_t string_capacity) { uint32_t length; - return deserialize_endian_sequence_char(mb, endianness, string, string_capacity, &length); + return mc_deserialize_endian_sequence_char(mb, endianness, string, string_capacity, &length); } diff --git a/test/Alignment.cpp b/test/Alignment.cpp index c978628..e6e9a2f 100644 --- a/test/Alignment.cpp +++ b/test/Alignment.cpp @@ -29,8 +29,8 @@ class Alignment : public BasicSerialization, public ::testing::WithParamInterfac void check_alignment(int alignment) { - EXPECT_EQ(static_cast(micro_buffer_length(&writer)) % alignment, 0); - EXPECT_EQ(static_cast(micro_buffer_length(&reader)) % alignment, 0); + EXPECT_EQ(static_cast(mc_buffer_length(&writer)) % alignment, 0); + EXPECT_EQ(static_cast(mc_buffer_length(&reader)) % alignment, 0); } virtual ~Alignment() diff --git a/test/FullBuffer.cpp b/test/FullBuffer.cpp index 2fbd586..2ce469e 100644 --- a/test/FullBuffer.cpp +++ b/test/FullBuffer.cpp @@ -37,8 +37,8 @@ class FullBuffer : public BasicSerialization uint8_t input = 0xAA; uint8_t output = 0; - EXPECT_FALSE(serialize_uint8_t(&writer, input)); - EXPECT_FALSE(deserialize_uint8_t(&reader, &output)); + EXPECT_FALSE(mc_serialize_uint8_t(&writer, input)); + EXPECT_FALSE(mc_deserialize_uint8_t(&reader, &output)); } void try_block_2() @@ -46,8 +46,8 @@ class FullBuffer : public BasicSerialization uint16_t input = 0xAABB; uint16_t output = 0; - EXPECT_FALSE(serialize_uint16_t(&writer, input)); - EXPECT_FALSE(deserialize_uint16_t(&reader, &output)); + EXPECT_FALSE(mc_serialize_uint16_t(&writer, input)); + EXPECT_FALSE(mc_deserialize_uint16_t(&reader, &output)); } void try_block_4() @@ -55,8 +55,8 @@ class FullBuffer : public BasicSerialization uint32_t input = 0xAABBCCDD; uint32_t output = 0; - EXPECT_FALSE(serialize_uint32_t(&writer, input)); - EXPECT_FALSE(deserialize_uint32_t(&reader, &output)); + EXPECT_FALSE(mc_serialize_uint32_t(&writer, input)); + EXPECT_FALSE(mc_deserialize_uint32_t(&reader, &output)); } void try_block_8() @@ -64,8 +64,8 @@ class FullBuffer : public BasicSerialization uint64_t input = 0x0123456789ABCDEF; uint64_t output = 0; - EXPECT_FALSE(serialize_uint64_t(&writer, input)); - EXPECT_FALSE(deserialize_uint64_t(&reader, &output)); + EXPECT_FALSE(mc_serialize_uint64_t(&writer, input)); + EXPECT_FALSE(mc_deserialize_uint64_t(&reader, &output)); } ~FullBuffer() diff --git a/test/SequenceOverflow.cpp b/test/SequenceOverflow.cpp index 17de428..285379d 100644 --- a/test/SequenceOverflow.cpp +++ b/test/SequenceOverflow.cpp @@ -27,7 +27,7 @@ class SequenceOverflow : public SequenceSerialization ~SequenceOverflow() { //4 because of the sequence header (no necessary padding) - EXPECT_EQ(micro_buffer_length(&reader), 4); + EXPECT_EQ(mc_buffer_length(&reader), 4u); EXPECT_TRUE(reader.error); // To satisfy the base destructor @@ -43,8 +43,8 @@ TEST_F(SequenceOverflow, Block1) uint8_t input[SEQUENCE_SIZE_OVERFLOW]; uint8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint8_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint8_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(mc_deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); } TEST_F(SequenceOverflow, Block2) @@ -52,8 +52,8 @@ TEST_F(SequenceOverflow, Block2) uint16_t input[SEQUENCE_SIZE_OVERFLOW]; uint16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint16_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint16_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(mc_deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); } TEST_F(SequenceOverflow, Block4) @@ -61,8 +61,8 @@ TEST_F(SequenceOverflow, Block4) uint32_t input[SEQUENCE_SIZE_OVERFLOW]; uint32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint32_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint32_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(mc_deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); } TEST_F(SequenceOverflow, Block8) @@ -70,7 +70,7 @@ TEST_F(SequenceOverflow, Block8) uint64_t input[SEQUENCE_SIZE_OVERFLOW]; uint64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint64_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint64_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(mc_deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); } diff --git a/test/endianness/ArrayEndianness.cpp b/test/endianness/ArrayEndianness.cpp index fcbf906..ff8bea3 100644 --- a/test/endianness/ArrayEndianness.cpp +++ b/test/endianness/ArrayEndianness.cpp @@ -14,7 +14,7 @@ #include "../serialization/ArraySerialization.hpp" -class ArrayEndianness : public ArraySerialization, public ::testing::WithParamInterface +class ArrayEndianness : public ArraySerialization, public ::testing::WithParamInterface { public: @@ -28,17 +28,17 @@ class ArrayEndianness : public ArraySerialization, public ::testing::WithParamIn } protected: - Endianness endianness; + mcEndianness endianness; }; TEST_P(ArrayEndianness, Int16) { int16_t input[ARRAY_SIZE]; - std::fill_n(input, ARRAY_SIZE, 0x0A0B); + std::fill_n(input, ARRAY_SIZE, int16_t(0x0A0B)); int16_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_int16_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_int16_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_int16_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_int16_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -46,11 +46,11 @@ TEST_P(ArrayEndianness, Int16) TEST_P(ArrayEndianness, Uint16) { uint16_t input[ARRAY_SIZE]; - std::fill_n(input, ARRAY_SIZE, 0x0A0B); + std::fill_n(input, ARRAY_SIZE, uint16_t(0x0A0Bu)); uint16_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_uint16_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_uint16_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_uint16_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_uint16_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -61,8 +61,8 @@ TEST_P(ArrayEndianness, Int32) std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); int32_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_int32_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_int32_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_int32_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_int32_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -73,8 +73,8 @@ TEST_P(ArrayEndianness, Uint32) std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); uint32_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_uint32_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_uint32_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_uint32_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_uint32_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -85,8 +85,8 @@ TEST_P(ArrayEndianness, Int64) std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); int64_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_int64_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_int64_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_int64_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_int64_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -97,8 +97,8 @@ TEST_P(ArrayEndianness, Uint64) std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); uint64_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_uint64_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_uint64_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_uint64_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_uint64_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -109,8 +109,8 @@ TEST_P(ArrayEndianness, Float) std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462f); float output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_float(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_float(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_float(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_float(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -121,10 +121,10 @@ TEST_P(ArrayEndianness, Double) std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462); double output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_endian_array_double(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_endian_array_double(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_endian_array_double(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_array_double(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } -INSTANTIATE_TEST_CASE_P(Endianness, ArrayEndianness, ::testing::Values(LITTLE_ENDIANNESS, BIG_ENDIANNESS)); +INSTANTIATE_TEST_CASE_P(mcEndianness, ArrayEndianness, ::testing::Values(MC_LITTLE_ENDIANNESS, MC_BIG_ENDIANNESS)); diff --git a/test/endianness/BasicEndianness.cpp b/test/endianness/BasicEndianness.cpp index 3657dbc..fc56060 100644 --- a/test/endianness/BasicEndianness.cpp +++ b/test/endianness/BasicEndianness.cpp @@ -14,7 +14,7 @@ #include "../serialization/BasicSerialization.hpp" -class BasicEndianness : public BasicSerialization, public ::testing::WithParamInterface +class BasicEndianness : public BasicSerialization, public ::testing::WithParamInterface { public: @@ -28,7 +28,7 @@ class BasicEndianness : public BasicSerialization, public ::testing::WithParamIn } protected: - Endianness endianness; + mcEndianness endianness; }; TEST_P(BasicEndianness, Int16) @@ -36,8 +36,8 @@ TEST_P(BasicEndianness, Int16) int16_t input = 0x0A0B; int16_t output = 0; - EXPECT_TRUE(serialize_endian_int16_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_int16_t(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_int16_t(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_int16_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -47,8 +47,8 @@ TEST_P(BasicEndianness, Uint16) uint16_t input = 0x0A0B; uint16_t output = 0; - EXPECT_TRUE(serialize_endian_uint16_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_uint16_t(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_uint16_t(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_uint16_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -58,8 +58,8 @@ TEST_P(BasicEndianness, Int32) int32_t input = 0x0C0D0E0F; int32_t output = 0; - EXPECT_TRUE(serialize_endian_int32_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_int32_t(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_int32_t(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_int32_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -69,8 +69,8 @@ TEST_P(BasicEndianness, Uint32) uint32_t input = 0x0C0D0E0F; uint32_t output = 0; - EXPECT_TRUE(serialize_endian_uint32_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_uint32_t(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_uint32_t(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_uint32_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -80,8 +80,8 @@ TEST_P(BasicEndianness, Int64) int64_t input = 0x0102030405060708L; int64_t output = 0; - EXPECT_TRUE(serialize_endian_int64_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_int64_t(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_int64_t(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_int64_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -91,8 +91,8 @@ TEST_P(BasicEndianness, Uint64) uint64_t input = 0x0102030405060708L; uint64_t output = 0; - EXPECT_TRUE(serialize_endian_uint64_t(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_uint64_t(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_uint64_t(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_uint64_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -102,8 +102,8 @@ TEST_P(BasicEndianness, Float) float input = 3.141592653589793238462f; float output = 0; - EXPECT_TRUE(serialize_endian_float(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_float(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_float(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_float(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -113,10 +113,10 @@ TEST_P(BasicEndianness, Double) double input = 3.141592653589793238462; double output = 0; - EXPECT_TRUE(serialize_endian_double(&writer, endianness, input)); - EXPECT_TRUE(deserialize_endian_double(&reader, endianness, &output)); + EXPECT_TRUE(mc_serialize_endian_double(&writer, endianness, input)); + EXPECT_TRUE(mc_deserialize_endian_double(&reader, endianness, &output)); EXPECT_EQ(input, output); } -INSTANTIATE_TEST_CASE_P(Endianness, BasicEndianness, ::testing::Values(LITTLE_ENDIANNESS, BIG_ENDIANNESS)); +INSTANTIATE_TEST_CASE_P(mcEndianness, BasicEndianness, ::testing::Values(MC_LITTLE_ENDIANNESS, MC_BIG_ENDIANNESS)); diff --git a/test/endianness/SequenceEndianness.cpp b/test/endianness/SequenceEndianness.cpp index 0516482..765d03e 100644 --- a/test/endianness/SequenceEndianness.cpp +++ b/test/endianness/SequenceEndianness.cpp @@ -14,7 +14,7 @@ #include "../serialization/SequenceSerialization.hpp" -class SequenceEndianness : public SequenceSerialization, public ::testing::WithParamInterface +class SequenceEndianness : public SequenceSerialization, public ::testing::WithParamInterface { public: @@ -29,7 +29,7 @@ class SequenceEndianness : public SequenceSerialization, public ::testing::WithP protected: - Endianness endianness; + mcEndianness endianness; }; TEST_P(SequenceEndianness, Bool) @@ -38,8 +38,8 @@ TEST_P(SequenceEndianness, Bool) std::fill_n(input, SEQUENCE_SIZE, true); bool output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_bool(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_bool(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_bool(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_bool(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -50,8 +50,8 @@ TEST_P(SequenceEndianness, Char) std::fill_n(input, SEQUENCE_SIZE, 'A'); char output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_char(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_char(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_char(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_char(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -59,11 +59,11 @@ TEST_P(SequenceEndianness, Char) TEST_P(SequenceEndianness, Int8) { int8_t input[ARRAY_CAPACITY]; - std::fill_n(input, SEQUENCE_SIZE, 0x09); + std::fill_n(input, SEQUENCE_SIZE, int8_t(0x09)); int8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_int8_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_int8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_int8_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_int8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -71,11 +71,11 @@ TEST_P(SequenceEndianness, Int8) TEST_P(SequenceEndianness, Uint8) { uint8_t input[ARRAY_CAPACITY]; - std::fill_n(input, SEQUENCE_SIZE, 0x09); + std::fill_n(input, SEQUENCE_SIZE, uint8_t(0x09)); uint8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_uint8_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_uint8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_uint8_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_uint8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -83,11 +83,11 @@ TEST_P(SequenceEndianness, Uint8) TEST_P(SequenceEndianness, Int16) { int16_t input[ARRAY_CAPACITY]; - std::fill_n(input, SEQUENCE_SIZE, 0x0A0B); + std::fill_n(input, SEQUENCE_SIZE, int16_t(0x0A0B)); int16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_int16_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_int16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_int16_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_int16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -95,11 +95,11 @@ TEST_P(SequenceEndianness, Int16) TEST_P(SequenceEndianness, Uint16) { uint16_t input[ARRAY_CAPACITY]; - std::fill_n(input, SEQUENCE_SIZE, 0x0A0B); + std::fill_n(input, SEQUENCE_SIZE, uint16_t(0x0A0B)); uint16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_uint16_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_uint16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_uint16_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_uint16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -110,8 +110,8 @@ TEST_P(SequenceEndianness, Int32) std::fill_n(input, SEQUENCE_SIZE, 0x0A0B0C0D); int32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_int32_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_int32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_int32_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_int32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -122,8 +122,8 @@ TEST_P(SequenceEndianness, Uint32) std::fill_n(input, SEQUENCE_SIZE, 0x0A0B0C0D); uint32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_uint32_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_uint32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_uint32_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_uint32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -134,8 +134,8 @@ TEST_P(SequenceEndianness, Int64) std::fill_n(input, SEQUENCE_SIZE, 0x0102030405060708L); int64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_int64_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_int64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_int64_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_int64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -146,8 +146,8 @@ TEST_P(SequenceEndianness, Uint64) std::fill_n(input, SEQUENCE_SIZE, 0x0102030405060708L); uint64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_uint64_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_uint64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_uint64_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_uint64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -158,8 +158,8 @@ TEST_P(SequenceEndianness, Float) std::fill_n(input, SEQUENCE_SIZE, 3.141592653589793238462f); float output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_float(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_float(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_float(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_float(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -170,10 +170,10 @@ TEST_P(SequenceEndianness, Double) std::fill_n(input, SEQUENCE_SIZE, 3.141592653589793238462); double output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_endian_sequence_double(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(deserialize_endian_sequence_double(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_endian_sequence_double(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(mc_deserialize_endian_sequence_double(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } -INSTANTIATE_TEST_CASE_P(Endianness, SequenceEndianness, ::testing::Values(LITTLE_ENDIANNESS, BIG_ENDIANNESS)); +INSTANTIATE_TEST_CASE_P(mcEndianness, SequenceEndianness, ::testing::Values(MC_LITTLE_ENDIANNESS, MC_BIG_ENDIANNESS)); diff --git a/test/serialization/ArraySerialization.hpp b/test/serialization/ArraySerialization.hpp index bbfd748..d4c637a 100644 --- a/test/serialization/ArraySerialization.hpp +++ b/test/serialization/ArraySerialization.hpp @@ -37,8 +37,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, true); bool output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_bool(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_bool(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_bool(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_bool(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -49,8 +49,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 'A'); char output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_char(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_char(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_char(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_char(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -58,11 +58,11 @@ class ArraySerialization : public BasicSerialization void int8_t_array_serialization() { int8_t input[ARRAY_SIZE]; - std::fill_n(input, ARRAY_SIZE, 0x09); + std::fill_n(input, ARRAY_SIZE, int8_t(0x09)); int8_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_int8_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_int8_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_int8_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_int8_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -70,11 +70,11 @@ class ArraySerialization : public BasicSerialization void uint8_t_array_serialization() { uint8_t input[ARRAY_SIZE]; - std::fill_n(input, ARRAY_SIZE, 0x09); + std::fill_n(input, ARRAY_SIZE, uint8_t(0x09)); uint8_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_uint8_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_uint8_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_uint8_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_uint8_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -82,11 +82,11 @@ class ArraySerialization : public BasicSerialization void int16_t_array_serialization() { int16_t input[ARRAY_SIZE]; - std::fill_n(input, ARRAY_SIZE, 0x0A0B); + std::fill_n(input, ARRAY_SIZE, int16_t(0x0A0B)); int16_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_int16_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_int16_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_int16_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_int16_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -94,11 +94,11 @@ class ArraySerialization : public BasicSerialization void uint16_t_array_serialization() { uint16_t input[ARRAY_SIZE]; - std::fill_n(input, ARRAY_SIZE, 0x0A0B); + std::fill_n(input, ARRAY_SIZE, uint16_t(0x0A0B)); uint16_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_uint16_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_uint16_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_uint16_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_uint16_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -109,8 +109,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); int32_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_int32_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_int32_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_int32_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_int32_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -121,8 +121,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); uint32_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_uint32_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_uint32_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_uint32_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_uint32_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -133,8 +133,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); int64_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_int64_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_int64_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_int64_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_int64_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -145,8 +145,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); uint64_t output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_uint64_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_uint64_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_uint64_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_uint64_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -157,8 +157,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462f); float output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_float(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_float(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_float(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_float(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -169,11 +169,11 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462); double output[ARRAY_SIZE]; - EXPECT_TRUE(serialize_array_double(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(deserialize_array_double(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(mc_serialize_array_double(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(mc_deserialize_array_double(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } }; -#endif //_ARRAY_SERIALIZATION_HPP_ +#endif //_ARRAY_SERIALIZATION_HPP_ \ No newline at end of file diff --git a/test/serialization/BasicSerialization.hpp b/test/serialization/BasicSerialization.hpp index 0f11d0c..e7d3247 100644 --- a/test/serialization/BasicSerialization.hpp +++ b/test/serialization/BasicSerialization.hpp @@ -29,8 +29,8 @@ class BasicSerialization : public ::testing::Test BasicSerialization() { std::memset(buffer, 0, BUFFER_LENGTH); - init_micro_buffer(&writer, buffer, BUFFER_LENGTH); - init_micro_buffer(&reader, buffer, BUFFER_LENGTH); + mc_init_buffer(&writer, buffer, BUFFER_LENGTH); + mc_init_buffer(&reader, buffer, BUFFER_LENGTH); } void check_data_size(uint32_t data_size) @@ -51,8 +51,8 @@ class BasicSerialization : public ::testing::Test bool input = true; bool output = 0; - EXPECT_TRUE(serialize_bool(&writer, input)); - EXPECT_TRUE(deserialize_bool(&reader, &output)); + EXPECT_TRUE(mc_serialize_bool(&writer, input)); + EXPECT_TRUE(mc_deserialize_bool(&reader, &output)); EXPECT_EQ(input, output); @@ -64,8 +64,8 @@ class BasicSerialization : public ::testing::Test char input = 'A'; char output = 0; - EXPECT_TRUE(serialize_char(&writer, input)); - EXPECT_TRUE(deserialize_char(&reader, &output)); + EXPECT_TRUE(mc_serialize_char(&writer, input)); + EXPECT_TRUE(mc_deserialize_char(&reader, &output)); EXPECT_EQ(input, output); check_data_size(1); @@ -76,8 +76,8 @@ class BasicSerialization : public ::testing::Test int8_t input = 0x09; int8_t output = 0; - EXPECT_TRUE(serialize_int8_t(&writer, input)); - EXPECT_TRUE(deserialize_int8_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_int8_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_int8_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(1); @@ -88,8 +88,8 @@ class BasicSerialization : public ::testing::Test uint8_t input = 0x09; uint8_t output = 0; - EXPECT_TRUE(serialize_uint8_t(&writer, input)); - EXPECT_TRUE(deserialize_uint8_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_uint8_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_uint8_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(1); @@ -100,8 +100,8 @@ class BasicSerialization : public ::testing::Test int16_t input = 0x0A0B; int16_t output = 0; - EXPECT_TRUE(serialize_int16_t(&writer, input)); - EXPECT_TRUE(deserialize_int16_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_int16_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_int16_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(2); @@ -112,8 +112,8 @@ class BasicSerialization : public ::testing::Test uint16_t input = 0x0A0B; uint16_t output = 0; - EXPECT_TRUE(serialize_uint16_t(&writer, input)); - EXPECT_TRUE(deserialize_uint16_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_uint16_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_uint16_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(2); @@ -124,8 +124,8 @@ class BasicSerialization : public ::testing::Test int32_t input = 0x0C0D0E0F; int32_t output = 0; - EXPECT_TRUE(serialize_int32_t(&writer, input)); - EXPECT_TRUE(deserialize_int32_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_int32_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_int32_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(4); @@ -136,8 +136,8 @@ class BasicSerialization : public ::testing::Test uint32_t input = 0x0C0D0E0F; uint32_t output = 0; - EXPECT_TRUE(serialize_uint32_t(&writer, input)); - EXPECT_TRUE(deserialize_uint32_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_uint32_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_uint32_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(4); @@ -148,8 +148,8 @@ class BasicSerialization : public ::testing::Test int64_t input = 0x0102030405060708L; int64_t output = 0; - EXPECT_TRUE(serialize_int64_t(&writer, input)); - EXPECT_TRUE(deserialize_int64_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_int64_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_int64_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(8); @@ -160,8 +160,8 @@ class BasicSerialization : public ::testing::Test uint64_t input = 0x0102030405060708L; uint64_t output = 0; - EXPECT_TRUE(serialize_uint64_t(&writer, input)); - EXPECT_TRUE(deserialize_uint64_t(&reader, &output)); + EXPECT_TRUE(mc_serialize_uint64_t(&writer, input)); + EXPECT_TRUE(mc_deserialize_uint64_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(8); @@ -172,8 +172,8 @@ class BasicSerialization : public ::testing::Test float input = 3.141592653589793238462f; float output = 0; - EXPECT_TRUE(serialize_float(&writer, input)); - EXPECT_TRUE(deserialize_float(&reader, &output)); + EXPECT_TRUE(mc_serialize_float(&writer, input)); + EXPECT_TRUE(mc_deserialize_float(&reader, &output)); EXPECT_EQ(input, output); check_data_size(4); @@ -184,16 +184,16 @@ class BasicSerialization : public ::testing::Test double input = 3.141592653589793238462; double output = 0; - EXPECT_TRUE(serialize_double(&writer, input)); - EXPECT_TRUE(deserialize_double(&reader, &output)); + EXPECT_TRUE(mc_serialize_double(&writer, input)); + EXPECT_TRUE(mc_deserialize_double(&reader, &output)); EXPECT_EQ(input, output); check_data_size(8); } protected: - MicroBuffer writer; - MicroBuffer reader; + mcBuffer writer; + mcBuffer reader; uint8_t buffer[BUFFER_LENGTH]; }; diff --git a/test/serialization/SequenceSerialization.hpp b/test/serialization/SequenceSerialization.hpp index 28ce435..db5440b 100644 --- a/test/serialization/SequenceSerialization.hpp +++ b/test/serialization/SequenceSerialization.hpp @@ -44,8 +44,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, true); bool output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_bool(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_bool(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_bool(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_bool(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -56,8 +56,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 'A'); char output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_char(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_char(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_char(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_char(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -65,11 +65,11 @@ class SequenceSerialization : public ArraySerialization void int8_t_sequence_serialization() { int8_t input[ARRAY_CAPACITY]; - std::fill_n(input, sequence_size, 0x09); + std::fill_n(input, sequence_size, int8_t(0x09)); int8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_int8_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_int8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_int8_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_int8_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -77,11 +77,11 @@ class SequenceSerialization : public ArraySerialization void uint8_t_sequence_serialization() { uint8_t input[ARRAY_CAPACITY]; - std::fill_n(input, sequence_size, 0x09); + std::fill_n(input, sequence_size, uint8_t(0x09)); uint8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint8_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint8_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -89,11 +89,11 @@ class SequenceSerialization : public ArraySerialization void int16_t_sequence_serialization() { int16_t input[ARRAY_CAPACITY]; - std::fill_n(input, sequence_size, 0x0A0B); + std::fill_n(input, sequence_size, int16_t(0x0A0B)); int16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_int16_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_int16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_int16_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_int16_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -101,11 +101,11 @@ class SequenceSerialization : public ArraySerialization void uint16_t_sequence_serialization() { uint16_t input[ARRAY_CAPACITY]; - std::fill_n(input, sequence_size, 0x0A0B); + std::fill_n(input, sequence_size, uint16_t(0x0A0B)); uint16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint16_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint16_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -116,8 +116,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0A0B0C0D); int32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_int32_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_int32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_int32_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_int32_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -128,8 +128,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0A0B0C0D); uint32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint32_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint32_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -140,8 +140,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0102030405060708L); int64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_int64_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_int64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_int64_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_int64_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -152,8 +152,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0102030405060708L); uint64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_uint64_t(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_uint64_t(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -164,8 +164,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 3.141592653589793238462f); float output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_float(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_float(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_float(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_float(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -176,8 +176,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 3.141592653589793238462); double output[ARRAY_CAPACITY]; - EXPECT_TRUE(serialize_sequence_double(&writer, input, sequence_size)); - EXPECT_TRUE(deserialize_sequence_double(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(mc_serialize_sequence_double(&writer, input, sequence_size)); + EXPECT_TRUE(mc_deserialize_sequence_double(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } diff --git a/test/serialization/StringSerialization.hpp b/test/serialization/StringSerialization.hpp index 884d8e4..84dd51f 100644 --- a/test/serialization/StringSerialization.hpp +++ b/test/serialization/StringSerialization.hpp @@ -35,8 +35,8 @@ class StringSerialization : public BasicSerialization char input[MAX_STRING_LENGTH] = "This is a message test"; char output[MAX_STRING_LENGTH] = {0}; - EXPECT_TRUE(serialize_string(&writer, input)); - EXPECT_TRUE(deserialize_string(&reader, output, MAX_STRING_LENGTH)); + EXPECT_TRUE(mc_serialize_string(&writer, input)); + EXPECT_TRUE(mc_deserialize_string(&reader, output, MAX_STRING_LENGTH)); EXPECT_STREQ(input, output); } From 44c0feb5f88d52a37b5c2434d84a99a4eece7c2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Enrique=20Mu=C3=B1oz=20Mart=C3=ADn?= Date: Wed, 3 Oct 2018 15:23:35 +0200 Subject: [PATCH 5/9] Feature/prefix change (#13) * Refs #3451. mc_ prefix to ucdr_ prefix * Refs #3451. Modified dll export name * Refs #3458. Updated internal symbols with prefix. --- README.md | 94 +++---- examples/basic.c | 12 +- include/microcdr/common.h | 50 ++-- include/microcdr/config.h.in | 2 +- include/microcdr/dll.h | 8 +- include/microcdr/types/array.h | 80 +++--- include/microcdr/types/basic.h | 80 +++--- include/microcdr/types/sequence.h | 96 ++++---- include/microcdr/types/string.h | 8 +- src/c/common.c | 44 ++-- src/c/common_internals.h | 2 +- src/c/types/array.c | 228 ++++++++--------- src/c/types/array_internals.h | 18 +- src/c/types/basic.c | 216 ++++++++-------- src/c/types/basic_internals.h | 16 +- src/c/types/sequence.c | 244 +++++++++---------- src/c/types/sequence_internals.h | 18 +- src/c/types/string.c | 16 +- test/Alignment.cpp | 4 +- test/FullBuffer.cpp | 16 +- test/SequenceOverflow.cpp | 18 +- test/endianness/ArrayEndianness.cpp | 38 +-- test/endianness/BasicEndianness.cpp | 38 +-- test/endianness/SequenceEndianness.cpp | 54 ++-- test/serialization/ArraySerialization.hpp | 48 ++-- test/serialization/BasicSerialization.hpp | 56 ++--- test/serialization/SequenceSerialization.hpp | 48 ++-- test/serialization/StringSerialization.hpp | 4 +- 28 files changed, 778 insertions(+), 778 deletions(-) diff --git a/README.md b/README.md index 84cee86..3e5f8fd 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This library is focused on embedded and resource-limited systems. ## Usage examples This is a code example showing the serialization and deserialization of a string. -As *MicroCDR* uses a static buffer, that means the user has to provide a defined buffer and its size during the *mcBuffer* creation. +As *MicroCDR* uses a static buffer, that means the user has to provide a defined buffer and its size during the *ucdrBuffer* creation. ```c #include @@ -23,20 +23,20 @@ As *MicroCDR* uses a static buffer, that means the user has to provide a defined uint8_t buffer[BUFFER_LENGTH]; // Structs for handle the buffer. - mcBuffer writer; - mcBuffer reader; + ucdrBuffer writer; + ucdrBuffer reader; // Initialize the MicroBuffers for working with an user-managed buffer. - mc_init_buffer(&writer, buffer, BUFFER_LENGTH); - mc_init_buffer(&reader, buffer, BUFFER_LENGTH); + ucdr_init_buffer(&writer, buffer, BUFFER_LENGTH); + ucdr_init_buffer(&reader, buffer, BUFFER_LENGTH); // Serialize data char input[16] = "Hello MicroCDR!"; //16 characters - mc_serialize_array_char(&writer, input, 16); + ucdr_serialize_array_char(&writer, input, 16); // Deserialize data char output[16]; - mc_deserialize_array_char(&reader, output, 16); + ucdr_deserialize_array_char(&reader, output, 16); printf("Input: %s\n", input); printf("Output: %s\n", output); @@ -48,105 +48,105 @@ As *MicroCDR* uses a static buffer, that means the user has to provide a defined ## API functions ```c -void mc_init_buffer (mcBuffer* mb, uint8_t* data, const uint32_t size); -void mc_init_buffer_offset (mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +void ucdr_init_buffer (ucdrBuffer* mb, uint8_t* data, const uint32_t size); +void ucdr_init_buffer_offset (ucdrBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); ``` -Initialize a `mcBuffer` structure, the main struct of *MicroCDR*. -- `mb`: the `mcBuffer` struct -- `data`: the buffer that the `mcBuffer` will use. -- `size`: the size of the buffer that the `mcBuffer` will use. +Initialize a `ucdrBuffer` structure, the main struct of *MicroCDR*. +- `mb`: the `ucdrBuffer` struct +- `data`: the buffer that the `ucdrBuffer` will use. +- `size`: the size of the buffer that the `ucdrBuffer` will use. - `offset`: where the serialization/deserialization will start. Initially, the serialization/deserialization starts at the beginning of the buffer. --- ```c -void mc_copy_buffer (mcBuffer* mb_dest, const mcBuffer* mb_source); +void ucdr_copy_buffer (ucdrBuffer* mb_dest, const ucdrBuffer* mb_source); ``` -Copy a `mcBuffer` structure data to another `mcBuffer` structure. -- `mb_dest`: the destination `mcBuffer` struct. -- `mb_source`: the origin initialized `mcBuffer` struct. +Copy a `ucdrBuffer` structure data to another `ucdrBuffer` structure. +- `mb_dest`: the destination `ucdrBuffer` struct. +- `mb_source`: the origin initialized `ucdrBuffer` struct. --- ```c -void mc_reset_buffer (mcBuffer* mb); -void mc_reset_buffer_offset(mcBuffer* mb, const uint32_t offset); +void ucdr_reset_buffer (ucdrBuffer* mb); +void ucdr_reset_buffer_offset(ucdrBuffer* mb, const uint32_t offset); ``` -Reset the `mcBuffer` as the same state that it was created. -- `mb`: the `mcBuffer` struct. +Reset the `ucdrBuffer` as the same state that it was created. +- `mb`: the `ucdrBuffer` struct. - `offset`: where the serialization/deserialization will start. Initially, the serialization/deserialization starts at the beginning of the buffer. --- ```c -void mc_align_to (mcBuffer* mb, const uint32_t alignment); +void ucdr_align_to (ucdrBuffer* mb, const uint32_t alignment); ``` -Align the mcBuffer to an `alignment` position. -After call this function, the serialization pointer will be moved only if the current `mcBuffer` was not aligment to the passed value. +Align the ucdrBuffer to an `alignment` position. +After call this function, the serialization pointer will be moved only if the current `ucdrBuffer` was not aligment to the passed value. -- `mb`: the `mcBuffer` struct +- `mb`: the `ucdrBuffer` struct - `alignment`: the alignment value used. --- ```c -uint32_t mc_aligment(uint32_t buffer_position, const uint32_t data_size); +uint32_t ucdr_aligment(uint32_t buffer_position, const uint32_t data_size); ``` Returns the aligment necessary to serialize/deserialize a type with `data_size` size. -- `buffer_position`: the current serialization/deserialization position of the `mcBuffer`. (Typically `mb->iterator - mb->init`). +- `buffer_position`: the current serialization/deserialization position of the `ucdrBuffer`. (Typically `mb->iterator - mb->init`). - `data_size`: the bytes of the data that you are asking for. --- ```c -uint32_t mc_buffer_alignment(const mcBuffer* mb, const uint32_t data_size); +uint32_t ucdr_buffer_alignment(const ucdrBuffer* mb, const uint32_t data_size); ``` -Returns the aligment necessary to serialize/deserialize a type with `data_size` size into the `mcBuffer` given. +Returns the aligment necessary to serialize/deserialize a type with `data_size` size into the `ucdrBuffer` given. -- `mb`: the `mcBuffer` struct to ask the alignment. +- `mb`: the `ucdrBuffer` struct to ask the alignment. - `data_size`: the bytes of the data that you are asking for. --- ```c -size_t mc_buffer_size(const mcBuffer* mb); +size_t ucdr_buffer_size(const ucdrBuffer* mb); ``` Returns the memory size of the buffer. -- `mb`: the `mcBuffer` struct +- `mb`: the `ucdrBuffer` struct --- ```c -size_t mc_buffer_length(const mcBuffer* mb); +size_t ucdr_buffer_length(const ucdrBuffer* mb); ``` Returns the size of the serialized/deserialized data. -- `mb`: the `mcBuffer` struct +- `mb`: the `ucdrBuffer` struct --- ```c -size_t mc_buffer_remaining(const mcBuffer* mb); +size_t ucdr_buffer_remaining(const ucdrBuffer* mb); ``` Returns the remaining size for the serializing/deserializing. -- `mb`: the `mcBuffer` struct +- `mb`: the `ucdrBuffer` struct --- ```c -mcEndianness mc_buffer_endianness(const mcBuffer* mb); +ucdrEndianness ucdr_buffer_endianness(const ucdrBuffer* mb); ``` Returns the serialization/deserialization endianness. -- `mb`: the `mcBuffer` struct +- `mb`: the `ucdrBuffer` struct --- ```c -bool mc_buffer_error(const mcBuffer* mb); +bool ucdr_buffer_error(const ucdrBuffer* mb); ``` -Returns the status error of the `mcBuffer`. -- `mb`: the `mcBuffer` struct +Returns the status error of the `ucdrBuffer`. +- `mb`: the `ucdrBuffer` struct ### Serialization/deserialization functions @@ -160,20 +160,20 @@ Adding to this, there is a big set of functions for deserialize and deserialize The configuration can be done by cmake with the cmake `__BIG_ENDIAN__` variable. A `0` value implies that the serialization will performed into a little endian machine, and `1` into a big endian machine. -The default endianness serialization can be choosen by setting the `endianness` parameter of a `mcBuffer` to `MC_BIG_ENDIANNESS` or `MC_LITTLE_ENDIANNESS`. +The default endianness serialization can be choosen by setting the `endianness` parameter of a `ucdrBuffer` to `UCDR_BIG_ENDIANNESS` or `UCDR_LITTLE_ENDIANNESS`. Also, there are a functions that allow to force an endianness in their serialization/deserialization. These functions contains the name `endiannness` in their signature. ### Error All serialization/deserialization functions return a boolean indicating the result of their operations. When a serialization/deserialization could not be possible (the type can not be serialized, or the capacity of the destination buffer is not enough), -an status error is setted into the `mcBuffer`. -If a `mcBuffer` has an error state, the next serialization/deserialization operations will not works and will return `false` in their execution. +an status error is setted into the `ucdrBuffer`. +If a `ucdrBuffer` has an error state, the next serialization/deserialization operations will not works and will return `false` in their execution. A buffer marked with an error can be used, but any serialization/deserialization operation over it will not produce any effect. -If is kwown that an operation can fails over a `mcBuffer`, and its necessary to continue with the serialization/deserialization if it happens, -the `mcBuffer` state can be saved using the `mc_copy_buffer` function. -After the application of the wrong serialization/deserialization, only the `mcBuffer` that performed the operation will have a dirty state. +If is kwown that an operation can fails over a `ucdrBuffer`, and its necessary to continue with the serialization/deserialization if it happens, +the `ucdrBuffer` state can be saved using the `ucdr_copy_buffer` function. +After the application of the wrong serialization/deserialization, only the `ucdrBuffer` that performed the operation will have a dirty state. ## Serialization/deserialization list The available modes of serialization/deserializations in *MicroCDR* are shown in the following table. diff --git a/examples/basic.c b/examples/basic.c index 94d0aa6..54ad498 100644 --- a/examples/basic.c +++ b/examples/basic.c @@ -23,20 +23,20 @@ int main() uint8_t buffer[BUFFER_LENGTH]; // Structs for handle the buffer. - mcBuffer writer; - mcBuffer reader; + ucdrBuffer writer; + ucdrBuffer reader; // Initialize the MicroBuffers for working with an user-managed buffer. - mc_init_buffer(&writer, buffer, BUFFER_LENGTH); - mc_init_buffer(&reader, buffer, BUFFER_LENGTH); + ucdr_init_buffer(&writer, buffer, BUFFER_LENGTH); + ucdr_init_buffer(&reader, buffer, BUFFER_LENGTH); // Serialize data char input[16] = "Hello MicroCDR!"; //16 characters - mc_serialize_array_char(&writer, input, 16); + ucdr_serialize_array_char(&writer, input, 16); // Deserialize data char output[16]; - mc_deserialize_array_char(&reader, output, 16); + ucdr_deserialize_array_char(&reader, output, 16); printf("Input: %s\n", input); printf("Output: %s\n", output); diff --git a/include/microcdr/common.h b/include/microcdr/common.h index 63ae0fc..801a2bb 100644 --- a/include/microcdr/common.h +++ b/include/microcdr/common.h @@ -26,47 +26,47 @@ extern "C" { #include #include -typedef enum mcEndianness { - MC_BIG_ENDIANNESS, - MC_LITTLE_ENDIANNESS +typedef enum ucdrEndianness { + UCDR_BIG_ENDIANNESS, + UCDR_LITTLE_ENDIANNESS -} mcEndianness; +} ucdrEndianness; -typedef struct mcBuffer +typedef struct ucdrBuffer { uint8_t *init; uint8_t *final; uint8_t *iterator; - mcEndianness endianness; + ucdrEndianness endianness; uint32_t last_data_size; bool error; -} mcBuffer; +} ucdrBuffer; -MCDLLAPI extern const mcEndianness MC_MACHINE_ENDIANNESS; +UCDRDLLAPI extern const ucdrEndianness UCDR_MACHINE_ENDIANNESS; // ------------------------------------------------ // Main library functions // ------------------------------------------------ -MCDLLAPI void mc_init_buffer (mcBuffer* mb, uint8_t* data, const uint32_t size); -MCDLLAPI void mc_init_buffer_offset (mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); -MCDLLAPI void mc_init_buffer_offset_endian (mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, mcEndianness endianness); -MCDLLAPI void mc_copy_buffer (mcBuffer* mb_dest, const mcBuffer* mb_source); - -MCDLLAPI void mc_reset_buffer (mcBuffer* mb); -MCDLLAPI void mc_reset_buffer_offset (mcBuffer* mb, const uint32_t offset); - -MCDLLAPI void mc_align_to (mcBuffer* mb, const uint32_t alignment); -MCDLLAPI uint32_t mc_alignment (uint32_t buffer_position, const uint32_t data_size); -MCDLLAPI uint32_t mc_buffer_alignment(const mcBuffer* mb, const uint32_t data_size); - -MCDLLAPI size_t mc_buffer_size (const mcBuffer* mb); -MCDLLAPI size_t mc_buffer_length (const mcBuffer* mb); -MCDLLAPI size_t mc_buffer_remaining (const mcBuffer* mb); -MCDLLAPI mcEndianness mc_buffer_endianness(const mcBuffer* mb); -MCDLLAPI bool mc_buffer_has_error (const mcBuffer* mb); +UCDRDLLAPI void ucdr_init_buffer (ucdrBuffer* mb, uint8_t* data, const uint32_t size); +UCDRDLLAPI void ucdr_init_buffer_offset (ucdrBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset); +UCDRDLLAPI void ucdr_init_buffer_offset_endian (ucdrBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, ucdrEndianness endianness); +UCDRDLLAPI void ucdr_copy_buffer (ucdrBuffer* mb_dest, const ucdrBuffer* mb_source); + +UCDRDLLAPI void ucdr_reset_buffer (ucdrBuffer* mb); +UCDRDLLAPI void ucdr_reset_buffer_offset (ucdrBuffer* mb, const uint32_t offset); + +UCDRDLLAPI void ucdr_align_to (ucdrBuffer* mb, const uint32_t alignment); +UCDRDLLAPI uint32_t ucdr_alignment (uint32_t buffer_position, const uint32_t data_size); +UCDRDLLAPI uint32_t ucdr_buffer_alignment(const ucdrBuffer* mb, const uint32_t data_size); + +UCDRDLLAPI size_t ucdr_buffer_size (const ucdrBuffer* mb); +UCDRDLLAPI size_t ucdr_buffer_length (const ucdrBuffer* mb); +UCDRDLLAPI size_t ucdr_buffer_remaining (const ucdrBuffer* mb); +UCDRDLLAPI ucdrEndianness ucdr_buffer_endianness(const ucdrBuffer* mb); +UCDRDLLAPI bool ucdr_buffer_has_error (const ucdrBuffer* mb); #ifdef __cplusplus } diff --git a/include/microcdr/config.h.in b/include/microcdr/config.h.in index b5f3de0..5792a55 100644 --- a/include/microcdr/config.h.in +++ b/include/microcdr/config.h.in @@ -21,7 +21,7 @@ #define MICROCDR_VERSION_MICRO @PROJECT_VERSION_PATCH@ #define MICROCDR_VERSION_STR "@PROJECT_VERSION@" -// mcEndianness defines +// ucdrEndianness defines #ifndef __BIG_ENDIAN__ #define __BIG_ENDIAN__ @__BIG_ENDIAN__@ #endif diff --git a/include/microcdr/dll.h b/include/microcdr/dll.h index 83a1b95..ddcab17 100644 --- a/include/microcdr/dll.h +++ b/include/microcdr/dll.h @@ -19,15 +19,15 @@ #if defined(_WIN32) #if defined(microcdr_SHARED) #if defined(microcdr_EXPORTS) -#define MCDLLAPI __declspec( dllexport ) +#define UCDRDLLAPI __declspec( dllexport ) #else -#define MCDLLAPI __declspec( dllimport ) +#define UCDRDLLAPI __declspec( dllimport ) #endif // microcdr_EXPORTS #else -#define MCDLLAPI +#define UCDRDLLAPI #endif // BUILDING_SHARED_LIBS #else -#define MCDLLAPI +#define UCDRDLLAPI #endif // _WIN32 #endif // _MICROCDR_DLL_H_ diff --git a/include/microcdr/types/array.h b/include/microcdr/types/array.h index 6fee269..b904944 100644 --- a/include/microcdr/types/array.h +++ b/include/microcdr/types/array.h @@ -25,49 +25,49 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool mc_serialize_array_char(mcBuffer* mb, const char* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_bool(mcBuffer* mb, const bool* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_float(mcBuffer* mb, const float* array, const uint32_t size); -MCDLLAPI bool mc_serialize_array_double(mcBuffer* mb, const double* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_char(ucdrBuffer* mb, const char* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_bool(ucdrBuffer* mb, const bool* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_uint8_t(ucdrBuffer* mb, const uint8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_uint16_t(ucdrBuffer* mb, const uint16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_uint32_t(ucdrBuffer* mb, const uint32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_uint64_t(ucdrBuffer* mb, const uint64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_int8_t(ucdrBuffer* mb, const int8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_int16_t(ucdrBuffer* mb, const int16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_int32_t(ucdrBuffer* mb, const int32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_int64_t(ucdrBuffer* mb, const int64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_float(ucdrBuffer* mb, const float* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_array_double(ucdrBuffer* mb, const double* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_char(mcBuffer* mb, char* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_bool(mcBuffer* mb, bool* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_int8_t(mcBuffer* mb, int8_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_int16_t(mcBuffer* mb, int16_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_int32_t(mcBuffer* mb, int32_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_int64_t(mcBuffer* mb, int64_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_float(mcBuffer* mb, float* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_array_double(mcBuffer* mb, double* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_char(ucdrBuffer* mb, char* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_bool(ucdrBuffer* mb, bool* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_uint8_t(ucdrBuffer* mb, uint8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_uint16_t(ucdrBuffer* mb, uint16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_uint32_t(ucdrBuffer* mb, uint32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_uint64_t(ucdrBuffer* mb, uint64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_int8_t(ucdrBuffer* mb, int8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_int16_t(ucdrBuffer* mb, int16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_int32_t(ucdrBuffer* mb, int32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_int64_t(ucdrBuffer* mb, int64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_float(ucdrBuffer* mb, float* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_array_double(ucdrBuffer* mb, double* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_uint16_t(mcBuffer* mb, mcEndianness endianness, const uint16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_uint32_t(mcBuffer* mb, mcEndianness endianness, const uint32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_uint64_t(mcBuffer* mb, mcEndianness endianness, const uint64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_int16_t(mcBuffer* mb, mcEndianness endianness, const int16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_int32_t(mcBuffer* mb, mcEndianness endianness, const int32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_int64_t(mcBuffer* mb, mcEndianness endianness, const int64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_float(mcBuffer* mb, mcEndianness endianness, const float* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_array_double(mcBuffer* mb, mcEndianness endianness, const double* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_uint16_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_uint32_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_uint64_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_int16_t(ucdrBuffer* mb, ucdrEndianness endianness, const int16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_int32_t(ucdrBuffer* mb, ucdrEndianness endianness, const int32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_int64_t(ucdrBuffer* mb, ucdrEndianness endianness, const int64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_float(ucdrBuffer* mb, ucdrEndianness endianness, const float* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_array_double(ucdrBuffer* mb, ucdrEndianness endianness, const double* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_uint16_t(mcBuffer* mb, mcEndianness endianness, uint16_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_uint32_t(mcBuffer* mb, mcEndianness endianness, uint32_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_uint64_t(mcBuffer* mb, mcEndianness endianness, uint64_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_int16_t(mcBuffer* mb, mcEndianness endianness, int16_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_int32_t(mcBuffer* mb, mcEndianness endianness, int32_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_int64_t(mcBuffer* mb, mcEndianness endianness, int64_t* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_float(mcBuffer* mb, mcEndianness endianness, float* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_array_double(mcBuffer* mb, mcEndianness endianness, double* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_uint16_t(ucdrBuffer* mb, ucdrEndianness endianness, uint16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_uint32_t(ucdrBuffer* mb, ucdrEndianness endianness, uint32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_uint64_t(ucdrBuffer* mb, ucdrEndianness endianness, uint64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_int16_t(ucdrBuffer* mb, ucdrEndianness endianness, int16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_int32_t(ucdrBuffer* mb, ucdrEndianness endianness, int32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_int64_t(ucdrBuffer* mb, ucdrEndianness endianness, int64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_float(ucdrBuffer* mb, ucdrEndianness endianness, float* array, const uint32_t size); +UCDRDLLAPI bool ucdr_deserialize_endian_array_double(ucdrBuffer* mb, ucdrEndianness endianness, double* array, const uint32_t size); #ifdef __cplusplus } diff --git a/include/microcdr/types/basic.h b/include/microcdr/types/basic.h index 1422e50..31ab1f7 100644 --- a/include/microcdr/types/basic.h +++ b/include/microcdr/types/basic.h @@ -25,49 +25,49 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool mc_serialize_char(mcBuffer* mb, const char value); -MCDLLAPI bool mc_serialize_bool(mcBuffer* mb, const bool value); -MCDLLAPI bool mc_serialize_uint8_t(mcBuffer* mb, const uint8_t value); -MCDLLAPI bool mc_serialize_uint16_t(mcBuffer* mb, const uint16_t value); -MCDLLAPI bool mc_serialize_uint32_t(mcBuffer* mb, const uint32_t value); -MCDLLAPI bool mc_serialize_uint64_t(mcBuffer* mb, const uint64_t value); -MCDLLAPI bool mc_serialize_int8_t(mcBuffer* mb, const int8_t value); -MCDLLAPI bool mc_serialize_int16_t(mcBuffer* mb, const int16_t value); -MCDLLAPI bool mc_serialize_int32_t(mcBuffer* mb, const int32_t value); -MCDLLAPI bool mc_serialize_int64_t(mcBuffer* mb, const int64_t value); -MCDLLAPI bool mc_serialize_float(mcBuffer* mb, const float value); -MCDLLAPI bool mc_serialize_double(mcBuffer* mb, const double value); +UCDRDLLAPI bool ucdr_serialize_char(ucdrBuffer* mb, const char value); +UCDRDLLAPI bool ucdr_serialize_bool(ucdrBuffer* mb, const bool value); +UCDRDLLAPI bool ucdr_serialize_uint8_t(ucdrBuffer* mb, const uint8_t value); +UCDRDLLAPI bool ucdr_serialize_uint16_t(ucdrBuffer* mb, const uint16_t value); +UCDRDLLAPI bool ucdr_serialize_uint32_t(ucdrBuffer* mb, const uint32_t value); +UCDRDLLAPI bool ucdr_serialize_uint64_t(ucdrBuffer* mb, const uint64_t value); +UCDRDLLAPI bool ucdr_serialize_int8_t(ucdrBuffer* mb, const int8_t value); +UCDRDLLAPI bool ucdr_serialize_int16_t(ucdrBuffer* mb, const int16_t value); +UCDRDLLAPI bool ucdr_serialize_int32_t(ucdrBuffer* mb, const int32_t value); +UCDRDLLAPI bool ucdr_serialize_int64_t(ucdrBuffer* mb, const int64_t value); +UCDRDLLAPI bool ucdr_serialize_float(ucdrBuffer* mb, const float value); +UCDRDLLAPI bool ucdr_serialize_double(ucdrBuffer* mb, const double value); -MCDLLAPI bool mc_deserialize_char(mcBuffer* mb, char* value); -MCDLLAPI bool mc_deserialize_bool(mcBuffer* mb, bool* value); -MCDLLAPI bool mc_deserialize_uint8_t(mcBuffer* mb, uint8_t* value); -MCDLLAPI bool mc_deserialize_uint16_t(mcBuffer* mb, uint16_t* value); -MCDLLAPI bool mc_deserialize_uint32_t(mcBuffer* mb, uint32_t* value); -MCDLLAPI bool mc_deserialize_uint64_t(mcBuffer* mb, uint64_t* value); -MCDLLAPI bool mc_deserialize_int8_t(mcBuffer* mb, int8_t* value); -MCDLLAPI bool mc_deserialize_int16_t(mcBuffer* mb, int16_t* value); -MCDLLAPI bool mc_deserialize_int32_t(mcBuffer* mb, int32_t* value); -MCDLLAPI bool mc_deserialize_int64_t(mcBuffer* mb, int64_t* value); -MCDLLAPI bool mc_deserialize_float(mcBuffer* mb, float* value); -MCDLLAPI bool mc_deserialize_double(mcBuffer* mb, double* value); +UCDRDLLAPI bool ucdr_deserialize_char(ucdrBuffer* mb, char* value); +UCDRDLLAPI bool ucdr_deserialize_bool(ucdrBuffer* mb, bool* value); +UCDRDLLAPI bool ucdr_deserialize_uint8_t(ucdrBuffer* mb, uint8_t* value); +UCDRDLLAPI bool ucdr_deserialize_uint16_t(ucdrBuffer* mb, uint16_t* value); +UCDRDLLAPI bool ucdr_deserialize_uint32_t(ucdrBuffer* mb, uint32_t* value); +UCDRDLLAPI bool ucdr_deserialize_uint64_t(ucdrBuffer* mb, uint64_t* value); +UCDRDLLAPI bool ucdr_deserialize_int8_t(ucdrBuffer* mb, int8_t* value); +UCDRDLLAPI bool ucdr_deserialize_int16_t(ucdrBuffer* mb, int16_t* value); +UCDRDLLAPI bool ucdr_deserialize_int32_t(ucdrBuffer* mb, int32_t* value); +UCDRDLLAPI bool ucdr_deserialize_int64_t(ucdrBuffer* mb, int64_t* value); +UCDRDLLAPI bool ucdr_deserialize_float(ucdrBuffer* mb, float* value); +UCDRDLLAPI bool ucdr_deserialize_double(ucdrBuffer* mb, double* value); -MCDLLAPI bool mc_serialize_endian_uint16_t(mcBuffer* mb, mcEndianness endianness, const uint16_t value); -MCDLLAPI bool mc_serialize_endian_uint32_t(mcBuffer* mb, mcEndianness endianness, const uint32_t value); -MCDLLAPI bool mc_serialize_endian_uint64_t(mcBuffer* mb, mcEndianness endianness, const uint64_t value); -MCDLLAPI bool mc_serialize_endian_int16_t(mcBuffer* mb, mcEndianness endianness, const int16_t value); -MCDLLAPI bool mc_serialize_endian_int32_t(mcBuffer* mb, mcEndianness endianness, const int32_t value); -MCDLLAPI bool mc_serialize_endian_int64_t(mcBuffer* mb, mcEndianness endianness, const int64_t value); -MCDLLAPI bool mc_serialize_endian_float(mcBuffer* mb, mcEndianness endianness, const float value); -MCDLLAPI bool mc_serialize_endian_double(mcBuffer* mb, mcEndianness endianness, const double value); +UCDRDLLAPI bool ucdr_serialize_endian_uint16_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint16_t value); +UCDRDLLAPI bool ucdr_serialize_endian_uint32_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint32_t value); +UCDRDLLAPI bool ucdr_serialize_endian_uint64_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint64_t value); +UCDRDLLAPI bool ucdr_serialize_endian_int16_t(ucdrBuffer* mb, ucdrEndianness endianness, const int16_t value); +UCDRDLLAPI bool ucdr_serialize_endian_int32_t(ucdrBuffer* mb, ucdrEndianness endianness, const int32_t value); +UCDRDLLAPI bool ucdr_serialize_endian_int64_t(ucdrBuffer* mb, ucdrEndianness endianness, const int64_t value); +UCDRDLLAPI bool ucdr_serialize_endian_float(ucdrBuffer* mb, ucdrEndianness endianness, const float value); +UCDRDLLAPI bool ucdr_serialize_endian_double(ucdrBuffer* mb, ucdrEndianness endianness, const double value); -MCDLLAPI bool mc_deserialize_endian_uint16_t(mcBuffer* mb, mcEndianness endianness, uint16_t* value); -MCDLLAPI bool mc_deserialize_endian_uint32_t(mcBuffer* mb, mcEndianness endianness, uint32_t *value); -MCDLLAPI bool mc_deserialize_endian_uint64_t(mcBuffer* mb, mcEndianness endianness, uint64_t* value); -MCDLLAPI bool mc_deserialize_endian_int16_t(mcBuffer* mb, mcEndianness endianness, int16_t* value); -MCDLLAPI bool mc_deserialize_endian_int32_t(mcBuffer* mb, mcEndianness endianness, int32_t* value); -MCDLLAPI bool mc_deserialize_endian_int64_t(mcBuffer* mb, mcEndianness endianness, int64_t* value); -MCDLLAPI bool mc_deserialize_endian_float(mcBuffer* mb, mcEndianness endianness, float* value); -MCDLLAPI bool mc_deserialize_endian_double(mcBuffer* mb, mcEndianness endianness, double* value); +UCDRDLLAPI bool ucdr_deserialize_endian_uint16_t(ucdrBuffer* mb, ucdrEndianness endianness, uint16_t* value); +UCDRDLLAPI bool ucdr_deserialize_endian_uint32_t(ucdrBuffer* mb, ucdrEndianness endianness, uint32_t *value); +UCDRDLLAPI bool ucdr_deserialize_endian_uint64_t(ucdrBuffer* mb, ucdrEndianness endianness, uint64_t* value); +UCDRDLLAPI bool ucdr_deserialize_endian_int16_t(ucdrBuffer* mb, ucdrEndianness endianness, int16_t* value); +UCDRDLLAPI bool ucdr_deserialize_endian_int32_t(ucdrBuffer* mb, ucdrEndianness endianness, int32_t* value); +UCDRDLLAPI bool ucdr_deserialize_endian_int64_t(ucdrBuffer* mb, ucdrEndianness endianness, int64_t* value); +UCDRDLLAPI bool ucdr_deserialize_endian_float(ucdrBuffer* mb, ucdrEndianness endianness, float* value); +UCDRDLLAPI bool ucdr_deserialize_endian_double(ucdrBuffer* mb, ucdrEndianness endianness, double* value); #ifdef __cplusplus } diff --git a/include/microcdr/types/sequence.h b/include/microcdr/types/sequence.h index f8bfc04..5318455 100644 --- a/include/microcdr/types/sequence.h +++ b/include/microcdr/types/sequence.h @@ -25,57 +25,57 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool mc_serialize_sequence_char(mcBuffer* mb, const char* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_bool(mcBuffer* mb, const bool* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_float(mcBuffer* mb, const float* array, const uint32_t size); -MCDLLAPI bool mc_serialize_sequence_double(mcBuffer* mb, const double* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_char(ucdrBuffer* mb, const char* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_bool(ucdrBuffer* mb, const bool* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_uint8_t(ucdrBuffer* mb, const uint8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_uint16_t(ucdrBuffer* mb, const uint16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_uint32_t(ucdrBuffer* mb, const uint32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_uint64_t(ucdrBuffer* mb, const uint64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_int8_t(ucdrBuffer* mb, const int8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_int16_t(ucdrBuffer* mb, const int16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_int32_t(ucdrBuffer* mb, const int32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_int64_t(ucdrBuffer* mb, const int64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_float(ucdrBuffer* mb, const float* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_sequence_double(ucdrBuffer* mb, const double* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_sequence_char(mcBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_bool(mcBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_int8_t(mcBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_int16_t(mcBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_int32_t(mcBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_int64_t(mcBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_float(mcBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_sequence_double(mcBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_char(ucdrBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_bool(ucdrBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_uint8_t(ucdrBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_uint16_t(ucdrBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_uint32_t(ucdrBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_uint64_t(ucdrBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_int8_t(ucdrBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_int16_t(ucdrBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_int32_t(ucdrBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_int64_t(ucdrBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_float(ucdrBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_sequence_double(ucdrBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_serialize_endian_sequence_char(mcBuffer* mb, mcEndianness endianness, const char* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_bool(mcBuffer* mb, mcEndianness endianness, const bool* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_uint8_t(mcBuffer* mb, mcEndianness endianness, const uint8_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_uint16_t(mcBuffer* mb, mcEndianness endianness, const uint16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_uint32_t(mcBuffer* mb, mcEndianness endianness, const uint32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_uint64_t(mcBuffer* mb, mcEndianness endianness, const uint64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_int8_t(mcBuffer* mb, mcEndianness endianness, const int8_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_int16_t(mcBuffer* mb, mcEndianness endianness, const int16_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_int32_t(mcBuffer* mb, mcEndianness endianness, const int32_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_int64_t(mcBuffer* mb, mcEndianness endianness, const int64_t* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_float(mcBuffer* mb, mcEndianness endianness, const float* array, const uint32_t size); -MCDLLAPI bool mc_serialize_endian_sequence_double(mcBuffer* mb, mcEndianness endianness, const double* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_char(ucdrBuffer* mb, ucdrEndianness endianness, const char* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_bool(ucdrBuffer* mb, ucdrEndianness endianness, const bool* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_uint8_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_uint16_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_uint32_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_uint64_t(ucdrBuffer* mb, ucdrEndianness endianness, const uint64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_int8_t(ucdrBuffer* mb, ucdrEndianness endianness, const int8_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_int16_t(ucdrBuffer* mb, ucdrEndianness endianness, const int16_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_int32_t(ucdrBuffer* mb, ucdrEndianness endianness, const int32_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_int64_t(ucdrBuffer* mb, ucdrEndianness endianness, const int64_t* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_float(ucdrBuffer* mb, ucdrEndianness endianness, const float* array, const uint32_t size); +UCDRDLLAPI bool ucdr_serialize_endian_sequence_double(ucdrBuffer* mb, ucdrEndianness endianness, const double* array, const uint32_t size); -MCDLLAPI bool mc_deserialize_endian_sequence_char(mcBuffer* mb, mcEndianness endianness, char* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_bool(mcBuffer* mb, mcEndianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_uint8_t(mcBuffer* mb, mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_uint16_t(mcBuffer* mb, mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_uint32_t(mcBuffer* mb, mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_uint64_t(mcBuffer* mb, mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_int8_t(mcBuffer* mb, mcEndianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_int16_t(mcBuffer* mb, mcEndianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_int32_t(mcBuffer* mb, mcEndianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_int64_t(mcBuffer* mb, mcEndianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_float(mcBuffer* mb, mcEndianness endianness, float* array, const uint32_t array_capacity, uint32_t* size); -MCDLLAPI bool mc_deserialize_endian_sequence_double(mcBuffer* mb, mcEndianness endianness, double* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_char(ucdrBuffer* mb, ucdrEndianness endianness, char* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_bool(ucdrBuffer* mb, ucdrEndianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_uint8_t(ucdrBuffer* mb, ucdrEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_uint16_t(ucdrBuffer* mb, ucdrEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_uint32_t(ucdrBuffer* mb, ucdrEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_uint64_t(ucdrBuffer* mb, ucdrEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_int8_t(ucdrBuffer* mb, ucdrEndianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_int16_t(ucdrBuffer* mb, ucdrEndianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_int32_t(ucdrBuffer* mb, ucdrEndianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_int64_t(ucdrBuffer* mb, ucdrEndianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_float(ucdrBuffer* mb, ucdrEndianness endianness, float* array, const uint32_t array_capacity, uint32_t* size); +UCDRDLLAPI bool ucdr_deserialize_endian_sequence_double(ucdrBuffer* mb, ucdrEndianness endianness, double* array, const uint32_t array_capacity, uint32_t* size); #ifdef __cplusplus } diff --git a/include/microcdr/types/string.h b/include/microcdr/types/string.h index d919517..0c1cf99 100644 --- a/include/microcdr/types/string.h +++ b/include/microcdr/types/string.h @@ -28,11 +28,11 @@ extern "C" { // PUBLIC SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -MCDLLAPI bool mc_serialize_string(mcBuffer* mb, const char* string); -MCDLLAPI bool mc_deserialize_string(mcBuffer* mb, char* string, const uint32_t string_capacity); +UCDRDLLAPI bool ucdr_serialize_string(ucdrBuffer* mb, const char* string); +UCDRDLLAPI bool ucdr_deserialize_string(ucdrBuffer* mb, char* string, const uint32_t string_capacity); -MCDLLAPI bool mc_serialize_endian_string(mcBuffer* mb, mcEndianness endianness, const char* string); -MCDLLAPI bool mc_deserialize_endian_string(mcBuffer* mb, mcEndianness endianness, char* string, const uint32_t string_capacity); +UCDRDLLAPI bool ucdr_serialize_endian_string(ucdrBuffer* mb, ucdrEndianness endianness, const char* string); +UCDRDLLAPI bool ucdr_deserialize_endian_string(ucdrBuffer* mb, ucdrEndianness endianness, char* string, const uint32_t string_capacity); #ifdef __cplusplus } diff --git a/src/c/common.c b/src/c/common.c index cc646d9..0e08173 100644 --- a/src/c/common.c +++ b/src/c/common.c @@ -17,15 +17,15 @@ #include #if __BIG_ENDIAN__ - const mcEndianness MC_MACHINE_ENDIANNESS = MC_BIG_ENDIANNESS; + const ucdrEndianness UCDR_MACHINE_ENDIANNESS = UCDR_BIG_ENDIANNESS; #else - const mcEndianness MC_MACHINE_ENDIANNESS = MC_LITTLE_ENDIANNESS; + const ucdrEndianness UCDR_MACHINE_ENDIANNESS = UCDR_LITTLE_ENDIANNESS; #endif // ------------------------------------------------------------------- // INTERNAL UTIL IMPLEMENTATIONS // ------------------------------------------------------------------- -bool check_buffer(mcBuffer* mb, const uint32_t bytes) +bool ucdr_check_buffer(ucdrBuffer* mb, const uint32_t bytes) { if(!mb->error) { @@ -42,17 +42,17 @@ bool check_buffer(mcBuffer* mb, const uint32_t bytes) // ------------------------------------------------------------------- // PUBLIC IMPLEMENTATION // ------------------------------------------------------------------- -void mc_init_buffer(mcBuffer* mb, uint8_t* data, const uint32_t size) +void ucdr_init_buffer(ucdrBuffer* mb, uint8_t* data, const uint32_t size) { - mc_init_buffer_offset(mb, data, size, 0U); + ucdr_init_buffer_offset(mb, data, size, 0U); } -void mc_init_buffer_offset(mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset) +void ucdr_init_buffer_offset(ucdrBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset) { - mc_init_buffer_offset_endian(mb, data, size, offset, MC_MACHINE_ENDIANNESS); + ucdr_init_buffer_offset_endian(mb, data, size, offset, UCDR_MACHINE_ENDIANNESS); } -void mc_init_buffer_offset_endian(mcBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, mcEndianness endianness) +void ucdr_init_buffer_offset_endian(ucdrBuffer* mb, uint8_t* data, const uint32_t size, uint32_t offset, ucdrEndianness endianness) { mb->init = data; mb->final = mb->init + size; @@ -63,26 +63,26 @@ void mc_init_buffer_offset_endian(mcBuffer* mb, uint8_t* data, const uint32_t si } -void mc_copy_buffer(mcBuffer* mb_dest, const mcBuffer* mb_source) +void ucdr_copy_buffer(ucdrBuffer* mb_dest, const ucdrBuffer* mb_source) { - memcpy(mb_dest, mb_source, sizeof(mcBuffer)); + memcpy(mb_dest, mb_source, sizeof(ucdrBuffer)); } -void mc_reset_buffer(mcBuffer* mb) +void ucdr_reset_buffer(ucdrBuffer* mb) { - mc_reset_buffer_offset(mb, 0U); + ucdr_reset_buffer_offset(mb, 0U); } -void mc_reset_buffer_offset(mcBuffer* mb, const uint32_t offset) +void ucdr_reset_buffer_offset(ucdrBuffer* mb, const uint32_t offset) { mb->iterator = mb->init + offset; mb->last_data_size = 0U; mb->error = false; } -void mc_align_to(mcBuffer* mb, const uint32_t size) +void ucdr_align_to(ucdrBuffer* mb, const uint32_t size) { - uint32_t offset = mc_buffer_alignment(mb, size); + uint32_t offset = ucdr_buffer_alignment(mb, size); mb->iterator += offset; if(mb->iterator > mb->final) { @@ -92,12 +92,12 @@ void mc_align_to(mcBuffer* mb, const uint32_t size) mb->last_data_size = size; } -uint32_t mc_alignment(uint32_t current_alignment, const uint32_t data_size) +uint32_t ucdr_alignment(uint32_t current_alignment, const uint32_t data_size) { return ((data_size - (current_alignment % data_size)) & (data_size - 1)); } -uint32_t mc_buffer_alignment(const mcBuffer* mb, const uint32_t data_size) +uint32_t ucdr_buffer_alignment(const ucdrBuffer* mb, const uint32_t data_size) { if(data_size > mb->last_data_size) { @@ -107,27 +107,27 @@ uint32_t mc_buffer_alignment(const mcBuffer* mb, const uint32_t data_size) return 0; } -size_t mc_buffer_size(const mcBuffer* mb) +size_t ucdr_buffer_size(const ucdrBuffer* mb) { return (size_t)(mb->final - mb->init); } -size_t mc_buffer_length(const mcBuffer* mb) +size_t ucdr_buffer_length(const ucdrBuffer* mb) { return (size_t)(mb->iterator - mb->init); } -size_t mc_buffer_remaining(const mcBuffer* mb) +size_t ucdr_buffer_remaining(const ucdrBuffer* mb) { return (size_t)(mb->final - mb->iterator); } -mcEndianness mc_buffer_endianness(const mcBuffer* mb) +ucdrEndianness ucdr_buffer_endianness(const ucdrBuffer* mb) { return mb->endianness; } -bool mc_buffer_has_error(const mcBuffer* mb) +bool ucdr_buffer_has_error(const ucdrBuffer* mb) { return mb->error; } diff --git a/src/c/common_internals.h b/src/c/common_internals.h index bde4b7b..1e24673 100644 --- a/src/c/common_internals.h +++ b/src/c/common_internals.h @@ -24,7 +24,7 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL UTIL FUNCTIONS // ------------------------------------------------------------------- -bool check_buffer(mcBuffer* mb, const uint32_t bytes); +bool ucdr_check_buffer(ucdrBuffer* mb, const uint32_t bytes); #ifdef __cplusplus } diff --git a/src/c/types/array.c b/src/c/types/array.c index ef52e0a..3d5a460 100644 --- a/src/c/types/array.c +++ b/src/c/types/array.c @@ -24,10 +24,10 @@ // INTERNAL SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool serialize_array_byte_1(mcBuffer* mb, const uint8_t* array, const uint32_t size) +bool ucdr_serialize_array_byte_1(ucdrBuffer* mb, const uint8_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint8_t); - if(check_buffer(mb, size)) + if(ucdr_check_buffer(mb, size)) { memcpy(mb->iterator, array, size); @@ -37,16 +37,16 @@ bool serialize_array_byte_1(mcBuffer* mb, const uint8_t* array, const uint32_t s return !mb->error; } -bool serialize_array_byte_2(mcBuffer* mb, const mcEndianness endianness, const uint16_t* array, const uint32_t size) +bool ucdr_serialize_array_byte_2(ucdrBuffer* mb, const ucdrEndianness endianness, const uint16_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint16_t); uint32_t array_size = size * data_size; - uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint16_t)); + uint32_t alignment = ucdr_buffer_alignment(mb, sizeof(uint16_t)); - if(check_buffer(mb, alignment + array_size)) + if(ucdr_check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, array, array_size); @@ -57,24 +57,24 @@ bool serialize_array_byte_2(mcBuffer* mb, const mcEndianness endianness, const u { for(uint32_t i = 0; i < size; i++) { - serialize_byte_2(mb, endianness, array + i); + ucdr_serialize_byte_2(mb, endianness, array + i); } } } return !mb->error; } -bool serialize_array_byte_4(mcBuffer* mb, const mcEndianness endianness, const uint32_t* array, const uint32_t size) +bool ucdr_serialize_array_byte_4(ucdrBuffer* mb, const ucdrEndianness endianness, const uint32_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint32_t); uint32_t array_size = size * data_size; - uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint32_t)); + uint32_t alignment = ucdr_buffer_alignment(mb, sizeof(uint32_t)); - if(check_buffer(mb, alignment + array_size)) + if(ucdr_check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, array, array_size); mb->iterator += array_size; @@ -84,24 +84,24 @@ bool serialize_array_byte_4(mcBuffer* mb, const mcEndianness endianness, const u { for(uint32_t i = 0; i < size; i++) { - serialize_byte_4(mb, endianness, array + i); + ucdr_serialize_byte_4(mb, endianness, array + i); } } } return !mb->error; } -bool serialize_array_byte_8(mcBuffer* mb, const mcEndianness endianness, const uint64_t* array, const uint32_t size) +bool ucdr_serialize_array_byte_8(ucdrBuffer* mb, const ucdrEndianness endianness, const uint64_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint64_t); uint32_t array_size = size * data_size; - uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint64_t)); + uint32_t alignment = ucdr_buffer_alignment(mb, sizeof(uint64_t)); - if(check_buffer(mb, alignment + array_size)) + if(ucdr_check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, array, array_size); mb->iterator += array_size; @@ -111,17 +111,17 @@ bool serialize_array_byte_8(mcBuffer* mb, const mcEndianness endianness, const u { for(uint32_t i = 0; i < size; i++) { - serialize_byte_8(mb, endianness, array + i); + ucdr_serialize_byte_8(mb, endianness, array + i); } } } return !mb->error; } -bool deserialize_array_byte_1(mcBuffer* mb, uint8_t* array, const uint32_t size) +bool ucdr_deserialize_array_byte_1(ucdrBuffer* mb, uint8_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint8_t); - if(check_buffer(mb, size)) + if(ucdr_check_buffer(mb, size)) { memcpy(array, mb->iterator, size); @@ -131,17 +131,17 @@ bool deserialize_array_byte_1(mcBuffer* mb, uint8_t* array, const uint32_t size) return !mb->error; } -bool deserialize_array_byte_2(mcBuffer* mb, const mcEndianness endianness, uint16_t* array, const uint32_t size) +bool ucdr_deserialize_array_byte_2(ucdrBuffer* mb, const ucdrEndianness endianness, uint16_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint16_t); uint32_t array_size = size * data_size; - uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint16_t)); + uint32_t alignment = ucdr_buffer_alignment(mb, sizeof(uint16_t)); - if(check_buffer(mb, alignment + array_size)) + if(ucdr_check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(array, mb->iterator, array_size); mb->iterator += array_size; @@ -151,24 +151,24 @@ bool deserialize_array_byte_2(mcBuffer* mb, const mcEndianness endianness, uint1 { for(uint32_t i = 0; i < size; i++) { - deserialize_byte_2(mb, endianness, array + i); + ucdr_deserialize_byte_2(mb, endianness, array + i); } } } return !mb->error; } -bool deserialize_array_byte_4(mcBuffer* mb, const mcEndianness endianness, uint32_t* array, const uint32_t size) +bool ucdr_deserialize_array_byte_4(ucdrBuffer* mb, const ucdrEndianness endianness, uint32_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint32_t); uint32_t array_size = size * data_size; - uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint32_t)); + uint32_t alignment = ucdr_buffer_alignment(mb, sizeof(uint32_t)); - if(check_buffer(mb, alignment + array_size)) + if(ucdr_check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(array, mb->iterator, array_size); mb->iterator += array_size; @@ -178,24 +178,24 @@ bool deserialize_array_byte_4(mcBuffer* mb, const mcEndianness endianness, uint3 { for(uint32_t i = 0; i < size; i++) { - deserialize_byte_4(mb, endianness, array + i); + ucdr_deserialize_byte_4(mb, endianness, array + i); } } } return !mb->error; } -bool deserialize_array_byte_8(mcBuffer* mb, const mcEndianness endianness, uint64_t* array, const uint32_t size) +bool ucdr_deserialize_array_byte_8(ucdrBuffer* mb, const ucdrEndianness endianness, uint64_t* array, const uint32_t size) { uint32_t data_size = sizeof(uint64_t); uint32_t array_size = size * data_size; - uint32_t alignment = mc_buffer_alignment(mb, sizeof(uint64_t)); + uint32_t alignment = ucdr_buffer_alignment(mb, sizeof(uint64_t)); - if(check_buffer(mb, alignment + array_size)) + if(ucdr_check_buffer(mb, alignment + array_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(array, mb->iterator, array_size); mb->iterator += array_size; @@ -205,7 +205,7 @@ bool deserialize_array_byte_8(mcBuffer* mb, const mcEndianness endianness, uint6 { for(uint32_t i = 0; i < size; i++) { - deserialize_byte_8(mb, endianness, array + i); + ucdr_deserialize_byte_8(mb, endianness, array + i); } } } @@ -216,203 +216,203 @@ bool deserialize_array_byte_8(mcBuffer* mb, const mcEndianness endianness, uint6 // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool mc_serialize_array_char(mcBuffer* mb, const char* array, const uint32_t size) +bool ucdr_serialize_array_char(ucdrBuffer* mb, const char* array, const uint32_t size) { - return serialize_array_byte_1(mb, (uint8_t*)array, size); + return ucdr_serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool mc_serialize_array_bool(mcBuffer* mb, const bool* array, const uint32_t size) +bool ucdr_serialize_array_bool(ucdrBuffer* mb, const bool* array, const uint32_t size) { - return serialize_array_byte_1(mb, (uint8_t*)array, size); + return ucdr_serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool mc_serialize_array_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size) +bool ucdr_serialize_array_uint8_t(ucdrBuffer* mb, const uint8_t* array, const uint32_t size) { - return serialize_array_byte_1(mb, array, size); + return ucdr_serialize_array_byte_1(mb, array, size); } -bool mc_serialize_array_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size) +bool ucdr_serialize_array_uint16_t(ucdrBuffer* mb, const uint16_t* array, const uint32_t size) { - return serialize_array_byte_2(mb, mb->endianness, array, size); + return ucdr_serialize_array_byte_2(mb, mb->endianness, array, size); } -bool mc_serialize_array_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size) +bool ucdr_serialize_array_uint32_t(ucdrBuffer* mb, const uint32_t* array, const uint32_t size) { - return serialize_array_byte_4(mb, mb->endianness, array, size); + return ucdr_serialize_array_byte_4(mb, mb->endianness, array, size); } -bool mc_serialize_array_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size) +bool ucdr_serialize_array_uint64_t(ucdrBuffer* mb, const uint64_t* array, const uint32_t size) { - return serialize_array_byte_8(mb, mb->endianness, array, size); + return ucdr_serialize_array_byte_8(mb, mb->endianness, array, size); } -bool mc_serialize_array_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size) +bool ucdr_serialize_array_int8_t(ucdrBuffer* mb, const int8_t* array, const uint32_t size) { - return serialize_array_byte_1(mb, (uint8_t*)array, size); + return ucdr_serialize_array_byte_1(mb, (uint8_t*)array, size); } -bool mc_serialize_array_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size) +bool ucdr_serialize_array_int16_t(ucdrBuffer* mb, const int16_t* array, const uint32_t size) { - return serialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); + return ucdr_serialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool mc_serialize_array_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size) +bool ucdr_serialize_array_int32_t(ucdrBuffer* mb, const int32_t* array, const uint32_t size) { - return serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); + return ucdr_serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool mc_serialize_array_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size) +bool ucdr_serialize_array_int64_t(ucdrBuffer* mb, const int64_t* array, const uint32_t size) { - return serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); + return ucdr_serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool mc_serialize_array_float(mcBuffer* mb, const float* array, const uint32_t size) +bool ucdr_serialize_array_float(ucdrBuffer* mb, const float* array, const uint32_t size) { - return serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); + return ucdr_serialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool mc_serialize_array_double(mcBuffer* mb, const double* array, const uint32_t size) +bool ucdr_serialize_array_double(ucdrBuffer* mb, const double* array, const uint32_t size) { - return serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); + return ucdr_serialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool mc_deserialize_array_char(mcBuffer* mb, char* array, const uint32_t size) +bool ucdr_deserialize_array_char(ucdrBuffer* mb, char* array, const uint32_t size) { - return deserialize_array_byte_1(mb, (uint8_t*)array, size); + return ucdr_deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool mc_deserialize_array_bool(mcBuffer* mb, bool* array, const uint32_t size) +bool ucdr_deserialize_array_bool(ucdrBuffer* mb, bool* array, const uint32_t size) { - return deserialize_array_byte_1(mb, (uint8_t*)array, size); + return ucdr_deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool mc_deserialize_array_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t size) +bool ucdr_deserialize_array_uint8_t(ucdrBuffer* mb, uint8_t* array, const uint32_t size) { - return deserialize_array_byte_1(mb, array, size); + return ucdr_deserialize_array_byte_1(mb, array, size); } -bool mc_deserialize_array_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t size) +bool ucdr_deserialize_array_uint16_t(ucdrBuffer* mb, uint16_t* array, const uint32_t size) { - return deserialize_array_byte_2(mb, mb->endianness, array, size); + return ucdr_deserialize_array_byte_2(mb, mb->endianness, array, size); } -bool mc_deserialize_array_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t size) +bool ucdr_deserialize_array_uint32_t(ucdrBuffer* mb, uint32_t* array, const uint32_t size) { - return deserialize_array_byte_4(mb, mb->endianness, array, size); + return ucdr_deserialize_array_byte_4(mb, mb->endianness, array, size); } -bool mc_deserialize_array_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t size) +bool ucdr_deserialize_array_uint64_t(ucdrBuffer* mb, uint64_t* array, const uint32_t size) { - return deserialize_array_byte_8(mb, mb->endianness, array, size); + return ucdr_deserialize_array_byte_8(mb, mb->endianness, array, size); } -bool mc_deserialize_array_int8_t(mcBuffer* mb, int8_t* array, const uint32_t size) +bool ucdr_deserialize_array_int8_t(ucdrBuffer* mb, int8_t* array, const uint32_t size) { - return deserialize_array_byte_1(mb, (uint8_t*)array, size); + return ucdr_deserialize_array_byte_1(mb, (uint8_t*)array, size); } -bool mc_deserialize_array_int16_t(mcBuffer* mb, int16_t* array, const uint32_t size) +bool ucdr_deserialize_array_int16_t(ucdrBuffer* mb, int16_t* array, const uint32_t size) { - return deserialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); + return ucdr_deserialize_array_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool mc_deserialize_array_int32_t(mcBuffer* mb, int32_t* array, const uint32_t size) +bool ucdr_deserialize_array_int32_t(ucdrBuffer* mb, int32_t* array, const uint32_t size) { - return deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); + return ucdr_deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool mc_deserialize_array_int64_t(mcBuffer* mb, int64_t* array, const uint32_t size) +bool ucdr_deserialize_array_int64_t(ucdrBuffer* mb, int64_t* array, const uint32_t size) { - return deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); + return ucdr_deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool mc_deserialize_array_float(mcBuffer* mb, float* array, const uint32_t size) +bool ucdr_deserialize_array_float(ucdrBuffer* mb, float* array, const uint32_t size) { - return deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); + return ucdr_deserialize_array_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool mc_deserialize_array_double(mcBuffer* mb, double* array, const uint32_t size) +bool ucdr_deserialize_array_double(ucdrBuffer* mb, double* array, const uint32_t size) { - return deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); + return ucdr_deserialize_array_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool mc_serialize_endian_array_uint16_t(mcBuffer* mb, const mcEndianness endianness, const uint16_t* array, const uint32_t size) +bool ucdr_serialize_endian_array_uint16_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint16_t* array, const uint32_t size) { - return serialize_array_byte_2(mb, endianness, array, size); + return ucdr_serialize_array_byte_2(mb, endianness, array, size); } -bool mc_serialize_endian_array_uint32_t(mcBuffer* mb, const mcEndianness endianness, const uint32_t* array, const uint32_t size) +bool ucdr_serialize_endian_array_uint32_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint32_t* array, const uint32_t size) { - return serialize_array_byte_4(mb, endianness, array, size); + return ucdr_serialize_array_byte_4(mb, endianness, array, size); } -bool mc_serialize_endian_array_uint64_t(mcBuffer* mb, const mcEndianness endianness, const uint64_t* array, const uint32_t size) +bool ucdr_serialize_endian_array_uint64_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint64_t* array, const uint32_t size) { - return serialize_array_byte_8(mb, endianness, array, size); + return ucdr_serialize_array_byte_8(mb, endianness, array, size); } -bool mc_serialize_endian_array_int16_t(mcBuffer* mb, const mcEndianness endianness, const int16_t* array, const uint32_t size) +bool ucdr_serialize_endian_array_int16_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int16_t* array, const uint32_t size) { - return serialize_array_byte_2(mb, endianness, (uint16_t*)array, size); + return ucdr_serialize_array_byte_2(mb, endianness, (uint16_t*)array, size); } -bool mc_serialize_endian_array_int32_t(mcBuffer* mb, const mcEndianness endianness, const int32_t* array, const uint32_t size) +bool ucdr_serialize_endian_array_int32_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int32_t* array, const uint32_t size) { - return serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); + return ucdr_serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool mc_serialize_endian_array_int64_t(mcBuffer* mb, const mcEndianness endianness, const int64_t* array, const uint32_t size) +bool ucdr_serialize_endian_array_int64_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int64_t* array, const uint32_t size) { - return serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); + return ucdr_serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool mc_serialize_endian_array_float(mcBuffer* mb, const mcEndianness endianness, const float* array, const uint32_t size) +bool ucdr_serialize_endian_array_float(ucdrBuffer* mb, const ucdrEndianness endianness, const float* array, const uint32_t size) { - return serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); + return ucdr_serialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool mc_serialize_endian_array_double(mcBuffer* mb, const mcEndianness endianness, const double* array, const uint32_t size) +bool ucdr_serialize_endian_array_double(ucdrBuffer* mb, const ucdrEndianness endianness, const double* array, const uint32_t size) { - return serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); + return ucdr_serialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool mc_deserialize_endian_array_uint16_t(mcBuffer* mb, const mcEndianness endianness, uint16_t* array, const uint32_t size) +bool ucdr_deserialize_endian_array_uint16_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint16_t* array, const uint32_t size) { - return deserialize_array_byte_2(mb, endianness, array, size); + return ucdr_deserialize_array_byte_2(mb, endianness, array, size); } -bool mc_deserialize_endian_array_uint32_t(mcBuffer* mb, const mcEndianness endianness, uint32_t* array, const uint32_t size) +bool ucdr_deserialize_endian_array_uint32_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint32_t* array, const uint32_t size) { - return deserialize_array_byte_4(mb, endianness, array, size); + return ucdr_deserialize_array_byte_4(mb, endianness, array, size); } -bool mc_deserialize_endian_array_uint64_t(mcBuffer* mb, const mcEndianness endianness, uint64_t* array, const uint32_t size) +bool ucdr_deserialize_endian_array_uint64_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint64_t* array, const uint32_t size) { - return deserialize_array_byte_8(mb, endianness, array, size); + return ucdr_deserialize_array_byte_8(mb, endianness, array, size); } -bool mc_deserialize_endian_array_int16_t(mcBuffer* mb, const mcEndianness endianness, int16_t* array, const uint32_t size) +bool ucdr_deserialize_endian_array_int16_t(ucdrBuffer* mb, const ucdrEndianness endianness, int16_t* array, const uint32_t size) { - return deserialize_array_byte_2(mb, endianness, (uint16_t*)array, size); + return ucdr_deserialize_array_byte_2(mb, endianness, (uint16_t*)array, size); } -bool mc_deserialize_endian_array_int32_t(mcBuffer* mb, const mcEndianness endianness, int32_t* array, const uint32_t size) +bool ucdr_deserialize_endian_array_int32_t(ucdrBuffer* mb, const ucdrEndianness endianness, int32_t* array, const uint32_t size) { - return deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); + return ucdr_deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool mc_deserialize_endian_array_int64_t(mcBuffer* mb, const mcEndianness endianness, int64_t* array, const uint32_t size) +bool ucdr_deserialize_endian_array_int64_t(ucdrBuffer* mb, const ucdrEndianness endianness, int64_t* array, const uint32_t size) { - return deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); + return ucdr_deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } -bool mc_deserialize_endian_array_float(mcBuffer* mb, const mcEndianness endianness, float* array, const uint32_t size) +bool ucdr_deserialize_endian_array_float(ucdrBuffer* mb, const ucdrEndianness endianness, float* array, const uint32_t size) { - return deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); + return ucdr_deserialize_array_byte_4(mb, endianness, (uint32_t*)array, size); } -bool mc_deserialize_endian_array_double(mcBuffer* mb, const mcEndianness endianness, double* array, const uint32_t size) +bool ucdr_deserialize_endian_array_double(ucdrBuffer* mb, const ucdrEndianness endianness, double* array, const uint32_t size) { - return deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); + return ucdr_deserialize_array_byte_8(mb, endianness, (uint64_t*)array, size); } diff --git a/src/c/types/array_internals.h b/src/c/types/array_internals.h index fba23c3..96cecff 100644 --- a/src/c/types/array_internals.h +++ b/src/c/types/array_internals.h @@ -25,15 +25,15 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -bool serialize_array_byte_1(mcBuffer* buffer, const uint8_t* array, const uint32_t size); -bool serialize_array_byte_2(mcBuffer* buffer, mcEndianness endianness, const uint16_t* array, const uint32_t size); -bool serialize_array_byte_4(mcBuffer* buffer, mcEndianness endianness, const uint32_t* array, const uint32_t size); -bool serialize_array_byte_8(mcBuffer* buffer, mcEndianness endianness, const uint64_t* array, const uint32_t size); - -bool deserialize_array_byte_1(mcBuffer* buffer, uint8_t* array, const uint32_t size); -bool deserialize_array_byte_2(mcBuffer* buffer, mcEndianness endianness, uint16_t* array, const uint32_t size); -bool deserialize_array_byte_4(mcBuffer* buffer, mcEndianness endianness, uint32_t* array, const uint32_t size); -bool deserialize_array_byte_8(mcBuffer* buffer, mcEndianness endianness, uint64_t* array, const uint32_t size); +bool ucdr_serialize_array_byte_1(ucdrBuffer* buffer, const uint8_t* array, const uint32_t size); +bool ucdr_serialize_array_byte_2(ucdrBuffer* buffer, ucdrEndianness endianness, const uint16_t* array, const uint32_t size); +bool ucdr_serialize_array_byte_4(ucdrBuffer* buffer, ucdrEndianness endianness, const uint32_t* array, const uint32_t size); +bool ucdr_serialize_array_byte_8(ucdrBuffer* buffer, ucdrEndianness endianness, const uint64_t* array, const uint32_t size); + +bool ucdr_deserialize_array_byte_1(ucdrBuffer* buffer, uint8_t* array, const uint32_t size); +bool ucdr_deserialize_array_byte_2(ucdrBuffer* buffer, ucdrEndianness endianness, uint16_t* array, const uint32_t size); +bool ucdr_deserialize_array_byte_4(ucdrBuffer* buffer, ucdrEndianness endianness, uint32_t* array, const uint32_t size); +bool ucdr_deserialize_array_byte_8(ucdrBuffer* buffer, ucdrEndianness endianness, uint64_t* array, const uint32_t size); #ifdef __cplusplus } diff --git a/src/c/types/basic.c b/src/c/types/basic.c index 9d12afb..641eb21 100644 --- a/src/c/types/basic.c +++ b/src/c/types/basic.c @@ -23,10 +23,10 @@ // INTERNAL SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool serialize_byte_1(mcBuffer* mb, const uint8_t* byte) +bool ucdr_serialize_byte_1(ucdrBuffer* mb, const uint8_t* byte) { uint32_t data_size = sizeof(uint8_t); - if(check_buffer(mb, data_size)) + if(ucdr_check_buffer(mb, data_size)) { *mb->iterator = *byte; @@ -36,16 +36,16 @@ bool serialize_byte_1(mcBuffer* mb, const uint8_t* byte) return !mb->error; } -bool serialize_byte_2(mcBuffer* mb, const mcEndianness endianness, const uint16_t* bytes) +bool ucdr_serialize_byte_2(ucdrBuffer* mb, const ucdrEndianness endianness, const uint16_t* bytes) { uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = mc_buffer_alignment(mb, data_size); + uint32_t alignment = ucdr_buffer_alignment(mb, data_size); - if(check_buffer(mb, alignment + data_size)) + if(ucdr_check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, bytes, data_size); } @@ -62,16 +62,16 @@ bool serialize_byte_2(mcBuffer* mb, const mcEndianness endianness, const uint16_ return !mb->error; } -bool serialize_byte_4(mcBuffer* mb, const mcEndianness endianness, const uint32_t* bytes) +bool ucdr_serialize_byte_4(ucdrBuffer* mb, const ucdrEndianness endianness, const uint32_t* bytes) { uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = mc_buffer_alignment(mb, data_size); + uint32_t alignment = ucdr_buffer_alignment(mb, data_size); - if(check_buffer(mb, alignment + data_size)) + if(ucdr_check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, bytes, data_size); } @@ -90,16 +90,16 @@ bool serialize_byte_4(mcBuffer* mb, const mcEndianness endianness, const uint32_ return !mb->error; } -bool serialize_byte_8(mcBuffer* mb, const mcEndianness endianness, const uint64_t* bytes) +bool ucdr_serialize_byte_8(ucdrBuffer* mb, const ucdrEndianness endianness, const uint64_t* bytes) { uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = mc_buffer_alignment(mb, data_size); + uint32_t alignment = ucdr_buffer_alignment(mb, data_size); - if(check_buffer(mb, alignment + data_size)) + if(ucdr_check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(mb->iterator, bytes, data_size); } @@ -122,10 +122,10 @@ bool serialize_byte_8(mcBuffer* mb, const mcEndianness endianness, const uint64_ return !mb->error; } -bool deserialize_byte_1(mcBuffer* mb, uint8_t* byte) +bool ucdr_deserialize_byte_1(ucdrBuffer* mb, uint8_t* byte) { uint32_t data_size = sizeof(uint8_t); - if(check_buffer(mb, data_size)) + if(ucdr_check_buffer(mb, data_size)) { *byte = *mb->iterator; @@ -135,16 +135,16 @@ bool deserialize_byte_1(mcBuffer* mb, uint8_t* byte) return !mb->error; } -bool deserialize_byte_2(mcBuffer* mb, const mcEndianness endianness, uint16_t* bytes) +bool ucdr_deserialize_byte_2(ucdrBuffer* mb, const ucdrEndianness endianness, uint16_t* bytes) { uint32_t data_size = sizeof(uint16_t); - uint32_t alignment = mc_buffer_alignment(mb, data_size); + uint32_t alignment = ucdr_buffer_alignment(mb, data_size); - if(check_buffer(mb, alignment + data_size)) + if(ucdr_check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(bytes, mb->iterator, data_size); } @@ -161,16 +161,16 @@ bool deserialize_byte_2(mcBuffer* mb, const mcEndianness endianness, uint16_t* b return !mb->error; } -bool deserialize_byte_4(mcBuffer* mb, const mcEndianness endianness, uint32_t* bytes) +bool ucdr_deserialize_byte_4(ucdrBuffer* mb, const ucdrEndianness endianness, uint32_t* bytes) { uint32_t data_size = sizeof(uint32_t); - uint32_t alignment = mc_buffer_alignment(mb, data_size); + uint32_t alignment = ucdr_buffer_alignment(mb, data_size); - if(check_buffer(mb, alignment + data_size)) + if(ucdr_check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(bytes, mb->iterator, data_size); } @@ -189,16 +189,16 @@ bool deserialize_byte_4(mcBuffer* mb, const mcEndianness endianness, uint32_t* b return !mb->error; } -bool deserialize_byte_8(mcBuffer* mb, const mcEndianness endianness, uint64_t* bytes) +bool ucdr_deserialize_byte_8(ucdrBuffer* mb, const ucdrEndianness endianness, uint64_t* bytes) { uint32_t data_size = sizeof(uint64_t); - uint32_t alignment = mc_buffer_alignment(mb, data_size); + uint32_t alignment = ucdr_buffer_alignment(mb, data_size); - if(check_buffer(mb, alignment + data_size)) + if(ucdr_check_buffer(mb, alignment + data_size)) { mb->iterator += alignment; - if(MC_MACHINE_ENDIANNESS == endianness) + if(UCDR_MACHINE_ENDIANNESS == endianness) { memcpy(bytes, mb->iterator, data_size); } @@ -225,203 +225,203 @@ bool deserialize_byte_8(mcBuffer* mb, const mcEndianness endianness, uint64_t* b // PUBLIC SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool mc_serialize_char(mcBuffer* mb, const char value) +bool ucdr_serialize_char(ucdrBuffer* mb, const char value) { - return serialize_byte_1(mb, (uint8_t*)&value); + return ucdr_serialize_byte_1(mb, (uint8_t*)&value); } -bool mc_serialize_bool(mcBuffer* mb, const bool value) +bool ucdr_serialize_bool(ucdrBuffer* mb, const bool value) { - return serialize_byte_1(mb, (uint8_t*)&value); + return ucdr_serialize_byte_1(mb, (uint8_t*)&value); } -bool mc_serialize_uint8_t(mcBuffer* mb, const uint8_t value) +bool ucdr_serialize_uint8_t(ucdrBuffer* mb, const uint8_t value) { - return serialize_byte_1(mb, &value); + return ucdr_serialize_byte_1(mb, &value); } -bool mc_serialize_uint16_t(mcBuffer* mb, const uint16_t value) +bool ucdr_serialize_uint16_t(ucdrBuffer* mb, const uint16_t value) { - return serialize_byte_2(mb, mb->endianness, &value); + return ucdr_serialize_byte_2(mb, mb->endianness, &value); } -bool mc_serialize_uint32_t(mcBuffer* mb, const uint32_t value) +bool ucdr_serialize_uint32_t(ucdrBuffer* mb, const uint32_t value) { - return serialize_byte_4(mb, mb->endianness, &value); + return ucdr_serialize_byte_4(mb, mb->endianness, &value); } -bool mc_serialize_uint64_t(mcBuffer* mb, const uint64_t value) +bool ucdr_serialize_uint64_t(ucdrBuffer* mb, const uint64_t value) { - return serialize_byte_8(mb, mb->endianness, &value); + return ucdr_serialize_byte_8(mb, mb->endianness, &value); } -bool mc_serialize_int8_t(mcBuffer* mb, const int8_t value) +bool ucdr_serialize_int8_t(ucdrBuffer* mb, const int8_t value) { - return serialize_byte_1(mb, (uint8_t*)&value); + return ucdr_serialize_byte_1(mb, (uint8_t*)&value); } -bool mc_serialize_int16_t(mcBuffer* mb, const int16_t value) +bool ucdr_serialize_int16_t(ucdrBuffer* mb, const int16_t value) { - return serialize_byte_2(mb, mb->endianness, (uint16_t*)&value); + return ucdr_serialize_byte_2(mb, mb->endianness, (uint16_t*)&value); } -bool mc_serialize_int32_t(mcBuffer* mb, const int32_t value) +bool ucdr_serialize_int32_t(ucdrBuffer* mb, const int32_t value) { - return serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); + return ucdr_serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); } -bool mc_serialize_int64_t(mcBuffer* mb, const int64_t value) +bool ucdr_serialize_int64_t(ucdrBuffer* mb, const int64_t value) { - return serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); + return ucdr_serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); } -bool mc_serialize_float(mcBuffer* mb, const float value) +bool ucdr_serialize_float(ucdrBuffer* mb, const float value) { - return serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); + return ucdr_serialize_byte_4(mb, mb->endianness, (uint32_t*)&value); } -bool mc_serialize_double(mcBuffer* mb, const double value) +bool ucdr_serialize_double(ucdrBuffer* mb, const double value) { - return serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); + return ucdr_serialize_byte_8(mb, mb->endianness, (uint64_t*)&value); } -bool mc_deserialize_char(mcBuffer* mb, char* value) +bool ucdr_deserialize_char(ucdrBuffer* mb, char* value) { - return deserialize_byte_1(mb, (uint8_t*)value); + return ucdr_deserialize_byte_1(mb, (uint8_t*)value); } -bool mc_deserialize_bool(mcBuffer* mb, bool* value) +bool ucdr_deserialize_bool(ucdrBuffer* mb, bool* value) { - return deserialize_byte_1(mb, (uint8_t*)value); + return ucdr_deserialize_byte_1(mb, (uint8_t*)value); } -bool mc_deserialize_uint8_t(mcBuffer* mb, uint8_t* value) +bool ucdr_deserialize_uint8_t(ucdrBuffer* mb, uint8_t* value) { - return deserialize_byte_1(mb, value); + return ucdr_deserialize_byte_1(mb, value); } -bool mc_deserialize_uint16_t(mcBuffer* mb, uint16_t* value) +bool ucdr_deserialize_uint16_t(ucdrBuffer* mb, uint16_t* value) { - return deserialize_byte_2(mb, mb->endianness, value); + return ucdr_deserialize_byte_2(mb, mb->endianness, value); } -bool mc_deserialize_uint32_t(mcBuffer* mb, uint32_t* value) +bool ucdr_deserialize_uint32_t(ucdrBuffer* mb, uint32_t* value) { - return deserialize_byte_4(mb, mb->endianness, value); + return ucdr_deserialize_byte_4(mb, mb->endianness, value); } -bool mc_deserialize_uint64_t(mcBuffer* mb, uint64_t* value) +bool ucdr_deserialize_uint64_t(ucdrBuffer* mb, uint64_t* value) { - return deserialize_byte_8(mb, mb->endianness, value); + return ucdr_deserialize_byte_8(mb, mb->endianness, value); } -bool mc_deserialize_int8_t(mcBuffer* mb, int8_t* value) +bool ucdr_deserialize_int8_t(ucdrBuffer* mb, int8_t* value) { - return deserialize_byte_1(mb, (uint8_t*)value); + return ucdr_deserialize_byte_1(mb, (uint8_t*)value); } -bool mc_deserialize_int16_t(mcBuffer* mb, int16_t* value) +bool ucdr_deserialize_int16_t(ucdrBuffer* mb, int16_t* value) { - return deserialize_byte_2(mb, mb->endianness, (uint16_t*)value); + return ucdr_deserialize_byte_2(mb, mb->endianness, (uint16_t*)value); } -bool mc_deserialize_int32_t(mcBuffer* mb, int32_t* value) +bool ucdr_deserialize_int32_t(ucdrBuffer* mb, int32_t* value) { - return deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); + return ucdr_deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); } -bool mc_deserialize_int64_t(mcBuffer* mb, int64_t* value) +bool ucdr_deserialize_int64_t(ucdrBuffer* mb, int64_t* value) { - return deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); + return ucdr_deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); } -bool mc_deserialize_float(mcBuffer* mb, float* value) +bool ucdr_deserialize_float(ucdrBuffer* mb, float* value) { - return deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); + return ucdr_deserialize_byte_4(mb, mb->endianness, (uint32_t*)value); } -bool mc_deserialize_double(mcBuffer* mb, double* value) +bool ucdr_deserialize_double(ucdrBuffer* mb, double* value) { - return deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); + return ucdr_deserialize_byte_8(mb, mb->endianness, (uint64_t*)value); } -bool mc_serialize_endian_uint16_t(mcBuffer* mb, const mcEndianness endianness, const uint16_t value) +bool ucdr_serialize_endian_uint16_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint16_t value) { - return serialize_byte_2(mb, endianness, &value); + return ucdr_serialize_byte_2(mb, endianness, &value); } -bool mc_serialize_endian_uint32_t(mcBuffer* mb, const mcEndianness endianness, const uint32_t value) +bool ucdr_serialize_endian_uint32_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint32_t value) { - return serialize_byte_4(mb, endianness, &value); + return ucdr_serialize_byte_4(mb, endianness, &value); } -bool mc_serialize_endian_uint64_t(mcBuffer* mb, const mcEndianness endianness, const uint64_t value) +bool ucdr_serialize_endian_uint64_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint64_t value) { - return serialize_byte_8(mb, endianness, &value); + return ucdr_serialize_byte_8(mb, endianness, &value); } -bool mc_serialize_endian_int16_t(mcBuffer* mb, const mcEndianness endianness, const int16_t value) +bool ucdr_serialize_endian_int16_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int16_t value) { - return serialize_byte_2(mb, endianness, (uint16_t*)&value); + return ucdr_serialize_byte_2(mb, endianness, (uint16_t*)&value); } -bool mc_serialize_endian_int32_t(mcBuffer* mb, const mcEndianness endianness, const int32_t value) +bool ucdr_serialize_endian_int32_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int32_t value) { - return serialize_byte_4(mb, endianness, (uint32_t*)&value); + return ucdr_serialize_byte_4(mb, endianness, (uint32_t*)&value); } -bool mc_serialize_endian_int64_t(mcBuffer* mb, const mcEndianness endianness, const int64_t value) +bool ucdr_serialize_endian_int64_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int64_t value) { - return serialize_byte_8(mb, endianness, (uint64_t*)&value); + return ucdr_serialize_byte_8(mb, endianness, (uint64_t*)&value); } -bool mc_serialize_endian_float(mcBuffer* mb, const mcEndianness endianness, const float value) +bool ucdr_serialize_endian_float(ucdrBuffer* mb, const ucdrEndianness endianness, const float value) { - return serialize_byte_4(mb, endianness, (uint32_t*)&value); + return ucdr_serialize_byte_4(mb, endianness, (uint32_t*)&value); } -bool mc_serialize_endian_double(mcBuffer* mb, const mcEndianness endianness, const double value) +bool ucdr_serialize_endian_double(ucdrBuffer* mb, const ucdrEndianness endianness, const double value) { - return serialize_byte_8(mb, endianness, (uint64_t*)&value); + return ucdr_serialize_byte_8(mb, endianness, (uint64_t*)&value); } -bool mc_deserialize_endian_uint16_t(mcBuffer* mb, const mcEndianness endianness, uint16_t* value) +bool ucdr_deserialize_endian_uint16_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint16_t* value) { - return deserialize_byte_2(mb, endianness, value); + return ucdr_deserialize_byte_2(mb, endianness, value); } -bool mc_deserialize_endian_uint32_t(mcBuffer* mb, const mcEndianness endianness, uint32_t* value) +bool ucdr_deserialize_endian_uint32_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint32_t* value) { - return deserialize_byte_4(mb, endianness, value); + return ucdr_deserialize_byte_4(mb, endianness, value); } -bool mc_deserialize_endian_uint64_t(mcBuffer* mb, const mcEndianness endianness, uint64_t* value) +bool ucdr_deserialize_endian_uint64_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint64_t* value) { - return deserialize_byte_8(mb, endianness, value); + return ucdr_deserialize_byte_8(mb, endianness, value); } -bool mc_deserialize_endian_int16_t(mcBuffer* mb, const mcEndianness endianness, int16_t* value) +bool ucdr_deserialize_endian_int16_t(ucdrBuffer* mb, const ucdrEndianness endianness, int16_t* value) { - return deserialize_byte_2(mb, endianness, (uint16_t*)value); + return ucdr_deserialize_byte_2(mb, endianness, (uint16_t*)value); } -bool mc_deserialize_endian_int32_t(mcBuffer* mb, const mcEndianness endianness, int32_t* value) +bool ucdr_deserialize_endian_int32_t(ucdrBuffer* mb, const ucdrEndianness endianness, int32_t* value) { - return deserialize_byte_4(mb, endianness, (uint32_t*)value); + return ucdr_deserialize_byte_4(mb, endianness, (uint32_t*)value); } -bool mc_deserialize_endian_int64_t(mcBuffer* mb, const mcEndianness endianness, int64_t* value) +bool ucdr_deserialize_endian_int64_t(ucdrBuffer* mb, const ucdrEndianness endianness, int64_t* value) { - return deserialize_byte_8(mb, endianness, (uint64_t*)value); + return ucdr_deserialize_byte_8(mb, endianness, (uint64_t*)value); } -bool mc_deserialize_endian_float(mcBuffer* mb, const mcEndianness endianness, float* value) +bool ucdr_deserialize_endian_float(ucdrBuffer* mb, const ucdrEndianness endianness, float* value) { - return deserialize_byte_4(mb, endianness, (uint32_t*)value); + return ucdr_deserialize_byte_4(mb, endianness, (uint32_t*)value); } -bool mc_deserialize_endian_double(mcBuffer* mb, const mcEndianness endianness, double* value) +bool ucdr_deserialize_endian_double(ucdrBuffer* mb, const ucdrEndianness endianness, double* value) { - return deserialize_byte_8(mb, endianness, (uint64_t*)value); + return ucdr_deserialize_byte_8(mb, endianness, (uint64_t*)value); } diff --git a/src/c/types/basic_internals.h b/src/c/types/basic_internals.h index 2be43ae..5197076 100644 --- a/src/c/types/basic_internals.h +++ b/src/c/types/basic_internals.h @@ -24,15 +24,15 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -bool serialize_byte_1(mcBuffer* buffer, const uint8_t* byte); -bool serialize_byte_2(mcBuffer* buffer, mcEndianness endianness, const uint16_t* bytes); -bool serialize_byte_4(mcBuffer* buffer, mcEndianness endianness, const uint32_t* bytes); -bool serialize_byte_8(mcBuffer* buffer, mcEndianness endianness, const uint64_t* bytes); +bool ucdr_serialize_byte_1(ucdrBuffer* buffer, const uint8_t* byte); +bool ucdr_serialize_byte_2(ucdrBuffer* buffer, ucdrEndianness endianness, const uint16_t* bytes); +bool ucdr_serialize_byte_4(ucdrBuffer* buffer, ucdrEndianness endianness, const uint32_t* bytes); +bool ucdr_serialize_byte_8(ucdrBuffer* buffer, ucdrEndianness endianness, const uint64_t* bytes); -bool deserialize_byte_1(mcBuffer* buffer, uint8_t* byte); -bool deserialize_byte_2(mcBuffer* buffer, mcEndianness endianness, uint16_t* bytes); -bool deserialize_byte_4(mcBuffer* buffer, mcEndianness endianness, uint32_t* bytes); -bool deserialize_byte_8(mcBuffer* buffer, mcEndianness endianness, uint64_t* bytes); +bool ucdr_deserialize_byte_1(ucdrBuffer* buffer, uint8_t* byte); +bool ucdr_deserialize_byte_2(ucdrBuffer* buffer, ucdrEndianness endianness, uint16_t* bytes); +bool ucdr_deserialize_byte_4(ucdrBuffer* buffer, ucdrEndianness endianness, uint32_t* bytes); +bool ucdr_deserialize_byte_8(ucdrBuffer* buffer, ucdrEndianness endianness, uint64_t* bytes); #ifdef __cplusplus } diff --git a/src/c/types/sequence.c b/src/c/types/sequence.c index 922cef9..25ce65d 100644 --- a/src/c/types/sequence.c +++ b/src/c/types/sequence.c @@ -22,9 +22,9 @@ // ------------------------------------------------------------------- // INTERNAL UTIL IMPLEMENTATION // ------------------------------------------------------------------- -static inline void deserialize_sequence_header(mcBuffer* mb, mcEndianness endianness, uint32_t capacity, uint32_t* size) +static inline void ucdr_deserialize_sequence_header(ucdrBuffer* mb, ucdrEndianness endianness, uint32_t capacity, uint32_t* size) { - mc_deserialize_endian_uint32_t(mb, endianness, size); + ucdr_deserialize_endian_uint32_t(mb, endianness, size); if(*size > capacity) { mb->error = true; @@ -34,295 +34,295 @@ static inline void deserialize_sequence_header(mcBuffer* mb, mcEndianness endian // ------------------------------------------------------------------- // INTERNAL SERIALIZATION IMPLEMENTATION // ------------------------------------------------------------------- -bool serialize_sequence_byte_1(mcBuffer* mb, mcEndianness endianness, const uint8_t* array, const uint32_t size) +bool ucdr_serialize_sequence_byte_1(ucdrBuffer* mb, ucdrEndianness endianness, const uint8_t* array, const uint32_t size) { - mc_serialize_endian_uint32_t(mb, endianness, size); - return serialize_array_byte_1(mb, array, size); + ucdr_serialize_endian_uint32_t(mb, endianness, size); + return ucdr_serialize_array_byte_1(mb, array, size); } -bool serialize_sequence_byte_2(mcBuffer* mb, mcEndianness endianness, const uint16_t* array, const uint32_t size) +bool ucdr_serialize_sequence_byte_2(ucdrBuffer* mb, ucdrEndianness endianness, const uint16_t* array, const uint32_t size) { - mc_serialize_endian_uint32_t(mb, endianness, size); - return serialize_array_byte_2(mb, endianness, array, size); + ucdr_serialize_endian_uint32_t(mb, endianness, size); + return ucdr_serialize_array_byte_2(mb, endianness, array, size); } -bool serialize_sequence_byte_4(mcBuffer* mb, mcEndianness endianness, const uint32_t* array, const uint32_t size) +bool ucdr_serialize_sequence_byte_4(ucdrBuffer* mb, ucdrEndianness endianness, const uint32_t* array, const uint32_t size) { - mc_serialize_endian_uint32_t(mb, endianness, size); - return serialize_array_byte_4(mb, endianness, array, size); + ucdr_serialize_endian_uint32_t(mb, endianness, size); + return ucdr_serialize_array_byte_4(mb, endianness, array, size); } -bool serialize_sequence_byte_8(mcBuffer* mb, mcEndianness endianness, const uint64_t* array, const uint32_t size) +bool ucdr_serialize_sequence_byte_8(ucdrBuffer* mb, ucdrEndianness endianness, const uint64_t* array, const uint32_t size) { - mc_serialize_endian_uint32_t(mb, endianness, size); - return serialize_array_byte_8(mb, endianness, array, size); + ucdr_serialize_endian_uint32_t(mb, endianness, size); + return ucdr_serialize_array_byte_8(mb, endianness, array, size); } -bool deserialize_sequence_byte_1(mcBuffer* mb, mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_byte_1(ucdrBuffer* mb, ucdrEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_sequence_header(mb, endianness, array_capacity, size); - return deserialize_array_byte_1(mb, array, *size); + ucdr_deserialize_sequence_header(mb, endianness, array_capacity, size); + return ucdr_deserialize_array_byte_1(mb, array, *size); } -bool deserialize_sequence_byte_2(mcBuffer* mb, mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_byte_2(ucdrBuffer* mb, ucdrEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_sequence_header(mb, endianness, array_capacity, size); - return deserialize_array_byte_2(mb, endianness, array, *size); + ucdr_deserialize_sequence_header(mb, endianness, array_capacity, size); + return ucdr_deserialize_array_byte_2(mb, endianness, array, *size); } -bool deserialize_sequence_byte_4(mcBuffer* mb, mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_byte_4(ucdrBuffer* mb, ucdrEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_sequence_header(mb, endianness, array_capacity, size); - return deserialize_array_byte_4(mb, endianness, array, *size); + ucdr_deserialize_sequence_header(mb, endianness, array_capacity, size); + return ucdr_deserialize_array_byte_4(mb, endianness, array, *size); } -bool deserialize_sequence_byte_8(mcBuffer* mb, mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_byte_8(ucdrBuffer* mb, ucdrEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { - deserialize_sequence_header(mb, endianness, array_capacity, size); - return deserialize_array_byte_8(mb, endianness, array, *size); + ucdr_deserialize_sequence_header(mb, endianness, array_capacity, size); + return ucdr_deserialize_array_byte_8(mb, endianness, array, *size); } // ------------------------------------------------------------------- // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool mc_serialize_sequence_char(mcBuffer* mb, const char* array, const uint32_t size) +bool ucdr_serialize_sequence_char(ucdrBuffer* mb, const char* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool mc_serialize_sequence_bool(mcBuffer* mb, const bool* array, const uint32_t size) +bool ucdr_serialize_sequence_bool(ucdrBuffer* mb, const bool* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool mc_serialize_sequence_uint8_t(mcBuffer* mb, const uint8_t* array, const uint32_t size) +bool ucdr_serialize_sequence_uint8_t(ucdrBuffer* mb, const uint8_t* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool mc_serialize_sequence_uint16_t(mcBuffer* mb, const uint16_t* array, const uint32_t size) +bool ucdr_serialize_sequence_uint16_t(ucdrBuffer* mb, const uint16_t* array, const uint32_t size) { - return serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); + return ucdr_serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool mc_serialize_sequence_uint32_t(mcBuffer* mb, const uint32_t* array, const uint32_t size) +bool ucdr_serialize_sequence_uint32_t(ucdrBuffer* mb, const uint32_t* array, const uint32_t size) { - return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); + return ucdr_serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool mc_serialize_sequence_uint64_t(mcBuffer* mb, const uint64_t* array, const uint32_t size) +bool ucdr_serialize_sequence_uint64_t(ucdrBuffer* mb, const uint64_t* array, const uint32_t size) { - return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); + return ucdr_serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool mc_serialize_sequence_int8_t(mcBuffer* mb, const int8_t* array, const uint32_t size) +bool ucdr_serialize_sequence_int8_t(ucdrBuffer* mb, const int8_t* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, size); } -bool mc_serialize_sequence_int16_t(mcBuffer* mb, const int16_t* array, const uint32_t size) +bool ucdr_serialize_sequence_int16_t(ucdrBuffer* mb, const int16_t* array, const uint32_t size) { - return serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); + return ucdr_serialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, size); } -bool mc_serialize_sequence_int32_t(mcBuffer* mb, const int32_t* array, const uint32_t size) +bool ucdr_serialize_sequence_int32_t(ucdrBuffer* mb, const int32_t* array, const uint32_t size) { - return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); + return ucdr_serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool mc_serialize_sequence_int64_t(mcBuffer* mb, const int64_t* array, const uint32_t size) +bool ucdr_serialize_sequence_int64_t(ucdrBuffer* mb, const int64_t* array, const uint32_t size) { - return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); + return ucdr_serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool mc_serialize_sequence_float(mcBuffer* mb, const float* array, const uint32_t size) +bool ucdr_serialize_sequence_float(ucdrBuffer* mb, const float* array, const uint32_t size) { - return serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); + return ucdr_serialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, size); } -bool mc_serialize_sequence_double(mcBuffer* mb, const double* array, const uint32_t size) +bool ucdr_serialize_sequence_double(ucdrBuffer* mb, const double* array, const uint32_t size) { - return serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); + return ucdr_serialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, size); } -bool mc_deserialize_sequence_char(mcBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_char(ucdrBuffer* mb, char* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_bool(mcBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_bool(ucdrBuffer* mb, bool* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_uint8_t(mcBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_uint8_t(ucdrBuffer* mb, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_uint16_t(mcBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_uint16_t(ucdrBuffer* mb, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_uint32_t(mcBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_uint32_t(ucdrBuffer* mb, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_uint64_t(mcBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_uint64_t(ucdrBuffer* mb, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_int8_t(mcBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_int8_t(ucdrBuffer* mb, int8_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, mb->endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_int16_t(mcBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_int16_t(ucdrBuffer* mb, int16_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_2(mb, mb->endianness, (uint16_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_int32_t(mcBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_int32_t(ucdrBuffer* mb, int32_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_int64_t(mcBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_int64_t(ucdrBuffer* mb, int64_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_float(mcBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_float(ucdrBuffer* mb, float* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_4(mb, mb->endianness, (uint32_t*)array, array_capacity, size); } -bool mc_deserialize_sequence_double(mcBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_sequence_double(ucdrBuffer* mb, double* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_8(mb, mb->endianness, (uint64_t*)array, array_capacity, size); } -bool mc_serialize_endian_sequence_char(mcBuffer* mb, const mcEndianness endianness, const char* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_char(ucdrBuffer* mb, const ucdrEndianness endianness, const char* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool mc_serialize_endian_sequence_bool(mcBuffer* mb, const mcEndianness endianness, const bool* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_bool(ucdrBuffer* mb, const ucdrEndianness endianness, const bool* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool mc_serialize_endian_sequence_uint8_t(mcBuffer* mb, const mcEndianness endianness, const uint8_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_uint8_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint8_t* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool mc_serialize_endian_sequence_uint16_t(mcBuffer* mb, const mcEndianness endianness, const uint16_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_uint16_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint16_t* array, const uint32_t size) { - return serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); + return ucdr_serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); } -bool mc_serialize_endian_sequence_uint32_t(mcBuffer* mb, const mcEndianness endianness, const uint32_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_uint32_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint32_t* array, const uint32_t size) { - return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); + return ucdr_serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool mc_serialize_endian_sequence_uint64_t(mcBuffer* mb, const mcEndianness endianness, const uint64_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_uint64_t(ucdrBuffer* mb, const ucdrEndianness endianness, const uint64_t* array, const uint32_t size) { - return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); + return ucdr_serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool mc_serialize_endian_sequence_int8_t(mcBuffer* mb, const mcEndianness endianness, const int8_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_int8_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int8_t* array, const uint32_t size) { - return serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); + return ucdr_serialize_sequence_byte_1(mb, endianness, (uint8_t*)array, size); } -bool mc_serialize_endian_sequence_int16_t(mcBuffer* mb, const mcEndianness endianness, const int16_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_int16_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int16_t* array, const uint32_t size) { - return serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); + return ucdr_serialize_sequence_byte_2(mb, endianness, (uint16_t*)array, size); } -bool mc_serialize_endian_sequence_int32_t(mcBuffer* mb, const mcEndianness endianness, const int32_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_int32_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int32_t* array, const uint32_t size) { - return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); + return ucdr_serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool mc_serialize_endian_sequence_int64_t(mcBuffer* mb, const mcEndianness endianness, const int64_t* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_int64_t(ucdrBuffer* mb, const ucdrEndianness endianness, const int64_t* array, const uint32_t size) { - return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); + return ucdr_serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool mc_serialize_endian_sequence_float(mcBuffer* mb, const mcEndianness endianness, const float* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_float(ucdrBuffer* mb, const ucdrEndianness endianness, const float* array, const uint32_t size) { - return serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); + return ucdr_serialize_sequence_byte_4(mb, endianness, (uint32_t*)array, size); } -bool mc_serialize_endian_sequence_double(mcBuffer* mb, const mcEndianness endianness, const double* array, const uint32_t size) +bool ucdr_serialize_endian_sequence_double(ucdrBuffer* mb, const ucdrEndianness endianness, const double* array, const uint32_t size) { - return serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); + return ucdr_serialize_sequence_byte_8(mb, endianness, (uint64_t*)array, size); } -bool mc_deserialize_endian_sequence_char(mcBuffer* mb, const mcEndianness endianness, char* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_char(ucdrBuffer* mb, const ucdrEndianness endianness, char* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_bool(mcBuffer* mb, const mcEndianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_bool(ucdrBuffer* mb, const ucdrEndianness endianness, bool* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_uint8_t(mcBuffer* mb, const mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_uint8_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_uint16_t(mcBuffer* mb, const mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_uint16_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_uint32_t(mcBuffer* mb, const mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_uint32_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_uint64_t(mcBuffer* mb, const mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_uint64_t(ucdrBuffer* mb, const ucdrEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_int8_t(mcBuffer* mb, const mcEndianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_int8_t(ucdrBuffer* mb, const ucdrEndianness endianness, int8_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_1(mb, endianness, (uint8_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_int16_t(mcBuffer* mb, const mcEndianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_int16_t(ucdrBuffer* mb, const ucdrEndianness endianness, int16_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_2(mb, endianness, (uint16_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_int32_t(mcBuffer* mb, const mcEndianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_int32_t(ucdrBuffer* mb, const ucdrEndianness endianness, int32_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_int64_t(mcBuffer* mb, const mcEndianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_int64_t(ucdrBuffer* mb, const ucdrEndianness endianness, int64_t* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_float(mcBuffer* mb, const mcEndianness endianness, float* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_float(ucdrBuffer* mb, const ucdrEndianness endianness, float* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_4(mb, endianness, (uint32_t*)array, array_capacity, size); } -bool mc_deserialize_endian_sequence_double(mcBuffer* mb, const mcEndianness endianness, double* array, const uint32_t array_capacity, uint32_t* size) +bool ucdr_deserialize_endian_sequence_double(ucdrBuffer* mb, const ucdrEndianness endianness, double* array, const uint32_t array_capacity, uint32_t* size) { - return deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); + return ucdr_deserialize_sequence_byte_8(mb, endianness, (uint64_t*)array, array_capacity, size); } diff --git a/src/c/types/sequence_internals.h b/src/c/types/sequence_internals.h index 39048c6..b5365df 100644 --- a/src/c/types/sequence_internals.h +++ b/src/c/types/sequence_internals.h @@ -26,15 +26,15 @@ extern "C" { // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS // ------------------------------------------------------------------- -bool serialize_sequence_byte_1(mcBuffer* buffer, mcEndianness endianness, const uint8_t* array, const uint32_t size); -bool serialize_sequence_byte_2(mcBuffer* buffer, mcEndianness endianness, const uint16_t* array, const uint32_t size); -bool serialize_sequence_byte_4(mcBuffer* buffer, mcEndianness endianness, const uint32_t* array, const uint32_t size); -bool serialize_sequence_byte_8(mcBuffer* buffer, mcEndianness endianness, const uint64_t* array, const uint32_t size); - -bool deserialize_sequence_byte_1(mcBuffer* buffer, mcEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); -bool deserialize_sequence_byte_2(mcBuffer* buffer, mcEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); -bool deserialize_sequence_byte_4(mcBuffer* buffer, mcEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); -bool deserialize_sequence_byte_8(mcBuffer* buffer, mcEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); +bool ucdr_serialize_sequence_byte_1(ucdrBuffer* buffer, ucdrEndianness endianness, const uint8_t* array, const uint32_t size); +bool ucdr_serialize_sequence_byte_2(ucdrBuffer* buffer, ucdrEndianness endianness, const uint16_t* array, const uint32_t size); +bool ucdr_serialize_sequence_byte_4(ucdrBuffer* buffer, ucdrEndianness endianness, const uint32_t* array, const uint32_t size); +bool ucdr_serialize_sequence_byte_8(ucdrBuffer* buffer, ucdrEndianness endianness, const uint64_t* array, const uint32_t size); + +bool ucdr_deserialize_sequence_byte_1(ucdrBuffer* buffer, ucdrEndianness endianness, uint8_t* array, const uint32_t array_capacity, uint32_t* size); +bool ucdr_deserialize_sequence_byte_2(ucdrBuffer* buffer, ucdrEndianness endianness, uint16_t* array, const uint32_t array_capacity, uint32_t* size); +bool ucdr_deserialize_sequence_byte_4(ucdrBuffer* buffer, ucdrEndianness endianness, uint32_t* array, const uint32_t array_capacity, uint32_t* size); +bool ucdr_deserialize_sequence_byte_8(ucdrBuffer* buffer, ucdrEndianness endianness, uint64_t* array, const uint32_t array_capacity, uint32_t* size); #ifdef __cplusplus } diff --git a/src/c/types/string.c b/src/c/types/string.c index 7709d4c..78ce35b 100644 --- a/src/c/types/string.c +++ b/src/c/types/string.c @@ -22,24 +22,24 @@ // PUBLIC SERIALIZATION IMPLEMENTATIONS // ------------------------------------------------------------------- -bool mc_serialize_string(mcBuffer* mb, const char* string) +bool ucdr_serialize_string(ucdrBuffer* mb, const char* string) { - return mc_serialize_sequence_char(mb, string, (uint32_t)strlen(string) + 1); + return ucdr_serialize_sequence_char(mb, string, (uint32_t)strlen(string) + 1); } -bool mc_deserialize_string(mcBuffer* mb, char* string, const uint32_t string_capacity) +bool ucdr_deserialize_string(ucdrBuffer* mb, char* string, const uint32_t string_capacity) { uint32_t length; - return mc_deserialize_sequence_char(mb, string, string_capacity, &length); + return ucdr_deserialize_sequence_char(mb, string, string_capacity, &length); } -bool mc_serialize_endian_string(mcBuffer* mb, mcEndianness endianness, const char* string) +bool ucdr_serialize_endian_string(ucdrBuffer* mb, ucdrEndianness endianness, const char* string) { - return mc_serialize_endian_sequence_char(mb, endianness, string, (uint32_t)strlen(string) + 1); + return ucdr_serialize_endian_sequence_char(mb, endianness, string, (uint32_t)strlen(string) + 1); } -bool mc_deserialize_endian_string(mcBuffer* mb, mcEndianness endianness, char* string, const uint32_t string_capacity) +bool ucdr_deserialize_endian_string(ucdrBuffer* mb, ucdrEndianness endianness, char* string, const uint32_t string_capacity) { uint32_t length; - return mc_deserialize_endian_sequence_char(mb, endianness, string, string_capacity, &length); + return ucdr_deserialize_endian_sequence_char(mb, endianness, string, string_capacity, &length); } diff --git a/test/Alignment.cpp b/test/Alignment.cpp index e6e9a2f..f7d782e 100644 --- a/test/Alignment.cpp +++ b/test/Alignment.cpp @@ -29,8 +29,8 @@ class Alignment : public BasicSerialization, public ::testing::WithParamInterfac void check_alignment(int alignment) { - EXPECT_EQ(static_cast(mc_buffer_length(&writer)) % alignment, 0); - EXPECT_EQ(static_cast(mc_buffer_length(&reader)) % alignment, 0); + EXPECT_EQ(static_cast(ucdr_buffer_length(&writer)) % alignment, 0); + EXPECT_EQ(static_cast(ucdr_buffer_length(&reader)) % alignment, 0); } virtual ~Alignment() diff --git a/test/FullBuffer.cpp b/test/FullBuffer.cpp index 2ce469e..394e977 100644 --- a/test/FullBuffer.cpp +++ b/test/FullBuffer.cpp @@ -37,8 +37,8 @@ class FullBuffer : public BasicSerialization uint8_t input = 0xAA; uint8_t output = 0; - EXPECT_FALSE(mc_serialize_uint8_t(&writer, input)); - EXPECT_FALSE(mc_deserialize_uint8_t(&reader, &output)); + EXPECT_FALSE(ucdr_serialize_uint8_t(&writer, input)); + EXPECT_FALSE(ucdr_deserialize_uint8_t(&reader, &output)); } void try_block_2() @@ -46,8 +46,8 @@ class FullBuffer : public BasicSerialization uint16_t input = 0xAABB; uint16_t output = 0; - EXPECT_FALSE(mc_serialize_uint16_t(&writer, input)); - EXPECT_FALSE(mc_deserialize_uint16_t(&reader, &output)); + EXPECT_FALSE(ucdr_serialize_uint16_t(&writer, input)); + EXPECT_FALSE(ucdr_deserialize_uint16_t(&reader, &output)); } void try_block_4() @@ -55,8 +55,8 @@ class FullBuffer : public BasicSerialization uint32_t input = 0xAABBCCDD; uint32_t output = 0; - EXPECT_FALSE(mc_serialize_uint32_t(&writer, input)); - EXPECT_FALSE(mc_deserialize_uint32_t(&reader, &output)); + EXPECT_FALSE(ucdr_serialize_uint32_t(&writer, input)); + EXPECT_FALSE(ucdr_deserialize_uint32_t(&reader, &output)); } void try_block_8() @@ -64,8 +64,8 @@ class FullBuffer : public BasicSerialization uint64_t input = 0x0123456789ABCDEF; uint64_t output = 0; - EXPECT_FALSE(mc_serialize_uint64_t(&writer, input)); - EXPECT_FALSE(mc_deserialize_uint64_t(&reader, &output)); + EXPECT_FALSE(ucdr_serialize_uint64_t(&writer, input)); + EXPECT_FALSE(ucdr_deserialize_uint64_t(&reader, &output)); } ~FullBuffer() diff --git a/test/SequenceOverflow.cpp b/test/SequenceOverflow.cpp index 285379d..ca35a14 100644 --- a/test/SequenceOverflow.cpp +++ b/test/SequenceOverflow.cpp @@ -27,7 +27,7 @@ class SequenceOverflow : public SequenceSerialization ~SequenceOverflow() { //4 because of the sequence header (no necessary padding) - EXPECT_EQ(mc_buffer_length(&reader), 4u); + EXPECT_EQ(ucdr_buffer_length(&reader), 4u); EXPECT_TRUE(reader.error); // To satisfy the base destructor @@ -43,8 +43,8 @@ TEST_F(SequenceOverflow, Block1) uint8_t input[SEQUENCE_SIZE_OVERFLOW]; uint8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint8_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(mc_deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint8_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(ucdr_deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); } TEST_F(SequenceOverflow, Block2) @@ -52,8 +52,8 @@ TEST_F(SequenceOverflow, Block2) uint16_t input[SEQUENCE_SIZE_OVERFLOW]; uint16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint16_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(mc_deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint16_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(ucdr_deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); } TEST_F(SequenceOverflow, Block4) @@ -61,8 +61,8 @@ TEST_F(SequenceOverflow, Block4) uint32_t input[SEQUENCE_SIZE_OVERFLOW]; uint32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint32_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(mc_deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint32_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(ucdr_deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); } TEST_F(SequenceOverflow, Block8) @@ -70,7 +70,7 @@ TEST_F(SequenceOverflow, Block8) uint64_t input[SEQUENCE_SIZE_OVERFLOW]; uint64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint64_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); - EXPECT_FALSE(mc_deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint64_t(&writer, input, SEQUENCE_SIZE_OVERFLOW)); + EXPECT_FALSE(ucdr_deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); } diff --git a/test/endianness/ArrayEndianness.cpp b/test/endianness/ArrayEndianness.cpp index ff8bea3..d19eade 100644 --- a/test/endianness/ArrayEndianness.cpp +++ b/test/endianness/ArrayEndianness.cpp @@ -14,7 +14,7 @@ #include "../serialization/ArraySerialization.hpp" -class ArrayEndianness : public ArraySerialization, public ::testing::WithParamInterface +class ArrayEndianness : public ArraySerialization, public ::testing::WithParamInterface { public: @@ -28,7 +28,7 @@ class ArrayEndianness : public ArraySerialization, public ::testing::WithParamIn } protected: - mcEndianness endianness; + ucdrEndianness endianness; }; TEST_P(ArrayEndianness, Int16) @@ -37,8 +37,8 @@ TEST_P(ArrayEndianness, Int16) std::fill_n(input, ARRAY_SIZE, int16_t(0x0A0B)); int16_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_int16_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_int16_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_int16_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_int16_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -49,8 +49,8 @@ TEST_P(ArrayEndianness, Uint16) std::fill_n(input, ARRAY_SIZE, uint16_t(0x0A0Bu)); uint16_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_uint16_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_uint16_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_uint16_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_uint16_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -61,8 +61,8 @@ TEST_P(ArrayEndianness, Int32) std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); int32_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_int32_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_int32_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_int32_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_int32_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -73,8 +73,8 @@ TEST_P(ArrayEndianness, Uint32) std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); uint32_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_uint32_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_uint32_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_uint32_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_uint32_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -85,8 +85,8 @@ TEST_P(ArrayEndianness, Int64) std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); int64_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_int64_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_int64_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_int64_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_int64_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -97,8 +97,8 @@ TEST_P(ArrayEndianness, Uint64) std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); uint64_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_uint64_t(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_uint64_t(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_uint64_t(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_uint64_t(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -109,8 +109,8 @@ TEST_P(ArrayEndianness, Float) std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462f); float output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_float(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_float(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_float(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_float(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -121,10 +121,10 @@ TEST_P(ArrayEndianness, Double) std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462); double output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_endian_array_double(&writer, endianness, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_array_double(&reader, endianness, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_endian_array_double(&writer, endianness, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_array_double(&reader, endianness, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } -INSTANTIATE_TEST_CASE_P(mcEndianness, ArrayEndianness, ::testing::Values(MC_LITTLE_ENDIANNESS, MC_BIG_ENDIANNESS)); +INSTANTIATE_TEST_CASE_P(ucdrEndianness, ArrayEndianness, ::testing::Values(UCDR_LITTLE_ENDIANNESS, UCDR_BIG_ENDIANNESS)); diff --git a/test/endianness/BasicEndianness.cpp b/test/endianness/BasicEndianness.cpp index fc56060..93f4ec7 100644 --- a/test/endianness/BasicEndianness.cpp +++ b/test/endianness/BasicEndianness.cpp @@ -14,7 +14,7 @@ #include "../serialization/BasicSerialization.hpp" -class BasicEndianness : public BasicSerialization, public ::testing::WithParamInterface +class BasicEndianness : public BasicSerialization, public ::testing::WithParamInterface { public: @@ -28,7 +28,7 @@ class BasicEndianness : public BasicSerialization, public ::testing::WithParamIn } protected: - mcEndianness endianness; + ucdrEndianness endianness; }; TEST_P(BasicEndianness, Int16) @@ -36,8 +36,8 @@ TEST_P(BasicEndianness, Int16) int16_t input = 0x0A0B; int16_t output = 0; - EXPECT_TRUE(mc_serialize_endian_int16_t(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_int16_t(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_int16_t(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_int16_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -47,8 +47,8 @@ TEST_P(BasicEndianness, Uint16) uint16_t input = 0x0A0B; uint16_t output = 0; - EXPECT_TRUE(mc_serialize_endian_uint16_t(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_uint16_t(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_uint16_t(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_uint16_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -58,8 +58,8 @@ TEST_P(BasicEndianness, Int32) int32_t input = 0x0C0D0E0F; int32_t output = 0; - EXPECT_TRUE(mc_serialize_endian_int32_t(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_int32_t(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_int32_t(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_int32_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -69,8 +69,8 @@ TEST_P(BasicEndianness, Uint32) uint32_t input = 0x0C0D0E0F; uint32_t output = 0; - EXPECT_TRUE(mc_serialize_endian_uint32_t(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_uint32_t(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_uint32_t(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_uint32_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -80,8 +80,8 @@ TEST_P(BasicEndianness, Int64) int64_t input = 0x0102030405060708L; int64_t output = 0; - EXPECT_TRUE(mc_serialize_endian_int64_t(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_int64_t(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_int64_t(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_int64_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -91,8 +91,8 @@ TEST_P(BasicEndianness, Uint64) uint64_t input = 0x0102030405060708L; uint64_t output = 0; - EXPECT_TRUE(mc_serialize_endian_uint64_t(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_uint64_t(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_uint64_t(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_uint64_t(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -102,8 +102,8 @@ TEST_P(BasicEndianness, Float) float input = 3.141592653589793238462f; float output = 0; - EXPECT_TRUE(mc_serialize_endian_float(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_float(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_float(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_float(&reader, endianness, &output)); EXPECT_EQ(input, output); } @@ -113,10 +113,10 @@ TEST_P(BasicEndianness, Double) double input = 3.141592653589793238462; double output = 0; - EXPECT_TRUE(mc_serialize_endian_double(&writer, endianness, input)); - EXPECT_TRUE(mc_deserialize_endian_double(&reader, endianness, &output)); + EXPECT_TRUE(ucdr_serialize_endian_double(&writer, endianness, input)); + EXPECT_TRUE(ucdr_deserialize_endian_double(&reader, endianness, &output)); EXPECT_EQ(input, output); } -INSTANTIATE_TEST_CASE_P(mcEndianness, BasicEndianness, ::testing::Values(MC_LITTLE_ENDIANNESS, MC_BIG_ENDIANNESS)); +INSTANTIATE_TEST_CASE_P(ucdrEndianness, BasicEndianness, ::testing::Values(UCDR_LITTLE_ENDIANNESS, UCDR_BIG_ENDIANNESS)); diff --git a/test/endianness/SequenceEndianness.cpp b/test/endianness/SequenceEndianness.cpp index 765d03e..3043ba1 100644 --- a/test/endianness/SequenceEndianness.cpp +++ b/test/endianness/SequenceEndianness.cpp @@ -14,7 +14,7 @@ #include "../serialization/SequenceSerialization.hpp" -class SequenceEndianness : public SequenceSerialization, public ::testing::WithParamInterface +class SequenceEndianness : public SequenceSerialization, public ::testing::WithParamInterface { public: @@ -29,7 +29,7 @@ class SequenceEndianness : public SequenceSerialization, public ::testing::WithP protected: - mcEndianness endianness; + ucdrEndianness endianness; }; TEST_P(SequenceEndianness, Bool) @@ -38,8 +38,8 @@ TEST_P(SequenceEndianness, Bool) std::fill_n(input, SEQUENCE_SIZE, true); bool output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_bool(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_bool(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_bool(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_bool(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -50,8 +50,8 @@ TEST_P(SequenceEndianness, Char) std::fill_n(input, SEQUENCE_SIZE, 'A'); char output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_char(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_char(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_char(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_char(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -62,8 +62,8 @@ TEST_P(SequenceEndianness, Int8) std::fill_n(input, SEQUENCE_SIZE, int8_t(0x09)); int8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_int8_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_int8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_int8_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_int8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -74,8 +74,8 @@ TEST_P(SequenceEndianness, Uint8) std::fill_n(input, SEQUENCE_SIZE, uint8_t(0x09)); uint8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_uint8_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_uint8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_uint8_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_uint8_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -86,8 +86,8 @@ TEST_P(SequenceEndianness, Int16) std::fill_n(input, SEQUENCE_SIZE, int16_t(0x0A0B)); int16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_int16_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_int16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_int16_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_int16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -98,8 +98,8 @@ TEST_P(SequenceEndianness, Uint16) std::fill_n(input, SEQUENCE_SIZE, uint16_t(0x0A0B)); uint16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_uint16_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_uint16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_uint16_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_uint16_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -110,8 +110,8 @@ TEST_P(SequenceEndianness, Int32) std::fill_n(input, SEQUENCE_SIZE, 0x0A0B0C0D); int32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_int32_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_int32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_int32_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_int32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -122,8 +122,8 @@ TEST_P(SequenceEndianness, Uint32) std::fill_n(input, SEQUENCE_SIZE, 0x0A0B0C0D); uint32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_uint32_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_uint32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_uint32_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_uint32_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -134,8 +134,8 @@ TEST_P(SequenceEndianness, Int64) std::fill_n(input, SEQUENCE_SIZE, 0x0102030405060708L); int64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_int64_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_int64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_int64_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_int64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -146,8 +146,8 @@ TEST_P(SequenceEndianness, Uint64) std::fill_n(input, SEQUENCE_SIZE, 0x0102030405060708L); uint64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_uint64_t(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_uint64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_uint64_t(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_uint64_t(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -158,8 +158,8 @@ TEST_P(SequenceEndianness, Float) std::fill_n(input, SEQUENCE_SIZE, 3.141592653589793238462f); float output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_float(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_float(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_float(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_float(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } @@ -170,10 +170,10 @@ TEST_P(SequenceEndianness, Double) std::fill_n(input, SEQUENCE_SIZE, 3.141592653589793238462); double output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_endian_sequence_double(&writer, endianness, input, SEQUENCE_SIZE)); - EXPECT_TRUE(mc_deserialize_endian_sequence_double(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_endian_sequence_double(&writer, endianness, input, SEQUENCE_SIZE)); + EXPECT_TRUE(ucdr_deserialize_endian_sequence_double(&reader, endianness, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, SEQUENCE_SIZE)); } -INSTANTIATE_TEST_CASE_P(mcEndianness, SequenceEndianness, ::testing::Values(MC_LITTLE_ENDIANNESS, MC_BIG_ENDIANNESS)); +INSTANTIATE_TEST_CASE_P(ucdrEndianness, SequenceEndianness, ::testing::Values(UCDR_LITTLE_ENDIANNESS, UCDR_BIG_ENDIANNESS)); diff --git a/test/serialization/ArraySerialization.hpp b/test/serialization/ArraySerialization.hpp index d4c637a..651f081 100644 --- a/test/serialization/ArraySerialization.hpp +++ b/test/serialization/ArraySerialization.hpp @@ -37,8 +37,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, true); bool output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_bool(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_bool(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_bool(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_bool(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -49,8 +49,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 'A'); char output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_char(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_char(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_char(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_char(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -61,8 +61,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, int8_t(0x09)); int8_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_int8_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_int8_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_int8_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_int8_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -73,8 +73,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, uint8_t(0x09)); uint8_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_uint8_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_uint8_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_uint8_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_uint8_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -85,8 +85,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, int16_t(0x0A0B)); int16_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_int16_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_int16_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_int16_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_int16_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -97,8 +97,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, uint16_t(0x0A0B)); uint16_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_uint16_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_uint16_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_uint16_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_uint16_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -109,8 +109,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); int32_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_int32_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_int32_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_int32_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_int32_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -121,8 +121,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0C0D0E0F); uint32_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_uint32_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_uint32_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_uint32_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_uint32_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -133,8 +133,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); int64_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_int64_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_int64_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_int64_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_int64_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -145,8 +145,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 0x0102030405060708L); uint64_t output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_uint64_t(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_uint64_t(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_uint64_t(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_uint64_t(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -157,8 +157,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462f); float output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_float(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_float(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_float(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_float(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } @@ -169,8 +169,8 @@ class ArraySerialization : public BasicSerialization std::fill_n(input, ARRAY_SIZE, 3.141592653589793238462); double output[ARRAY_SIZE]; - EXPECT_TRUE(mc_serialize_array_double(&writer, input, ARRAY_SIZE)); - EXPECT_TRUE(mc_deserialize_array_double(&reader, output, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_serialize_array_double(&writer, input, ARRAY_SIZE)); + EXPECT_TRUE(ucdr_deserialize_array_double(&reader, output, ARRAY_SIZE)); EXPECT_TRUE(0 == std::memcmp(input, output, ARRAY_SIZE)); } diff --git a/test/serialization/BasicSerialization.hpp b/test/serialization/BasicSerialization.hpp index e7d3247..6216b6f 100644 --- a/test/serialization/BasicSerialization.hpp +++ b/test/serialization/BasicSerialization.hpp @@ -29,8 +29,8 @@ class BasicSerialization : public ::testing::Test BasicSerialization() { std::memset(buffer, 0, BUFFER_LENGTH); - mc_init_buffer(&writer, buffer, BUFFER_LENGTH); - mc_init_buffer(&reader, buffer, BUFFER_LENGTH); + ucdr_init_buffer(&writer, buffer, BUFFER_LENGTH); + ucdr_init_buffer(&reader, buffer, BUFFER_LENGTH); } void check_data_size(uint32_t data_size) @@ -51,8 +51,8 @@ class BasicSerialization : public ::testing::Test bool input = true; bool output = 0; - EXPECT_TRUE(mc_serialize_bool(&writer, input)); - EXPECT_TRUE(mc_deserialize_bool(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_bool(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_bool(&reader, &output)); EXPECT_EQ(input, output); @@ -64,8 +64,8 @@ class BasicSerialization : public ::testing::Test char input = 'A'; char output = 0; - EXPECT_TRUE(mc_serialize_char(&writer, input)); - EXPECT_TRUE(mc_deserialize_char(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_char(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_char(&reader, &output)); EXPECT_EQ(input, output); check_data_size(1); @@ -76,8 +76,8 @@ class BasicSerialization : public ::testing::Test int8_t input = 0x09; int8_t output = 0; - EXPECT_TRUE(mc_serialize_int8_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_int8_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_int8_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_int8_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(1); @@ -88,8 +88,8 @@ class BasicSerialization : public ::testing::Test uint8_t input = 0x09; uint8_t output = 0; - EXPECT_TRUE(mc_serialize_uint8_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_uint8_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_uint8_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_uint8_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(1); @@ -100,8 +100,8 @@ class BasicSerialization : public ::testing::Test int16_t input = 0x0A0B; int16_t output = 0; - EXPECT_TRUE(mc_serialize_int16_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_int16_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_int16_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_int16_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(2); @@ -112,8 +112,8 @@ class BasicSerialization : public ::testing::Test uint16_t input = 0x0A0B; uint16_t output = 0; - EXPECT_TRUE(mc_serialize_uint16_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_uint16_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_uint16_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_uint16_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(2); @@ -124,8 +124,8 @@ class BasicSerialization : public ::testing::Test int32_t input = 0x0C0D0E0F; int32_t output = 0; - EXPECT_TRUE(mc_serialize_int32_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_int32_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_int32_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_int32_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(4); @@ -136,8 +136,8 @@ class BasicSerialization : public ::testing::Test uint32_t input = 0x0C0D0E0F; uint32_t output = 0; - EXPECT_TRUE(mc_serialize_uint32_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_uint32_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_uint32_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_uint32_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(4); @@ -148,8 +148,8 @@ class BasicSerialization : public ::testing::Test int64_t input = 0x0102030405060708L; int64_t output = 0; - EXPECT_TRUE(mc_serialize_int64_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_int64_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_int64_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_int64_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(8); @@ -160,8 +160,8 @@ class BasicSerialization : public ::testing::Test uint64_t input = 0x0102030405060708L; uint64_t output = 0; - EXPECT_TRUE(mc_serialize_uint64_t(&writer, input)); - EXPECT_TRUE(mc_deserialize_uint64_t(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_uint64_t(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_uint64_t(&reader, &output)); EXPECT_EQ(input, output); check_data_size(8); @@ -172,8 +172,8 @@ class BasicSerialization : public ::testing::Test float input = 3.141592653589793238462f; float output = 0; - EXPECT_TRUE(mc_serialize_float(&writer, input)); - EXPECT_TRUE(mc_deserialize_float(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_float(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_float(&reader, &output)); EXPECT_EQ(input, output); check_data_size(4); @@ -184,16 +184,16 @@ class BasicSerialization : public ::testing::Test double input = 3.141592653589793238462; double output = 0; - EXPECT_TRUE(mc_serialize_double(&writer, input)); - EXPECT_TRUE(mc_deserialize_double(&reader, &output)); + EXPECT_TRUE(ucdr_serialize_double(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_double(&reader, &output)); EXPECT_EQ(input, output); check_data_size(8); } protected: - mcBuffer writer; - mcBuffer reader; + ucdrBuffer writer; + ucdrBuffer reader; uint8_t buffer[BUFFER_LENGTH]; }; diff --git a/test/serialization/SequenceSerialization.hpp b/test/serialization/SequenceSerialization.hpp index db5440b..01d78a3 100644 --- a/test/serialization/SequenceSerialization.hpp +++ b/test/serialization/SequenceSerialization.hpp @@ -44,8 +44,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, true); bool output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_bool(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_bool(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_bool(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_bool(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -56,8 +56,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 'A'); char output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_char(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_char(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_char(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_char(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -68,8 +68,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, int8_t(0x09)); int8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_int8_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_int8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_int8_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_int8_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -80,8 +80,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, uint8_t(0x09)); uint8_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint8_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint8_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_uint8_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -92,8 +92,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, int16_t(0x0A0B)); int16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_int16_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_int16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_int16_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_int16_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -104,8 +104,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, uint16_t(0x0A0B)); uint16_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint16_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint16_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_uint16_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -116,8 +116,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0A0B0C0D); int32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_int32_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_int32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_int32_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_int32_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -128,8 +128,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0A0B0C0D); uint32_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint32_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint32_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_uint32_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -140,8 +140,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0102030405060708L); int64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_int64_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_int64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_int64_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_int64_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -152,8 +152,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 0x0102030405060708L); uint64_t output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_uint64_t(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_uint64_t(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_uint64_t(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -164,8 +164,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 3.141592653589793238462f); float output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_float(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_float(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_float(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_float(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } @@ -176,8 +176,8 @@ class SequenceSerialization : public ArraySerialization std::fill_n(input, sequence_size, 3.141592653589793238462); double output[ARRAY_CAPACITY]; - EXPECT_TRUE(mc_serialize_sequence_double(&writer, input, sequence_size)); - EXPECT_TRUE(mc_deserialize_sequence_double(&reader, output, ARRAY_CAPACITY, &output_size)); + EXPECT_TRUE(ucdr_serialize_sequence_double(&writer, input, sequence_size)); + EXPECT_TRUE(ucdr_deserialize_sequence_double(&reader, output, ARRAY_CAPACITY, &output_size)); EXPECT_TRUE(0 == std::memcmp(input, output, sequence_size)); } diff --git a/test/serialization/StringSerialization.hpp b/test/serialization/StringSerialization.hpp index 84dd51f..8f536bc 100644 --- a/test/serialization/StringSerialization.hpp +++ b/test/serialization/StringSerialization.hpp @@ -35,8 +35,8 @@ class StringSerialization : public BasicSerialization char input[MAX_STRING_LENGTH] = "This is a message test"; char output[MAX_STRING_LENGTH] = {0}; - EXPECT_TRUE(mc_serialize_string(&writer, input)); - EXPECT_TRUE(mc_deserialize_string(&reader, output, MAX_STRING_LENGTH)); + EXPECT_TRUE(ucdr_serialize_string(&writer, input)); + EXPECT_TRUE(ucdr_deserialize_string(&reader, output, MAX_STRING_LENGTH)); EXPECT_STREQ(input, output); } From 2f438e2faf08da12a6481efd164020fc33a7e559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Enrique=20Mu=C3=B1oz=20Mart=C3=ADn?= Date: Fri, 5 Oct 2018 11:42:52 +0200 Subject: [PATCH 6/9] #3451. Updated include path (#14) * #3451. Updated include path * Fixed cmake install --- CMakeLists.txt | 12 ++++++------ README.md | 2 +- examples/basic.c | 2 +- include/{microcdr => ucdr}/common.h | 4 ++-- include/{microcdr => ucdr}/config.h.in | 0 include/{microcdr => ucdr}/dll.h | 0 include/{microcdr => ucdr}/microcdr.h | 10 +++++----- include/{microcdr => ucdr}/types/array.h | 2 +- include/{microcdr => ucdr}/types/basic.h | 2 +- include/{microcdr => ucdr}/types/sequence.h | 2 +- include/{microcdr => ucdr}/types/string.h | 2 +- src/c/common.c | 2 +- src/c/common_internals.h | 2 +- src/c/types/array.c | 2 +- src/c/types/array_internals.h | 2 +- src/c/types/basic.c | 2 +- src/c/types/basic_internals.h | 2 +- src/c/types/sequence.c | 6 +++--- src/c/types/sequence_internals.h | 2 +- src/c/types/string.c | 4 ++-- test/serialization/BasicSerialization.hpp | 2 +- 21 files changed, 32 insertions(+), 32 deletions(-) rename include/{microcdr => ucdr}/common.h (97%) rename include/{microcdr => ucdr}/config.h.in (100%) rename include/{microcdr => ucdr}/dll.h (100%) rename include/{microcdr => ucdr}/microcdr.h (82%) rename include/{microcdr => ucdr}/types/array.h (99%) rename include/{microcdr => ucdr}/types/basic.h (99%) rename include/{microcdr => ucdr}/types/sequence.h (99%) rename include/{microcdr => ucdr}/types/string.h (98%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 33115dc..f9d6acb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,8 +121,8 @@ else() endif() # Config.h -configure_file(${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/config.h.in - ${PROJECT_BINARY_DIR}/include/${PROJECT_NAME}/config.h +configure_file(${PROJECT_SOURCE_DIR}/include/ucdr/config.h.in + ${PROJECT_BINARY_DIR}/include/ucdr/config.h ) ############################################################################### @@ -161,14 +161,14 @@ install(TARGETS ${PROJECT_NAME} ) # Install includes -install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/ - DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME} +install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ucdr/ + DESTINATION ${INCLUDE_INSTALL_DIR}/ucdr FILES_MATCHING PATTERN "*.h" ) # Install config.h -install(FILES ${PROJECT_BINARY_DIR}/include/${PROJECT_NAME}/config.h - DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME} +install(FILES ${PROJECT_BINARY_DIR}/include/ucdr/config.h + DESTINATION ${INCLUDE_INSTALL_DIR}/ucdr ) # Export library diff --git a/README.md b/README.md index 3e5f8fd..519809e 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This is a code example showing the serialization and deserialization of a string As *MicroCDR* uses a static buffer, that means the user has to provide a defined buffer and its size during the *ucdrBuffer* creation. ```c - #include + #include #include #define BUFFER_LENGTH 256 diff --git a/examples/basic.c b/examples/basic.c index 54ad498..d9f2280 100644 --- a/examples/basic.c +++ b/examples/basic.c @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include +#include #include #define BUFFER_LENGTH 256 diff --git a/include/microcdr/common.h b/include/ucdr/common.h similarity index 97% rename from include/microcdr/common.h rename to include/ucdr/common.h index 801a2bb..5e1c5b5 100644 --- a/include/microcdr/common.h +++ b/include/ucdr/common.h @@ -19,8 +19,8 @@ extern "C" { #endif -#include -#include +#include +#include #include #include diff --git a/include/microcdr/config.h.in b/include/ucdr/config.h.in similarity index 100% rename from include/microcdr/config.h.in rename to include/ucdr/config.h.in diff --git a/include/microcdr/dll.h b/include/ucdr/dll.h similarity index 100% rename from include/microcdr/dll.h rename to include/ucdr/dll.h diff --git a/include/microcdr/microcdr.h b/include/ucdr/microcdr.h similarity index 82% rename from include/microcdr/microcdr.h rename to include/ucdr/microcdr.h index ea70a68..e79f60f 100644 --- a/include/microcdr/microcdr.h +++ b/include/ucdr/microcdr.h @@ -19,11 +19,11 @@ extern "C" { #endif -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #ifdef __cplusplus } diff --git a/include/microcdr/types/array.h b/include/ucdr/types/array.h similarity index 99% rename from include/microcdr/types/array.h rename to include/ucdr/types/array.h index b904944..7fb56bd 100644 --- a/include/microcdr/types/array.h +++ b/include/ucdr/types/array.h @@ -19,7 +19,7 @@ extern "C" { #endif -#include +#include // ------------------------------------------------------------------- // PUBLIC SERIALIZATION FUNCTIONS diff --git a/include/microcdr/types/basic.h b/include/ucdr/types/basic.h similarity index 99% rename from include/microcdr/types/basic.h rename to include/ucdr/types/basic.h index 31ab1f7..5e66d46 100644 --- a/include/microcdr/types/basic.h +++ b/include/ucdr/types/basic.h @@ -19,7 +19,7 @@ extern "C" { #endif -#include +#include // ------------------------------------------------------------------- // PUBLIC SERIALIZATION FUNCTIONS diff --git a/include/microcdr/types/sequence.h b/include/ucdr/types/sequence.h similarity index 99% rename from include/microcdr/types/sequence.h rename to include/ucdr/types/sequence.h index 5318455..5c4b109 100644 --- a/include/microcdr/types/sequence.h +++ b/include/ucdr/types/sequence.h @@ -19,7 +19,7 @@ extern "C" { #endif -#include +#include // ------------------------------------------------------------------- // PUBLIC SERIALIZATION FUNCTIONS diff --git a/include/microcdr/types/string.h b/include/ucdr/types/string.h similarity index 98% rename from include/microcdr/types/string.h rename to include/ucdr/types/string.h index 0c1cf99..b8c714f 100644 --- a/include/microcdr/types/string.h +++ b/include/ucdr/types/string.h @@ -19,7 +19,7 @@ extern "C" { #endif -#include +#include #include #include diff --git a/src/c/common.c b/src/c/common.c index 0e08173..c55685b 100644 --- a/src/c/common.c +++ b/src/c/common.c @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include +#include #include diff --git a/src/c/common_internals.h b/src/c/common_internals.h index 1e24673..70a6acc 100644 --- a/src/c/common_internals.h +++ b/src/c/common_internals.h @@ -19,7 +19,7 @@ extern "C" { #endif -#include +#include // ------------------------------------------------------------------- // INTERNAL UTIL FUNCTIONS diff --git a/src/c/types/array.c b/src/c/types/array.c index 3d5a460..ea8dd43 100644 --- a/src/c/types/array.c +++ b/src/c/types/array.c @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include +#include #include "../common_internals.h" #include "array_internals.h" diff --git a/src/c/types/array_internals.h b/src/c/types/array_internals.h index 96cecff..b0b3fc7 100644 --- a/src/c/types/array_internals.h +++ b/src/c/types/array_internals.h @@ -20,7 +20,7 @@ extern "C" { #endif -#include +#include // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS diff --git a/src/c/types/basic.c b/src/c/types/basic.c index 641eb21..15db7b4 100644 --- a/src/c/types/basic.c +++ b/src/c/types/basic.c @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include +#include #include "../common_internals.h" #include "basic_internals.h" diff --git a/src/c/types/basic_internals.h b/src/c/types/basic_internals.h index 5197076..85d29d8 100644 --- a/src/c/types/basic_internals.h +++ b/src/c/types/basic_internals.h @@ -19,7 +19,7 @@ extern "C" { #endif -#include +#include // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS diff --git a/src/c/types/sequence.c b/src/c/types/sequence.c index 25ce65d..5accce0 100644 --- a/src/c/types/sequence.c +++ b/src/c/types/sequence.c @@ -12,9 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include -#include -#include +#include +#include +#include #include "array_internals.h" #include "sequence_internals.h" diff --git a/src/c/types/sequence_internals.h b/src/c/types/sequence_internals.h index b5365df..f479517 100644 --- a/src/c/types/sequence_internals.h +++ b/src/c/types/sequence_internals.h @@ -21,7 +21,7 @@ extern "C" { #endif -#include +#include // ------------------------------------------------------------------- // INTERNAL SERIALIZATION FUNCTIONS diff --git a/src/c/types/string.c b/src/c/types/string.c index 78ce35b..de0760f 100644 --- a/src/c/types/string.c +++ b/src/c/types/string.c @@ -13,8 +13,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include -#include +#include +#include #include diff --git a/test/serialization/BasicSerialization.hpp b/test/serialization/BasicSerialization.hpp index 6216b6f..f4b4842 100644 --- a/test/serialization/BasicSerialization.hpp +++ b/test/serialization/BasicSerialization.hpp @@ -16,7 +16,7 @@ #define _BASIC_SERIALIZATION_HPP_ #include -#include +#include #include #include From 342541cfb607ffa5510e211e2908e2bb6d154ba4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20Berm=C3=BAdez=20Ortega?= <34604561+julianbermudez@users.noreply.github.com> Date: Thu, 25 Oct 2018 12:41:04 +0200 Subject: [PATCH 7/9] Refs #3599. Modified CMake config file installation dir. (#16) --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f9d6acb..68d44c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -173,16 +173,16 @@ install(FILES ${PROJECT_BINARY_DIR}/include/ucdr/config.h # Export library install(EXPORT ${PROJECT_NAME}Targets - DESTINATION ${LIB_INSTALL_DIR}/${PROJECT_NAME}/cmake + DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/cmake ) # Package configuration include(CMakePackageConfigHelpers) configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/packaging/Config.cmake.in ${PROJECT_BINARY_DIR}/cmake/config/${PROJECT_NAME}Config.cmake - INSTALL_DESTINATION ${LIB_INSTALL_DIR}${DIR_EXTENSION}/${PROJECT_NAME}/cmake + INSTALL_DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/cmake PATH_VARS BIN_INSTALL_DIR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR ) install(FILES ${PROJECT_BINARY_DIR}/cmake/config/${PROJECT_NAME}Config.cmake - DESTINATION ${LIB_INSTALL_DIR}${DIR_EXTENSION}/${PROJECT_NAME}/cmake + DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/cmake ) From 73c531e72bded6ff0d85d03b50f4deca743cd252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20Berm=C3=BAdez=20Ortega?= <34604561+julianbermudez@users.noreply.github.com> Date: Fri, 26 Oct 2018 08:16:29 +0200 Subject: [PATCH 8/9] Refs #3599. Added data dir to CMake config file. (#17) --- CMakeLists.txt | 2 +- cmake/packaging/Config.cmake.in | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 68d44c3..6648734 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -181,7 +181,7 @@ include(CMakePackageConfigHelpers) configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/packaging/Config.cmake.in ${PROJECT_BINARY_DIR}/cmake/config/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/cmake - PATH_VARS BIN_INSTALL_DIR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR + PATH_VARS BIN_INSTALL_DIR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR DATA_INSTALL_DIR ) install(FILES ${PROJECT_BINARY_DIR}/cmake/config/${PROJECT_NAME}Config.cmake DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/cmake diff --git a/cmake/packaging/Config.cmake.in b/cmake/packaging/Config.cmake.in index b7f5f2a..3e00a3d 100644 --- a/cmake/packaging/Config.cmake.in +++ b/cmake/packaging/Config.cmake.in @@ -16,10 +16,11 @@ set(@PROJECT_NAME@_VERSION @PROJECT_VERSION@) @PACKAGE_INIT@ -if(MSVC OR MSVC_IDE) +if((MSVC OR MSVC_IDE) AND EXISTS "@PACKAGE_BIN_INSTALL_DIR@") set_and_check(@PROJECT_NAME@_BIN_DIR "@PACKAGE_BIN_INSTALL_DIR@") endif() set_and_check(@PROJECT_NAME@_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") set_and_check(@PROJECT_NAME@_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@") +set_and_check(@PROJECT_NAME@_DATA_DIR "@PACKAGE_DATA_INSTALL_DIR@") -include(${@PROJECT_NAME@_LIB_DIR}@DIR_EXTENSION@/@PROJECT_NAME@/cmake/@PROJECT_NAME@Targets.cmake) +include(${@PROJECT_NAME@_DATA_DIR}/@PROJECT_NAME@/cmake/@PROJECT_NAME@Targets.cmake) From dfe0ff73aa4305cbaa2db9b64fd027338d4fa2fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20Berm=C3=BAdez=20Ortega?= <34604561+julianbermudez@users.noreply.github.com> Date: Wed, 31 Oct 2018 07:35:02 +0100 Subject: [PATCH 9/9] Refs #3599. Added data dir to CMake config file. (#18)