Fixed namespaces

This commit is contained in:
Benoit Blanchon
2014-10-18 23:05:54 +02:00
parent 1abb8ac6ae
commit 074c39ca5b
31 changed files with 638 additions and 554 deletions

View File

@ -2,9 +2,13 @@
#include "ArduinoJson/Internals/JsonWriter.h" #include "ArduinoJson/Internals/JsonWriter.h"
class CompactJsonWriter : public JsonWriter namespace ArduinoJson
{ {
public: namespace Internals
{
class CompactJsonWriter : public JsonWriter
{
public:
explicit CompactJsonWriter(Print* sink) explicit CompactJsonWriter(Print* sink)
: JsonWriter(sink) : JsonWriter(sink)
{ {
@ -39,5 +43,6 @@ public:
{ {
_length += _sink->write('}'); _length += _sink->write('}');
} }
}; };
}
}

View File

@ -9,7 +9,7 @@
namespace ArduinoJson namespace ArduinoJson
{ {
namespace Generator namespace Internals
{ {
// Decorator on top of Print to allow indented output. // Decorator on top of Print to allow indented output.
// This class is used by JsonPrintable::prettyPrintTo() but can also be used // This class is used by JsonPrintable::prettyPrintTo() but can also be used

View File

@ -1,11 +1,16 @@
#pragma once #pragma once
class JsonBuffer; namespace ArduinoJson
class JsonWriter;
class JsonNodeIterator;
class JsonNode
{ {
class JsonBuffer;
namespace Internals
{
class JsonWriter;
class JsonNodeIterator;
class JsonNode
{
friend class JsonNodeIterator; friend class JsonNodeIterator;
enum JsonNodeType enum JsonNodeType
@ -51,7 +56,7 @@ class JsonNode
}; };
public: public:
JsonNode() JsonNode()
: type(JSON_UNDEFINED), next(0) : type(JSON_UNDEFINED), next(0)
{ {
@ -163,7 +168,7 @@ public:
void duplicate(JsonNode* other); void duplicate(JsonNode* other);
private: private:
JsonNodeType type; JsonNodeType type;
JsonNode* next; JsonNode* next;
JsonNodeContent content; JsonNodeContent content;
@ -178,4 +183,6 @@ private:
type = JSON_PROXY; type = JSON_PROXY;
content.asProxy.target = target; content.asProxy.target = target;
} }
}; };
}
}

View File

@ -2,9 +2,13 @@
#include "JsonNode.h" #include "JsonNode.h"
class JsonNodeIterator namespace ArduinoJson
{ {
public: namespace Internals
{
class JsonNodeIterator
{
public:
explicit JsonNodeIterator(JsonNode* node) explicit JsonNodeIterator(JsonNode* node)
: node(node) : node(node)
@ -31,7 +35,8 @@ public:
return node; return node;
} }
private: private:
JsonNode* node; JsonNode* node;
}; };
}
}

View File

@ -1,13 +1,18 @@
#pragma once #pragma once
#include "JsonNode.h" #include "JsonNode.h"
class JsonValue;
class JsonNodeWrapper namespace ArduinoJson
{ {
class JsonValue ;
namespace Internals
{
class JsonNodeWrapper
{
friend class JsonValue; friend class JsonValue;
public: public:
JsonNodeWrapper() JsonNodeWrapper()
: _node(0) : _node(0)
{ {
@ -18,7 +23,7 @@ public:
{ {
} }
protected: protected:
void duplicate(const JsonNodeWrapper& other) void duplicate(const JsonNodeWrapper& other)
{ {
@ -33,5 +38,6 @@ protected:
} }
JsonNode* _node; JsonNode* _node;
}; };
}
}

View File

@ -1,13 +1,18 @@
#include "JsonNode.h"
#pragma once #pragma once
class JsonNode; #include "JsonNode.h"
class JsonBuffer;
class JsonParser namespace ArduinoJson
{ {
public: class JsonBuffer;
namespace Internals
{
class JsonNode;
class JsonParser
{
public:
JsonParser(JsonBuffer* buffer, char* json) JsonParser(JsonBuffer* buffer, char* json)
: _buffer(buffer), _ptr(json) : _buffer(buffer), _ptr(json)
{ {
@ -16,7 +21,7 @@ public:
JsonNode* parseAnything(); JsonNode* parseAnything();
private: private:
JsonBuffer* _buffer; JsonBuffer* _buffer;
char* _ptr; char* _ptr;
@ -40,4 +45,6 @@ private:
inline JsonNode* parseString(); inline JsonNode* parseString();
JsonNode *parseDouble(); JsonNode *parseDouble();
}; };
}
}

View File

@ -2,9 +2,13 @@
#include "../Arduino/Print.h" #include "../Arduino/Print.h"
class JsonWriter namespace ArduinoJson
{ {
public: namespace Internals
{
class JsonWriter
{
public:
explicit JsonWriter(Print* sink) explicit JsonWriter(Print* sink)
: _sink(sink), _length(0) : _sink(sink), _length(0)
{ {
@ -42,8 +46,9 @@ public:
_length += _sink->print("{}"); _length += _sink->print("{}");
} }
protected: protected:
Print* _sink; Print* _sink;
size_t _length; size_t _length;
}; };
}
}

View File

@ -3,11 +3,13 @@
#include "JsonWriter.h" #include "JsonWriter.h"
#include "IndentedPrint.h" #include "IndentedPrint.h"
using namespace ArduinoJson::Generator; namespace ArduinoJson
class PrettyJsonWriter : public JsonWriter
{ {
public: namespace Internals
{
class PrettyJsonWriter : public JsonWriter
{
public:
explicit PrettyJsonWriter(IndentedPrint* sink) explicit PrettyJsonWriter(IndentedPrint* sink)
: JsonWriter(sink), _indenter(sink) : JsonWriter(sink), _indenter(sink)
{ {
@ -48,7 +50,7 @@ public:
_length += _sink->write('}'); _length += _sink->write('}');
} }
private: private:
IndentedPrint* _indenter; IndentedPrint* _indenter;
void indent() void indent()
@ -62,4 +64,6 @@ private:
_length += _indenter->println(); _length += _indenter->println();
_indenter->unindent(); _indenter->unindent();
} }
}; };
}
}

View File

@ -2,14 +2,16 @@
#include "JsonContainer.h" #include "JsonContainer.h"
class JsonArray : public JsonContainer namespace ArduinoJson
{ {
public: class JsonArray : public JsonContainer
{
public:
JsonArray() JsonArray()
{ {
} }
explicit JsonArray(JsonNode* node) explicit JsonArray(Internals::JsonNode* node)
: JsonContainer(node) : JsonContainer(node)
{ {
} }
@ -30,5 +32,5 @@ public:
{ {
return _node && _node->isArray(); return _node && _node->isArray();
} }
}; };
}

View File

@ -3,15 +3,20 @@
#include "JsonArray.h" #include "JsonArray.h"
#include "JsonObject.h" #include "JsonObject.h"
class JsonParser; namespace ArduinoJson
class JsonBuffer
{ {
friend class JsonContainer; namespace Internals
friend class JsonNode; {
friend class JsonParser; class JsonParser;
}
public: class JsonBuffer
{
friend class JsonContainer;
friend class Internals::JsonNode;
friend class Internals::JsonParser;
public:
virtual ~JsonBuffer() {}; virtual ~JsonBuffer() {};
JsonArray createArray() JsonArray createArray()
@ -30,16 +35,17 @@ public:
JsonValue parseValue(char* json); JsonValue parseValue(char* json);
protected: protected:
virtual void* allocateNode() = 0; virtual void* allocateNode() = 0;
private: private:
JsonNode* createNode(); Internals::JsonNode* createNode();
JsonNode* createArrayNode(); Internals::JsonNode* createArrayNode();
JsonNode* createBoolNode(bool value); Internals::JsonNode* createBoolNode(bool value);
JsonNode* createDoubleNode(double value, int decimals); Internals::JsonNode* createDoubleNode(double value, int decimals);
JsonNode* createLongNode(long value); Internals::JsonNode* createLongNode(long value);
JsonNode* createObjectNode(); Internals::JsonNode* createObjectNode();
JsonNode* createStringNode(const char* value); Internals::JsonNode* createStringNode(const char* value);
}; };
}

View File

@ -1,26 +1,25 @@
#pragma once #pragma once
#include "ArduinoJson/Arduino/Printable.h" #include "Arduino/Printable.h"
#include "ArduinoJson/Internals/JsonNodeIterator.h" #include "Internals/JsonNodeIterator.h"
#include "ArduinoJson/Internals/JsonNode.h" #include "Internals/JsonNode.h"
#include "ArduinoJson/Internals/IndentedPrint.h" #include "Internals/IndentedPrint.h"
#include "ArduinoJson/Internals/JsonNodeWrapper.h" #include "Internals/JsonNodeWrapper.h"
class JsonArray; namespace ArduinoJson
class JsonObject;
class JsonValue;
class JsonContainer : public Printable, public JsonNodeWrapper
{ {
// friend JsonValue; class JsonArray;
class JsonObject;
class JsonValue;
class JsonContainer : public Printable, public Internals::JsonNodeWrapper
{
friend class JsonArray; friend class JsonArray;
public: public:
JsonContainer() {} JsonContainer() {}
explicit JsonContainer(JsonNode* node) explicit JsonContainer(Internals::JsonNode* node)
: JsonNodeWrapper(node) : JsonNodeWrapper(node)
{ {
} }
@ -33,23 +32,23 @@ public:
virtual size_t printTo(Print& print) const; virtual size_t printTo(Print& print) const;
size_t prettyPrintTo(char* buffer, size_t bufferSize) const; size_t prettyPrintTo(char* buffer, size_t bufferSize) const;
size_t prettyPrintTo(ArduinoJson::Generator::IndentedPrint& print) const; size_t prettyPrintTo(ArduinoJson::Internals::IndentedPrint& print) const;
size_t prettyPrintTo(Print& print) const; size_t prettyPrintTo(Print& print) const;
protected: protected:
JsonNodeIterator beginChildren() const Internals::JsonNodeIterator beginChildren() const
{ {
return JsonNodeIterator(_node ? _node->getContainerChild() : 0); return Internals::JsonNodeIterator(_node ? _node->getContainerChild() : 0);
} }
JsonNodeIterator endChildren() const Internals::JsonNodeIterator endChildren() const
{ {
return JsonNodeIterator(0); return Internals::JsonNodeIterator(0);
} }
void addChild(JsonNode*); void addChild(Internals::JsonNode*);
void removeChild(JsonNode*); void removeChild(Internals::JsonNode*);
JsonNode* createNode(); Internals::JsonNode* createNode();
}; };
}

View File

@ -2,15 +2,17 @@
#include "JsonContainer.h" #include "JsonContainer.h"
class JsonObject : public JsonContainer namespace ArduinoJson
{ {
public: class JsonObject : public JsonContainer
{
public:
JsonObject() JsonObject()
{ {
} }
explicit JsonObject(JsonNode* node) explicit JsonObject(Internals::JsonNode* node)
: JsonContainer(node) : JsonContainer(node)
{ {
} }
@ -21,6 +23,7 @@ public:
JsonArray createNestedArray(const char* key); JsonArray createNestedArray(const char* key);
JsonObject createNestedObject(const char* key); JsonObject createNestedObject(const char* key);
private: private:
JsonNode* getOrCreateNodeAt(const char* key); Internals::JsonNode* getOrCreateNodeAt(const char* key);
}; };
}

View File

@ -2,17 +2,19 @@
#include "Internals/JsonNodeWrapper.h" #include "Internals/JsonNodeWrapper.h"
class JsonArray; namespace ArduinoJson
class JsonContainer;
class JsonObject;
class JsonValue : public JsonNodeWrapper
{ {
public: class JsonArray;
class JsonContainer;
class JsonObject;
class JsonValue : public Internals::JsonNodeWrapper
{
public:
JsonValue() {} JsonValue() {}
explicit JsonValue(JsonNode* node) explicit JsonValue(Internals::JsonNode* node)
: JsonNodeWrapper(node) : JsonNodeWrapper(node)
{ {
} }
@ -22,7 +24,7 @@ public:
void operator=(double x) { set(x, 2); } void operator=(double x) { set(x, 2); }
void operator=(int); void operator=(int);
void operator=(const JsonValue& value) { duplicate(value); } void operator=(const JsonValue& value) { duplicate(value); }
void operator=(const JsonNodeWrapper& object) { duplicate(object); } void operator=(const Internals::JsonNodeWrapper& object) { duplicate(object); }
operator bool() const; operator bool() const;
operator const char*() const; operator const char*() const;
@ -33,4 +35,5 @@ public:
operator JsonObject() const; operator JsonObject() const;
void set(double value, int decimals); void set(double value, int decimals);
}; };
}

View File

@ -3,12 +3,14 @@
#include "JsonBuffer.h" #include "JsonBuffer.h"
#include "JsonObject.h" #include "JsonObject.h"
template<int CAPACITY> namespace ArduinoJson
class StaticJsonBuffer : public JsonBuffer
{ {
template<int CAPACITY>
class StaticJsonBuffer : public JsonBuffer
{
friend class JsonObject; friend class JsonObject;
public: public:
explicit StaticJsonBuffer() explicit StaticJsonBuffer()
: _size(0) : _size(0)
@ -27,7 +29,7 @@ public:
return _size; return _size;
} }
protected: protected:
virtual void* allocateNode() virtual void* allocateNode()
{ {
if (_size >= CAPACITY) return 0; if (_size >= CAPACITY) return 0;
@ -35,8 +37,8 @@ protected:
return &_buffer[_size++]; return &_buffer[_size++];
} }
private: private:
JsonNode _buffer[CAPACITY]; Internals::JsonNode _buffer[CAPACITY];
int _size; int _size;
}; };
}

View File

@ -1,6 +1,6 @@
#include "ArduinoJson/Internals/IndentedPrint.h" #include "ArduinoJson/Internals/IndentedPrint.h"
using namespace ArduinoJson::Generator; using namespace ArduinoJson::Internals;
void IndentedPrint::indent() void IndentedPrint::indent()
{ {

View File

@ -5,6 +5,8 @@
#include "ArduinoJson/JsonObject.h" #include "ArduinoJson/JsonObject.h"
#include "ArduinoJson/JsonBuffer.h" #include "ArduinoJson/JsonBuffer.h"
using namespace ArduinoJson::Internals;
void JsonNode::writeTo(JsonWriter& writer) void JsonNode::writeTo(JsonWriter& writer)
{ {
switch (type) switch (type)

View File

@ -2,6 +2,9 @@
#include "ArduinoJson/JsonObject.h" #include "ArduinoJson/JsonObject.h"
#include "ArduinoJson/JsonValue.h" #include "ArduinoJson/JsonValue.h"
using namespace ArduinoJson;
using namespace ArduinoJson::Internals;
JsonValue JsonArray::operator[](int index) const JsonValue JsonArray::operator[](int index) const
{ {
for (JsonNodeIterator it = beginChildren(); it != endChildren(); ++it) for (JsonNodeIterator it = beginChildren(); it != endChildren(); ++it)

View File

@ -6,6 +6,9 @@
#include "ArduinoJson/Internals/JsonParser.h" #include "ArduinoJson/Internals/JsonParser.h"
#include "ArduinoJson/Internals/JsonNode.h" #include "ArduinoJson/Internals/JsonNode.h"
using namespace ArduinoJson;
using namespace ArduinoJson::Internals;
JsonValue JsonBuffer::createValue() JsonValue JsonBuffer::createValue()
{ {
return JsonValue(createNode()); return JsonValue(createNode());

View File

@ -5,6 +5,7 @@
#include "ArduinoJson/Internals/CompactJsonWriter.h" #include "ArduinoJson/Internals/CompactJsonWriter.h"
#include "ArduinoJson/Internals/PrettyJsonWriter.h" #include "ArduinoJson/Internals/PrettyJsonWriter.h"
using namespace ArduinoJson;
using namespace ArduinoJson::Internals; using namespace ArduinoJson::Internals;
size_t JsonContainer::printTo(char* buffer, size_t bufferSize) const size_t JsonContainer::printTo(char* buffer, size_t bufferSize) const

View File

@ -7,6 +7,7 @@
#include "ArduinoJson/Internals/JsonNode.h" #include "ArduinoJson/Internals/JsonNode.h"
#include "ArduinoJson/Internals/StringBuilder.h" #include "ArduinoJson/Internals/StringBuilder.h"
using namespace ArduinoJson;
using namespace ArduinoJson::Internals; using namespace ArduinoJson::Internals;
JsonValue JsonObject::operator[](char const* key) JsonValue JsonObject::operator[](char const* key)

View File

@ -4,6 +4,8 @@
#include "ArduinoJson/JsonObject.h" #include "ArduinoJson/JsonObject.h"
#include "ArduinoJson/Internals/JsonNode.h" #include "ArduinoJson/Internals/JsonNode.h"
using namespace ArduinoJson;
void JsonValue::operator=(bool value) void JsonValue::operator=(bool value)
{ {
if (_node) if (_node)

View File

@ -4,7 +4,7 @@
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
using namespace ArduinoJson::Generator; using namespace ArduinoJson;
struct Person struct Person
{ {

View File

@ -2,6 +2,8 @@
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
using namespace ArduinoJson;
class JsonArray_Container_Tests : public ::testing::Test class JsonArray_Container_Tests : public ::testing::Test
{ {
protected: protected:

View File

@ -9,6 +9,8 @@
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
using namespace ArduinoJson;
class JsonArray_PrettyPrintTo_Tests : public testing::Test class JsonArray_PrettyPrintTo_Tests : public testing::Test
{ {
protected: protected:

View File

@ -8,6 +8,8 @@
#include <ArduinoJson/JsonObject.h> #include <ArduinoJson/JsonObject.h>
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
using namespace ArduinoJson;
class JsonArray_PrintTo_Tests : public testing::Test class JsonArray_PrintTo_Tests : public testing::Test
{ {
protected: protected:

View File

@ -2,6 +2,8 @@
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
using namespace ArduinoJson;
class JsonObject_Container_Tests : public ::testing::Test class JsonObject_Container_Tests : public ::testing::Test
{ {
protected: protected:

View File

@ -8,6 +8,8 @@
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
using namespace ArduinoJson;
class JsonObject_PrettyPrintTo_Tests : public testing::Test class JsonObject_PrettyPrintTo_Tests : public testing::Test
{ {
protected: protected:

View File

@ -4,6 +4,8 @@
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
using namespace ArduinoJson;
class JsonObject_Serialization_Tests : public testing::Test class JsonObject_Serialization_Tests : public testing::Test
{ {
protected: protected:

View File

@ -2,6 +2,8 @@
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
using namespace ArduinoJson;
class JsonParser_Array_Tests : public testing::Test class JsonParser_Array_Tests : public testing::Test
{ {
protected: protected:

View File

@ -2,6 +2,8 @@
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
using namespace ArduinoJson;
class JsonValueTests : public ::testing::Test class JsonValueTests : public ::testing::Test
{ {
protected: protected:

View File

@ -2,6 +2,8 @@
#include <ArduinoJson/StaticJsonBuffer.h> #include <ArduinoJson/StaticJsonBuffer.h>
#include <ArduinoJson/JsonValue.h> #include <ArduinoJson/JsonValue.h>
using namespace ArduinoJson;
TEST(StaticJsonBuffer, CapacityMatchTemplateParameter) TEST(StaticJsonBuffer, CapacityMatchTemplateParameter)
{ {
StaticJsonBuffer<42> json; StaticJsonBuffer<42> json;