Added typedef JsonKey

This commit is contained in:
Benoit Blanchon
2014-08-03 13:09:07 +02:00
parent 1bc45f1fd7
commit 817cc09975
2 changed files with 13 additions and 11 deletions

View File

@ -39,7 +39,7 @@ size_t JsonObjectBase::printTo(Print& p) const
return n; return n;
} }
JsonObjectBase::KeyValuePair* JsonObjectBase::getMatchingPair(char const* key) const JsonObjectBase::KeyValuePair* JsonObjectBase::getMatchingPair(JsonKey key) const
{ {
KeyValuePair* p = items; KeyValuePair* p = items;
@ -54,14 +54,15 @@ JsonObjectBase::KeyValuePair* JsonObjectBase::getMatchingPair(char const* key) c
return 0; return 0;
} }
JsonValue& JsonObjectBase::operator[](char const* key) JsonValue& JsonObjectBase::operator[](JsonKey key)
{ {
KeyValuePair* match = getMatchingPair(key); KeyValuePair* match = getMatchingPair(key);
JsonValue* value;
if (match) if (match)
return match->value; return match->value;
JsonValue* value;
if (count < capacity) if (count < capacity)
{ {
items[count].key = key; items[count].key = key;
@ -77,7 +78,7 @@ JsonValue& JsonObjectBase::operator[](char const* key)
return *value; return *value;
} }
bool JsonObjectBase::containsKey(char const* key) const bool JsonObjectBase::containsKey(JsonKey key) const
{ {
return getMatchingPair(key) != 0; return getMatchingPair(key) != 0;
} }

View File

@ -12,22 +12,23 @@ namespace ArduinoJson
{ {
namespace Generator namespace Generator
{ {
typedef const char* JsonKey;
class JsonObjectBase : public JsonPrintable class JsonObjectBase : public JsonPrintable
{ {
public: public:
JsonValue& operator[](JsonKey);
JsonValue& operator[](const char*); bool containsKey(JsonKey) const;
bool containsKey(const char*) const;
template<typename T> template<typename T>
void add(const char* key, T value) void add(JsonKey key, T value)
{ {
operator[](key) = value; operator[](key) = value;
} }
template<int DIGITS> template<int DIGITS>
void add(const char* key, double value) void add(JsonKey key, double value)
{ {
operator[](key).set<DIGITS>(value); operator[](key).set<DIGITS>(value);
} }
@ -40,7 +41,7 @@ namespace ArduinoJson
struct KeyValuePair struct KeyValuePair
{ {
const char* key; JsonKey key;
JsonValue value; JsonValue value;
}; };
@ -55,7 +56,7 @@ namespace ArduinoJson
static JsonValue nullValue; static JsonValue nullValue;
KeyValuePair* getMatchingPair(const char* key) const; KeyValuePair* getMatchingPair(JsonKey key) const;
}; };
} }
} }