diff --git a/.gitignore b/.gitignore index 567dc13b..1071ea6b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /fuzzing/*_fuzzer /fuzzing/*_fuzzer.options /fuzzing/*_fuzzer_seed_corpus.zip +.vs/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 78b53dee..817a380a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ HEAD * Added `deserializeJson()` * Added `serializeJson()` and `serializeJsonPretty()` * Added `measureJson()` and `measureJsonPretty()` -* Added `deserializeMsgPack()` (issue #358) +* Added `serializeMsgPack()`, `deserializeMsgPack()` and `measureMsgPack()` (issue #358) * Added example `MsgPackParser.ino` (issue #358) * Added support for non zero-terminated strings (issue #704) * Removed `JsonBuffer::parseArray()`, `parseObject()` and `parse()` diff --git a/src/ArduinoJson.hpp b/src/ArduinoJson.hpp index 8b7e3594..bbe94a3c 100644 --- a/src/ArduinoJson.hpp +++ b/src/ArduinoJson.hpp @@ -5,11 +5,13 @@ #pragma once #include "ArduinoJson/DynamicJsonDocument.hpp" -#include "ArduinoJson/StaticJsonDocument.hpp" -#include "ArduinoJson/deserializeJson.hpp" -#include "ArduinoJson/deserializeMsgPack.hpp" - +#include "ArduinoJson/Json/JsonDeserializer.hpp" #include "ArduinoJson/Json/JsonSerializer.hpp" +#include "ArduinoJson/Json/PrettyJsonSerializer.hpp" +#include "ArduinoJson/MsgPack/MsgPackDeserializer.hpp" +#include "ArduinoJson/MsgPack/MsgPackSerializer.hpp" +#include "ArduinoJson/StaticJsonDocument.hpp" + #include "ArduinoJson/JsonArrayImpl.hpp" #include "ArduinoJson/JsonObjectImpl.hpp" #include "ArduinoJson/JsonVariantImpl.hpp" diff --git a/src/ArduinoJson/Reading/ArduinoStreamReader.hpp b/src/ArduinoJson/Deserialization/ArduinoStreamReader.hpp similarity index 100% rename from src/ArduinoJson/Reading/ArduinoStreamReader.hpp rename to src/ArduinoJson/Deserialization/ArduinoStreamReader.hpp diff --git a/src/ArduinoJson/Reading/CharPointerReader.hpp b/src/ArduinoJson/Deserialization/CharPointerReader.hpp similarity index 100% rename from src/ArduinoJson/Reading/CharPointerReader.hpp rename to src/ArduinoJson/Deserialization/CharPointerReader.hpp diff --git a/src/ArduinoJson/DeserializationError.hpp b/src/ArduinoJson/Deserialization/DeserializationError.hpp similarity index 100% rename from src/ArduinoJson/DeserializationError.hpp rename to src/ArduinoJson/Deserialization/DeserializationError.hpp diff --git a/src/ArduinoJson/Reading/FlashStringReader.hpp b/src/ArduinoJson/Deserialization/FlashStringReader.hpp similarity index 100% rename from src/ArduinoJson/Reading/FlashStringReader.hpp rename to src/ArduinoJson/Deserialization/FlashStringReader.hpp diff --git a/src/ArduinoJson/Reading/IteratorReader.hpp b/src/ArduinoJson/Deserialization/IteratorReader.hpp similarity index 100% rename from src/ArduinoJson/Reading/IteratorReader.hpp rename to src/ArduinoJson/Deserialization/IteratorReader.hpp diff --git a/src/ArduinoJson/Reading/StdStreamReader.hpp b/src/ArduinoJson/Deserialization/StdStreamReader.hpp similarity index 100% rename from src/ArduinoJson/Reading/StdStreamReader.hpp rename to src/ArduinoJson/Deserialization/StdStreamReader.hpp diff --git a/src/ArduinoJson/Deserialization/deserialize.hpp b/src/ArduinoJson/Deserialization/deserialize.hpp new file mode 100644 index 00000000..25abe9de --- /dev/null +++ b/src/ArduinoJson/Deserialization/deserialize.hpp @@ -0,0 +1,82 @@ +// ArduinoJson - arduinojson.org +// Copyright Benoit Blanchon 2014-2018 +// MIT License + +#pragma once + +#include "../StringStorage/StringStorage.hpp" +#include "./ArduinoStreamReader.hpp" +#include "./CharPointerReader.hpp" +#include "./DeserializationError.hpp" +#include "./FlashStringReader.hpp" +#include "./IteratorReader.hpp" +#include "./StdStreamReader.hpp" + +namespace ArduinoJson { +namespace Internals { + +template