Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(687)

Side by Side Diff: Source/platform/JSONValues.h

Issue 1213003004: Fix virtual/override/final usage in Source/platform/. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/platform/PODArena.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 static PassRefPtr<JSONBasicValue> create(int value) 140 static PassRefPtr<JSONBasicValue> create(int value)
141 { 141 {
142 return adoptRef(new JSONBasicValue(value)); 142 return adoptRef(new JSONBasicValue(value));
143 } 143 }
144 144
145 static PassRefPtr<JSONBasicValue> create(double value) 145 static PassRefPtr<JSONBasicValue> create(double value)
146 { 146 {
147 return adoptRef(new JSONBasicValue(value)); 147 return adoptRef(new JSONBasicValue(value));
148 } 148 }
149 149
150 virtual bool asBoolean(bool* output) const override; 150 bool asBoolean(bool* output) const override;
151 virtual bool asNumber(double* output) const override; 151 bool asNumber(double* output) const override;
152 virtual bool asNumber(long* output) const override; 152 bool asNumber(long* output) const override;
153 virtual bool asNumber(int* output) const override; 153 bool asNumber(int* output) const override;
154 virtual bool asNumber(unsigned long* output) const override; 154 bool asNumber(unsigned long* output) const override;
155 virtual bool asNumber(unsigned* output) const override; 155 bool asNumber(unsigned* output) const override;
156 156
157 virtual void writeJSON(StringBuilder* output) const override; 157 void writeJSON(StringBuilder* output) const override;
158 158
159 private: 159 private:
160 explicit JSONBasicValue(bool value) : JSONValue(TypeBoolean), m_boolValue(va lue) { } 160 explicit JSONBasicValue(bool value) : JSONValue(TypeBoolean), m_boolValue(va lue) { }
161 explicit JSONBasicValue(int value) : JSONValue(TypeNumber), m_doubleValue((d ouble)value) { } 161 explicit JSONBasicValue(int value) : JSONValue(TypeNumber), m_doubleValue((d ouble)value) { }
162 explicit JSONBasicValue(double value) : JSONValue(TypeNumber), m_doubleValue (value) { } 162 explicit JSONBasicValue(double value) : JSONValue(TypeNumber), m_doubleValue (value) { }
163 163
164 union { 164 union {
165 bool m_boolValue; 165 bool m_boolValue;
166 double m_doubleValue; 166 double m_doubleValue;
167 }; 167 };
168 }; 168 };
169 169
170 class PLATFORM_EXPORT JSONString : public JSONValue { 170 class PLATFORM_EXPORT JSONString : public JSONValue {
171 public: 171 public:
172 static PassRefPtr<JSONString> create(const String& value) 172 static PassRefPtr<JSONString> create(const String& value)
173 { 173 {
174 return adoptRef(new JSONString(value)); 174 return adoptRef(new JSONString(value));
175 } 175 }
176 176
177 static PassRefPtr<JSONString> create(const char* value) 177 static PassRefPtr<JSONString> create(const char* value)
178 { 178 {
179 return adoptRef(new JSONString(value)); 179 return adoptRef(new JSONString(value));
180 } 180 }
181 181
182 virtual bool asString(String* output) const override; 182 bool asString(String* output) const override;
183 183
184 virtual void writeJSON(StringBuilder* output) const override; 184 void writeJSON(StringBuilder* output) const override;
185 185
186 private: 186 private:
187 explicit JSONString(const String& value) : JSONValue(TypeString), m_stringVa lue(value) { } 187 explicit JSONString(const String& value) : JSONValue(TypeString), m_stringVa lue(value) { }
188 explicit JSONString(const char* value) : JSONValue(TypeString), m_stringValu e(value) { } 188 explicit JSONString(const char* value) : JSONValue(TypeString), m_stringValu e(value) { }
189 189
190 String m_stringValue; 190 String m_stringValue;
191 }; 191 };
192 192
193 class PLATFORM_EXPORT JSONObjectBase : public JSONValue { 193 class PLATFORM_EXPORT JSONObjectBase : public JSONValue {
194 private: 194 private:
195 typedef HashMap<String, RefPtr<JSONValue>> Dictionary; 195 typedef HashMap<String, RefPtr<JSONValue>> Dictionary;
196 196
197 public: 197 public:
198 typedef Dictionary::iterator iterator; 198 typedef Dictionary::iterator iterator;
199 typedef Dictionary::const_iterator const_iterator; 199 typedef Dictionary::const_iterator const_iterator;
200 200
201 virtual PassRefPtr<JSONObject> asObject() override; 201 PassRefPtr<JSONObject> asObject() override;
202 JSONObject* openAccessors(); 202 JSONObject* openAccessors();
203 203
204 virtual void writeJSON(StringBuilder* output) const override; 204 void writeJSON(StringBuilder* output) const override;
205 205
206 int size() const { return m_data.size(); } 206 int size() const { return m_data.size(); }
207 207
208 protected: 208 protected:
209 virtual ~JSONObjectBase(); 209 ~JSONObjectBase() override;
210 210
211 virtual bool asObject(RefPtr<JSONObject>* output) override; 211 bool asObject(RefPtr<JSONObject>* output) override;
212 212
213 void setBoolean(const String& name, bool); 213 void setBoolean(const String& name, bool);
214 void setNumber(const String& name, double); 214 void setNumber(const String& name, double);
215 void setString(const String& name, const String&); 215 void setString(const String& name, const String&);
216 void setValue(const String& name, PassRefPtr<JSONValue>); 216 void setValue(const String& name, PassRefPtr<JSONValue>);
217 void setObject(const String& name, PassRefPtr<JSONObject>); 217 void setObject(const String& name, PassRefPtr<JSONObject>);
218 void setArray(const String& name, PassRefPtr<JSONArray>); 218 void setArray(const String& name, PassRefPtr<JSONArray>);
219 219
220 iterator find(const String& name); 220 iterator find(const String& name);
221 const_iterator find(const String& name) const; 221 const_iterator find(const String& name) const;
222 bool getBoolean(const String& name, bool* output) const; 222 bool getBoolean(const String& name, bool* output) const;
223 template<class T> bool getNumber(const String& name, T* output) const 223 template<class T> bool getNumber(const String& name, T* output) const
224 { 224 {
225 RefPtr<JSONValue> value = get(name); 225 RefPtr<JSONValue> value = get(name);
226 if (!value) 226 if (!value)
227 return false; 227 return false;
228 return value->asNumber(output); 228 return value->asNumber(output);
229 } 229 }
230 bool getString(const String& name, String* output) const; 230 bool getString(const String& name, String* output) const;
231 PassRefPtr<JSONObject> getObject(const String& name) const; 231 PassRefPtr<JSONObject> getObject(const String& name) const;
232 PassRefPtr<JSONArray> getArray(const String& name) const; 232 PassRefPtr<JSONArray> getArray(const String& name) const;
233 PassRefPtr<JSONValue> get(const String& name) const; 233 PassRefPtr<JSONValue> get(const String& name) const;
234 234
235 void remove(const String& name); 235 void remove(const String& name);
236 236
237 virtual void prettyWriteJSONInternal(StringBuilder* output, int depth) const override; 237 void prettyWriteJSONInternal(StringBuilder* output, int depth) const overrid e;
238 238
239 iterator begin() { return m_data.begin(); } 239 iterator begin() { return m_data.begin(); }
240 iterator end() { return m_data.end(); } 240 iterator end() { return m_data.end(); }
241 const_iterator begin() const { return m_data.begin(); } 241 const_iterator begin() const { return m_data.begin(); }
242 const_iterator end() const { return m_data.end(); } 242 const_iterator end() const { return m_data.end(); }
243 243
244 protected: 244 protected:
245 JSONObjectBase(); 245 JSONObjectBase();
246 246
247 private: 247 private:
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 280
281 using JSONObjectBase::size; 281 using JSONObjectBase::size;
282 }; 282 };
283 283
284 284
285 class PLATFORM_EXPORT JSONArrayBase : public JSONValue { 285 class PLATFORM_EXPORT JSONArrayBase : public JSONValue {
286 public: 286 public:
287 typedef Vector<RefPtr<JSONValue>>::iterator iterator; 287 typedef Vector<RefPtr<JSONValue>>::iterator iterator;
288 typedef Vector<RefPtr<JSONValue>>::const_iterator const_iterator; 288 typedef Vector<RefPtr<JSONValue>>::const_iterator const_iterator;
289 289
290 virtual PassRefPtr<JSONArray> asArray() override; 290 PassRefPtr<JSONArray> asArray() override;
291 291
292 unsigned length() const { return m_data.size(); } 292 unsigned length() const { return m_data.size(); }
293 293
294 virtual void writeJSON(StringBuilder* output) const override; 294 void writeJSON(StringBuilder* output) const override;
295 295
296 protected: 296 protected:
297 virtual ~JSONArrayBase(); 297 ~JSONArrayBase() override;
298 298
299 virtual bool asArray(RefPtr<JSONArray>* output) override; 299 bool asArray(RefPtr<JSONArray>* output) override;
300 300
301 void pushBoolean(bool); 301 void pushBoolean(bool);
302 void pushInt(int); 302 void pushInt(int);
303 void pushNumber(double); 303 void pushNumber(double);
304 void pushString(const String&); 304 void pushString(const String&);
305 void pushValue(PassRefPtr<JSONValue>); 305 void pushValue(PassRefPtr<JSONValue>);
306 void pushObject(PassRefPtr<JSONObject>); 306 void pushObject(PassRefPtr<JSONObject>);
307 void pushArray(PassRefPtr<JSONArray>); 307 void pushArray(PassRefPtr<JSONArray>);
308 308
309 PassRefPtr<JSONValue> get(size_t index); 309 PassRefPtr<JSONValue> get(size_t index);
310 310
311 virtual void prettyWriteJSONInternal(StringBuilder* output, int depth) const override; 311 void prettyWriteJSONInternal(StringBuilder* output, int depth) const overrid e;
312 312
313 iterator begin() { return m_data.begin(); } 313 iterator begin() { return m_data.begin(); }
314 iterator end() { return m_data.end(); } 314 iterator end() { return m_data.end(); }
315 const_iterator begin() const { return m_data.begin(); } 315 const_iterator begin() const { return m_data.begin(); }
316 const_iterator end() const { return m_data.end(); } 316 const_iterator end() const { return m_data.end(); }
317 317
318 protected: 318 protected:
319 JSONArrayBase(); 319 JSONArrayBase();
320 320
321 private: 321 private:
(...skipping 19 matching lines...) Expand all
341 341
342 using JSONArrayBase::get; 342 using JSONArrayBase::get;
343 343
344 using JSONArrayBase::begin; 344 using JSONArrayBase::begin;
345 using JSONArrayBase::end; 345 using JSONArrayBase::end;
346 }; 346 };
347 347
348 } // namespace blink 348 } // namespace blink
349 349
350 #endif // JSONValues_h 350 #endif // JSONValues_h
OLDNEW
« no previous file with comments | « no previous file | Source/platform/PODArena.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698