[209] | 1 | // Copyright Benoit Blanchon 2014-2016
|
---|
| 2 | // MIT License
|
---|
| 3 | //
|
---|
| 4 | // Arduino JSON library
|
---|
| 5 | // https://github.com/bblanchon/ArduinoJson
|
---|
| 6 | // If you like this project, please add a star!
|
---|
| 7 |
|
---|
| 8 | #include "../include/ArduinoJson/JsonBuffer.hpp"
|
---|
| 9 |
|
---|
| 10 | #include "../include/ArduinoJson/Internals/JsonParser.hpp"
|
---|
| 11 | #include "../include/ArduinoJson/JsonArray.hpp"
|
---|
| 12 | #include "../include/ArduinoJson/JsonObject.hpp"
|
---|
| 13 |
|
---|
| 14 | using namespace ArduinoJson;
|
---|
| 15 | using namespace ArduinoJson::Internals;
|
---|
| 16 |
|
---|
| 17 | JsonArray &JsonBuffer::createArray() {
|
---|
| 18 | JsonArray *ptr = new (this) JsonArray(this);
|
---|
| 19 | return ptr ? *ptr : JsonArray::invalid();
|
---|
| 20 | }
|
---|
| 21 |
|
---|
| 22 | JsonObject &JsonBuffer::createObject() {
|
---|
| 23 | JsonObject *ptr = new (this) JsonObject(this);
|
---|
| 24 | return ptr ? *ptr : JsonObject::invalid();
|
---|
| 25 | }
|
---|
| 26 |
|
---|
| 27 | JsonArray &JsonBuffer::parseArray(char *json, uint8_t nestingLimit) {
|
---|
| 28 | JsonParser parser(this, json, nestingLimit);
|
---|
| 29 | return parser.parseArray();
|
---|
| 30 | }
|
---|
| 31 |
|
---|
| 32 | JsonObject &JsonBuffer::parseObject(char *json, uint8_t nestingLimit) {
|
---|
| 33 | JsonParser parser(this, json, nestingLimit);
|
---|
| 34 | return parser.parseObject();
|
---|
| 35 | }
|
---|
| 36 |
|
---|
| 37 | char *JsonBuffer::strdup(const char *source, size_t length) {
|
---|
| 38 | size_t size = length + 1;
|
---|
| 39 | char *dest = static_cast<char *>(alloc(size));
|
---|
| 40 | if (dest != NULL) memcpy(dest, source, size);
|
---|
| 41 | return dest;
|
---|
| 42 | }
|
---|