Minh Nguyen / ArduinoJson
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Reader.hpp Source File

Reader.hpp

00001 // ArduinoJson - arduinojson.org
00002 // Copyright Benoit Blanchon 2014-2021
00003 // MIT License
00004 
00005 #pragma once
00006 
00007 #include <ArduinoJson/Namespace.hpp>
00008 
00009 #include <stdlib.h>  // for size_t
00010 
00011 namespace ARDUINOJSON_NAMESPACE {
00012 
00013 // The default reader is a simple wrapper for Readers that are not copiable
00014 template <typename TSource, typename Enable = void>
00015 struct Reader {
00016  public:
00017   Reader(TSource& source) : _source(&source) {}
00018 
00019   int read() {
00020     return _source->read();
00021   }
00022 
00023   size_t readBytes(char* buffer, size_t length) {
00024     return _source->readBytes(buffer, length);
00025   }
00026 
00027  private:
00028   TSource* _source;
00029 };
00030 
00031 template <typename TSource, typename Enable = void>
00032 struct BoundedReader {
00033   // no default implementation because we need to pass the size to the
00034   // constructor
00035 };
00036 }  // namespace ARDUINOJSON_NAMESPACE
00037 
00038 #include <ArduinoJson/Deserialization/Readers/IteratorReader.hpp>
00039 #include <ArduinoJson/Deserialization/Readers/RamReader.hpp>
00040 #include <ArduinoJson/Deserialization/Readers/VariantReader.hpp>
00041 
00042 #if ARDUINOJSON_ENABLE_ARDUINO_STREAM
00043 #include <ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp>
00044 #endif
00045 
00046 #if ARDUINOJSON_ENABLE_ARDUINO_STRING
00047 #include <ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp>
00048 #endif
00049 
00050 #if ARDUINOJSON_ENABLE_PROGMEM
00051 #include <ArduinoJson/Deserialization/Readers/FlashReader.hpp>
00052 #endif
00053 
00054 #if ARDUINOJSON_ENABLE_STD_STREAM
00055 #include <ArduinoJson/Deserialization/Readers/StdStreamReader.hpp>
00056 #endif