OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef Values_h | 5 #ifndef Values_h |
6 #define Values_h | 6 #define Values_h |
7 | 7 |
8 #include "platform/inspector_protocol/Allocator.h" | 8 //#include "Allocator.h" |
9 #include "platform/inspector_protocol/Collections.h" | 9 //#include "Collections.h" |
10 #include "platform/inspector_protocol/Platform.h" | 10 //#include "Platform.h" |
11 #include "platform/inspector_protocol/String16.h" | 11 //#include "String16.h" |
| 12 #include "{{export_macro_include}}" |
12 | 13 |
13 #include <vector> | 14 #include <vector> |
14 | 15 |
15 namespace blink { | 16 namespace blink { |
16 namespace protocol { | 17 namespace protocol { |
17 | 18 |
18 class ListValue; | 19 class ListValue; |
19 class DictionaryValue; | 20 class DictionaryValue; |
20 class Value; | 21 class Value; |
21 | 22 |
22 class PLATFORM_EXPORT Value { | 23 class {{export_macro}} Value { |
23 PROTOCOL_DISALLOW_COPY(Value); | 24 PROTOCOL_DISALLOW_COPY(Value); |
24 public: | 25 public: |
25 static const int maxDepth = 1000; | 26 static const int maxDepth = 1000; |
26 | 27 |
27 virtual ~Value() { } | 28 virtual ~Value() { } |
28 | 29 |
29 static std::unique_ptr<Value> null() | 30 static std::unique_ptr<Value> null() |
30 { | 31 { |
31 return wrapUnique(new Value()); | 32 return wrapUnique(new Value()); |
32 } | 33 } |
(...skipping 27 matching lines...) Expand all Loading... |
60 Value() : m_type(TypeNull) { } | 61 Value() : m_type(TypeNull) { } |
61 explicit Value(ValueType type) : m_type(type) { } | 62 explicit Value(ValueType type) : m_type(type) { } |
62 | 63 |
63 private: | 64 private: |
64 friend class DictionaryValue; | 65 friend class DictionaryValue; |
65 friend class ListValue; | 66 friend class ListValue; |
66 | 67 |
67 ValueType m_type; | 68 ValueType m_type; |
68 }; | 69 }; |
69 | 70 |
70 class PLATFORM_EXPORT FundamentalValue : public Value { | 71 class {{export_macro}} FundamentalValue : public Value { |
71 public: | 72 public: |
72 static std::unique_ptr<FundamentalValue> create(bool value) | 73 static std::unique_ptr<FundamentalValue> create(bool value) |
73 { | 74 { |
74 return wrapUnique(new FundamentalValue(value)); | 75 return wrapUnique(new FundamentalValue(value)); |
75 } | 76 } |
76 | 77 |
77 static std::unique_ptr<FundamentalValue> create(int value) | 78 static std::unique_ptr<FundamentalValue> create(int value) |
78 { | 79 { |
79 return wrapUnique(new FundamentalValue(value)); | 80 return wrapUnique(new FundamentalValue(value)); |
80 } | 81 } |
(...skipping 14 matching lines...) Expand all Loading... |
95 explicit FundamentalValue(int value) : Value(TypeInteger), m_integerValue(va
lue) { } | 96 explicit FundamentalValue(int value) : Value(TypeInteger), m_integerValue(va
lue) { } |
96 explicit FundamentalValue(double value) : Value(TypeDouble), m_doubleValue(v
alue) { } | 97 explicit FundamentalValue(double value) : Value(TypeDouble), m_doubleValue(v
alue) { } |
97 | 98 |
98 union { | 99 union { |
99 bool m_boolValue; | 100 bool m_boolValue; |
100 double m_doubleValue; | 101 double m_doubleValue; |
101 int m_integerValue; | 102 int m_integerValue; |
102 }; | 103 }; |
103 }; | 104 }; |
104 | 105 |
105 class PLATFORM_EXPORT StringValue : public Value { | 106 class {{export_macro}} StringValue : public Value { |
106 public: | 107 public: |
107 static std::unique_ptr<StringValue> create(const String16& value) | 108 static std::unique_ptr<StringValue> create(const String16& value) |
108 { | 109 { |
109 return wrapUnique(new StringValue(value)); | 110 return wrapUnique(new StringValue(value)); |
110 } | 111 } |
111 | 112 |
112 static std::unique_ptr<StringValue> create(const char* value) | 113 static std::unique_ptr<StringValue> create(const char* value) |
113 { | 114 { |
114 return wrapUnique(new StringValue(value)); | 115 return wrapUnique(new StringValue(value)); |
115 } | 116 } |
116 | 117 |
117 bool asString(String16* output) const override; | 118 bool asString(String16* output) const override; |
118 void writeJSON(String16Builder* output) const override; | 119 void writeJSON(String16Builder* output) const override; |
119 std::unique_ptr<Value> clone() const override; | 120 std::unique_ptr<Value> clone() const override; |
120 | 121 |
121 private: | 122 private: |
122 explicit StringValue(const String16& value) : Value(TypeString), m_stringVal
ue(value) { } | 123 explicit StringValue(const String16& value) : Value(TypeString), m_stringVal
ue(value) { } |
123 explicit StringValue(const char* value) : Value(TypeString), m_stringValue(v
alue) { } | 124 explicit StringValue(const char* value) : Value(TypeString), m_stringValue(v
alue) { } |
124 | 125 |
125 String16 m_stringValue; | 126 String16 m_stringValue; |
126 }; | 127 }; |
127 | 128 |
128 class PLATFORM_EXPORT SerializedValue : public Value { | 129 class {{export_macro}} SerializedValue : public Value { |
129 public: | 130 public: |
130 static std::unique_ptr<SerializedValue> create(const String16& value) | 131 static std::unique_ptr<SerializedValue> create(const String16& value) |
131 { | 132 { |
132 return wrapUnique(new SerializedValue(value)); | 133 return wrapUnique(new SerializedValue(value)); |
133 } | 134 } |
134 | 135 |
135 bool asSerialized(String16* output) const override; | 136 bool asSerialized(String16* output) const override; |
136 void writeJSON(String16Builder* output) const override; | 137 void writeJSON(String16Builder* output) const override; |
137 std::unique_ptr<Value> clone() const override; | 138 std::unique_ptr<Value> clone() const override; |
138 | 139 |
139 private: | 140 private: |
140 explicit SerializedValue(const String16& value) : Value(TypeSerialized), m_s
erializedValue(value) { } | 141 explicit SerializedValue(const String16& value) : Value(TypeSerialized), m_s
erializedValue(value) { } |
141 explicit SerializedValue(const char* value) : Value(TypeSerialized), m_seria
lizedValue(value) { } | 142 explicit SerializedValue(const char* value) : Value(TypeSerialized), m_seria
lizedValue(value) { } |
142 | 143 |
143 String16 m_serializedValue; | 144 String16 m_serializedValue; |
144 }; | 145 }; |
145 | 146 |
146 class PLATFORM_EXPORT DictionaryValue : public Value { | 147 class {{export_macro}} DictionaryValue : public Value { |
147 public: | 148 public: |
148 using Entry = std::pair<String16, Value*>; | 149 using Entry = std::pair<String16, Value*>; |
149 static std::unique_ptr<DictionaryValue> create() | 150 static std::unique_ptr<DictionaryValue> create() |
150 { | 151 { |
151 return wrapUnique(new DictionaryValue()); | 152 return wrapUnique(new DictionaryValue()); |
152 } | 153 } |
153 | 154 |
154 static DictionaryValue* cast(Value* value) | 155 static DictionaryValue* cast(Value* value) |
155 { | 156 { |
156 if (!value || value->type() != TypeObject) | 157 if (!value || value->type() != TypeObject) |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 m_data[key] = std::move(value); | 204 m_data[key] = std::move(value); |
204 if (isNew) | 205 if (isNew) |
205 m_order.push_back(key); | 206 m_order.push_back(key); |
206 } | 207 } |
207 | 208 |
208 using Dictionary = protocol::HashMap<String16, std::unique_ptr<Value>>; | 209 using Dictionary = protocol::HashMap<String16, std::unique_ptr<Value>>; |
209 Dictionary m_data; | 210 Dictionary m_data; |
210 std::vector<String16> m_order; | 211 std::vector<String16> m_order; |
211 }; | 212 }; |
212 | 213 |
213 class PLATFORM_EXPORT ListValue : public Value { | 214 class {{export_macro}} ListValue : public Value { |
214 public: | 215 public: |
215 static std::unique_ptr<ListValue> create() | 216 static std::unique_ptr<ListValue> create() |
216 { | 217 { |
217 return wrapUnique(new ListValue()); | 218 return wrapUnique(new ListValue()); |
218 } | 219 } |
219 | 220 |
220 static ListValue* cast(Value* value) | 221 static ListValue* cast(Value* value) |
221 { | 222 { |
222 if (!value || value->type() != TypeArray) | 223 if (!value || value->type() != TypeArray) |
223 return nullptr; | 224 return nullptr; |
(...skipping 17 matching lines...) Expand all Loading... |
241 | 242 |
242 private: | 243 private: |
243 ListValue(); | 244 ListValue(); |
244 std::vector<std::unique_ptr<Value>> m_data; | 245 std::vector<std::unique_ptr<Value>> m_data; |
245 }; | 246 }; |
246 | 247 |
247 } // namespace protocol | 248 } // namespace protocol |
248 } // namespace blink | 249 } // namespace blink |
249 | 250 |
250 #endif // Values_h | 251 #endif // Values_h |
OLD | NEW |