| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file specifies a recursive data storage class called Value intended for | 5 // This file specifies a recursive data storage class called Value intended for |
| 6 // storing settings and other persistable data. | 6 // storing settings and other persistable data. |
| 7 // | 7 // |
| 8 // A Value represents something that can be stored in JSON or passed to/from | 8 // A Value represents something that can be stored in JSON or passed to/from |
| 9 // JavaScript. As such, it is NOT a generalized variant type, since only the | 9 // JavaScript. As such, it is NOT a generalized variant type, since only the |
| 10 // types supported by JavaScript/JSON are supported. | 10 // types supported by JavaScript/JSON are supported. |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 class BASE_EXPORT ValueDeserializer { | 524 class BASE_EXPORT ValueDeserializer { |
| 525 public: | 525 public: |
| 526 virtual ~ValueDeserializer(); | 526 virtual ~ValueDeserializer(); |
| 527 | 527 |
| 528 // This method deserializes the subclass-specific format into a Value object. | 528 // This method deserializes the subclass-specific format into a Value object. |
| 529 // If the return value is non-NULL, the caller takes ownership of returned | 529 // If the return value is non-NULL, the caller takes ownership of returned |
| 530 // Value. If the return value is NULL, and if error_code is non-NULL, | 530 // Value. If the return value is NULL, and if error_code is non-NULL, |
| 531 // error_code will be set with the underlying error. | 531 // error_code will be set with the underlying error. |
| 532 // If |error_message| is non-null, it will be filled in with a formatted | 532 // If |error_message| is non-null, it will be filled in with a formatted |
| 533 // error message including the location of the error if appropriate. | 533 // error message including the location of the error if appropriate. |
| 534 virtual Value* Deserialize(int* error_code, std::string* error_str) = 0; | 534 virtual scoped_ptr<Value> Deserialize(int* error_code, |
| 535 std::string* error_str) = 0; |
| 535 }; | 536 }; |
| 536 | 537 |
| 537 // Stream operator so Values can be used in assertion statements. In order that | 538 // Stream operator so Values can be used in assertion statements. In order that |
| 538 // gtest uses this operator to print readable output on test failures, we must | 539 // gtest uses this operator to print readable output on test failures, we must |
| 539 // override each specific type. Otherwise, the default template implementation | 540 // override each specific type. Otherwise, the default template implementation |
| 540 // is preferred over an upcast. | 541 // is preferred over an upcast. |
| 541 BASE_EXPORT std::ostream& operator<<(std::ostream& out, const Value& value); | 542 BASE_EXPORT std::ostream& operator<<(std::ostream& out, const Value& value); |
| 542 | 543 |
| 543 BASE_EXPORT inline std::ostream& operator<<(std::ostream& out, | 544 BASE_EXPORT inline std::ostream& operator<<(std::ostream& out, |
| 544 const FundamentalValue& value) { | 545 const FundamentalValue& value) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 556 } | 557 } |
| 557 | 558 |
| 558 BASE_EXPORT inline std::ostream& operator<<(std::ostream& out, | 559 BASE_EXPORT inline std::ostream& operator<<(std::ostream& out, |
| 559 const ListValue& value) { | 560 const ListValue& value) { |
| 560 return out << static_cast<const Value&>(value); | 561 return out << static_cast<const Value&>(value); |
| 561 } | 562 } |
| 562 | 563 |
| 563 } // namespace base | 564 } // namespace base |
| 564 | 565 |
| 565 #endif // BASE_VALUES_H_ | 566 #endif // BASE_VALUES_H_ |
| OLD | NEW |