Index: include/utils/SkJSON.h |
diff --git a/include/utils/SkJSON.h b/include/utils/SkJSON.h |
deleted file mode 100644 |
index c601fa89b57879000d2b0da219ed5bc02e848387..0000000000000000000000000000000000000000 |
--- a/include/utils/SkJSON.h |
+++ /dev/null |
@@ -1,285 +0,0 @@ |
-/* |
- * Copyright 2011 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#ifndef SkJSON_DEFINED |
-#define SkJSON_DEFINED |
- |
-#include "SkTypes.h" |
- |
-class SkStream; |
-class SkString; |
- |
-class SkJSON { |
-public: |
- enum Type { |
- kObject, |
- kArray, |
- kString, |
- kInt, |
- kFloat, |
- kBool, |
- }; |
- |
- class Array; |
- |
- class Object { |
- private: |
- struct Slot; |
- |
- public: |
- Object(); |
- Object(const Object&); |
- ~Object(); |
- |
- /** |
- * Create a new slot with the specified name and value. The name |
- * parameter is copied, but ownership of the Object parameter is |
- * transferred. The Object parameter may be null, but the name must |
- * not be null. |
- */ |
- void addObject(const char name[], Object* value); |
- |
- /** |
- * Create a new slot with the specified name and value. The name |
- * parameter is copied, but ownership of the Array parameter is |
- * transferred. The Array parameter may be null, but the name must |
- * not be null. |
- */ |
- void addArray(const char name[], Array* value); |
- |
- /** |
- * Create a new slot with the specified name and value. Both parameters |
- * are copied. The value parameter may be null, but the name must |
- * not be null. |
- */ |
- void addString(const char name[], const char value[]); |
- |
- /** |
- * Create a new slot with the specified name and value. The name |
- * parameter is copied, and must not be null. |
- */ |
- void addInt(const char name[], int32_t value); |
- |
- /** |
- * Create a new slot with the specified name and value. The name |
- * parameter is copied, and must not be null. |
- */ |
- void addFloat(const char name[], float value); |
- |
- /** |
- * Create a new slot with the specified name and value. The name |
- * parameter is copied, and must not be null. |
- */ |
- void addBool(const char name[], bool value); |
- |
- /** |
- * Return the number of slots/fields in this object. These can be |
- * iterated using Iter. |
- */ |
- int count() const; |
- |
- /** |
- * Returns true if a slot matching the name and Type is found. |
- */ |
- bool find(const char name[], Type) const; |
- bool findObject(const char name[], Object** = NULL) const; |
- bool findArray(const char name[], Array** = NULL) const; |
- bool findString(const char name[], SkString* = NULL) const; |
- bool findInt(const char name[], int32_t* = NULL) const; |
- bool findFloat(const char name[], float* = NULL) const; |
- bool findBool(const char name[], bool* = NULL) const; |
- |
- /** |
- * Finds the first slot matching the name and Type and removes it. |
- * Returns true if found, false if not. |
- */ |
- bool remove(const char name[], Type); |
- |
- void toDebugf() const; |
- |
- /** |
- * Iterator class which returns all of the fields/slots in an Object, |
- * in the order that they were added. |
- */ |
- class Iter { |
- public: |
- Iter(const Object&); |
- |
- /** |
- * Returns true when there are no more entries in the iterator. |
- * In this case, no other methods should be called. |
- */ |
- bool done() const; |
- |
- /** |
- * Moves the iterator to the next element. Should only be called |
- * if done() returns false. |
- */ |
- void next(); |
- |
- /** |
- * Returns the type of the current element. Should only be called |
- * if done() returns false. |
- */ |
- Type type() const; |
- |
- /** |
- * Returns the name of the current element. Should only be called |
- * if done() returns false. |
- */ |
- const char* name() const; |
- |
- /** |
- * Returns the type of the current element. Should only be called |
- * if done() returns false and type() returns kObject. |
- */ |
- Object* objectValue() const; |
- |
- /** |
- * Returns the type of the current element. Should only be called |
- * if done() returns false and type() returns kArray. |
- */ |
- Array* arrayValue() const; |
- |
- /** |
- * Returns the type of the current element. Should only be called |
- * if done() returns false and type() returns kString. |
- */ |
- const char* stringValue() const; |
- |
- /** |
- * Returns the type of the current element. Should only be called |
- * if done() returns false and type() returns kInt. |
- */ |
- int32_t intValue() const; |
- |
- /** |
- * Returns the type of the current element. Should only be called |
- * if done() returns false and type() returns kFloat. |
- */ |
- float floatValue() const; |
- |
- /** |
- * Returns the type of the current element. Should only be called |
- * if done() returns false and type() returns kBool. |
- */ |
- bool boolValue() const; |
- |
- private: |
- Slot* fSlot; |
- }; |
- |
- private: |
- Slot* fHead; |
- Slot* fTail; |
- |
- const Slot* findSlot(const char name[], Type) const; |
- Slot* addSlot(Slot*); |
- void dumpLevel(int level) const; |
- |
- friend class Array; |
- }; |
- |
- class Array { |
- public: |
- /** |
- * Creates an array with the specified Type and element count. All |
- * entries are initialized to NULL/0/false. |
- */ |
- Array(Type, int count); |
- |
- /** |
- * Creates an array of ints, initialized by copying the specified |
- * values. |
- */ |
- Array(const int32_t values[], int count); |
- |
- /** |
- * Creates an array of floats, initialized by copying the specified |
- * values. |
- */ |
- Array(const float values[], int count); |
- |
- /** |
- * Creates an array of bools, initialized by copying the specified |
- * values. |
- */ |
- Array(const bool values[], int count); |
- |
- Array(const Array&); |
- ~Array(); |
- |
- int count() const { return fCount; } |
- Type type() const { return fType; } |
- |
- /** |
- * Replace the element at the specified index with the specified |
- * Object (which may be null). Ownership of the Object is transferred. |
- * Should only be called if the Array's type is kObject. |
- */ |
- void setObject(int index, Object*); |
- |
- /** |
- * Replace the element at the specified index with the specified |
- * Array (which may be null). Ownership of the Array is transferred. |
- * Should only be called if the Array's type is kArray. |
- */ |
- void setArray(int index, Array*); |
- |
- /** |
- * Replace the element at the specified index with a copy of the |
- * specified string (which may be null). Should only be called if the |
- * Array's type is kString. |
- */ |
- void setString(int index, const char str[]); |
- |
- Object* const* objects() const { |
- SkASSERT(kObject == fType); |
- return fArray.fObjects; |
- } |
- Array* const* arrays() const { |
- SkASSERT(kObject == fType); |
- return fArray.fArrays; |
- } |
- const char* const* strings() const { |
- SkASSERT(kString == fType); |
- return fArray.fStrings; |
- } |
- int32_t* ints() const { |
- SkASSERT(kInt == fType); |
- return fArray.fInts; |
- } |
- float* floats() const { |
- SkASSERT(kFloat == fType); |
- return fArray.fFloats; |
- } |
- bool* bools() const { |
- SkASSERT(kBool == fType); |
- return fArray.fBools; |
- } |
- |
- private: |
- int fCount; |
- Type fType; |
- union { |
- void* fVoids; |
- Object** fObjects; |
- Array** fArrays; |
- char** fStrings; |
- int32_t* fInts; |
- float* fFloats; |
- bool* fBools; |
- } fArray; |
- |
- void init(Type, int count, const void* src); |
- void dumpLevel(int level) const; |
- |
- friend class Object; |
- }; |
-}; |
- |
-#endif |