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

Side by Side Diff: base/values.cc

Issue 3023037: Remove Value/StringValue's ...UTF16() methods in favour of overloading. (Closed)
Patch Set: I'm an idiot. Created 10 years, 4 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
« no previous file with comments | « base/values.h ('k') | base/values_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "base/values.h" 5 #include "base/values.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 10
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 Value* Value::CreateRealValue(double in_value) { 83 Value* Value::CreateRealValue(double in_value) {
84 return new FundamentalValue(in_value); 84 return new FundamentalValue(in_value);
85 } 85 }
86 86
87 // static 87 // static
88 Value* Value::CreateStringValue(const std::string& in_value) { 88 Value* Value::CreateStringValue(const std::string& in_value) {
89 return new StringValue(in_value); 89 return new StringValue(in_value);
90 } 90 }
91 91
92 // static 92 // static
93 Value* Value::CreateStringValue(const string16& in_value) {
94 return new StringValue(in_value);
95 }
96
97 #if !defined(WCHAR_T_IS_UTF16)
98 // TODO(viettrungluu): Deprecated and to be removed:
99 // static
93 Value* Value::CreateStringValue(const std::wstring& in_value) { 100 Value* Value::CreateStringValue(const std::wstring& in_value) {
94 return new StringValue(in_value); 101 return new StringValue(in_value);
95 } 102 }
96 103 #endif
97 // static
98 Value* Value::CreateStringValueFromUTF16(const string16& in_value) {
99 return new StringValue(in_value);
100 }
101 104
102 // static 105 // static
103 BinaryValue* Value::CreateBinaryValue(char* buffer, size_t size) { 106 BinaryValue* Value::CreateBinaryValue(char* buffer, size_t size) {
104 return BinaryValue::Create(buffer, size); 107 return BinaryValue::Create(buffer, size);
105 } 108 }
106 109
107 bool Value::GetAsBoolean(bool* in_value) const { 110 bool Value::GetAsBoolean(bool* out_value) const {
108 return false; 111 return false;
109 } 112 }
110 113
111 bool Value::GetAsInteger(int* in_value) const { 114 bool Value::GetAsInteger(int* out_value) const {
112 return false; 115 return false;
113 } 116 }
114 117
115 bool Value::GetAsReal(double* in_value) const { 118 bool Value::GetAsReal(double* out_value) const {
116 return false; 119 return false;
117 } 120 }
118 121
119 bool Value::GetAsString(std::string* in_value) const { 122 bool Value::GetAsString(std::string* out_value) const {
120 return false; 123 return false;
121 } 124 }
122 125
123 bool Value::GetAsString(std::wstring* in_value) const { 126 bool Value::GetAsString(string16* out_value) const {
124 return false; 127 return false;
125 } 128 }
126 129
127 bool Value::GetAsUTF16(string16* out_value) const { 130 #if !defined(WCHAR_T_IS_UTF16)
131 // TODO(viettrungluu): Deprecated and to be removed:
132 bool Value::GetAsString(std::wstring* out_value) const {
128 return false; 133 return false;
129 } 134 }
135 #endif
130 136
131 Value* Value::DeepCopy() const { 137 Value* Value::DeepCopy() const {
132 // This method should only be getting called for null Values--all subclasses 138 // This method should only be getting called for null Values--all subclasses
133 // need to provide their own implementation;. 139 // need to provide their own implementation;.
134 DCHECK(IsType(TYPE_NULL)); 140 DCHECK(IsType(TYPE_NULL));
135 return CreateNullValue(); 141 return CreateNullValue();
136 } 142 }
137 143
138 bool Value::Equals(const Value* other) const { 144 bool Value::Equals(const Value* other) const {
139 // This method should only be getting called for null Values--all subclasses 145 // This method should only be getting called for null Values--all subclasses
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 } 227 }
222 228
223 ///////////////////// StringValue //////////////////// 229 ///////////////////// StringValue ////////////////////
224 230
225 StringValue::StringValue(const std::string& in_value) 231 StringValue::StringValue(const std::string& in_value)
226 : Value(TYPE_STRING), 232 : Value(TYPE_STRING),
227 value_(in_value) { 233 value_(in_value) {
228 DCHECK(IsStringUTF8(in_value)); 234 DCHECK(IsStringUTF8(in_value));
229 } 235 }
230 236
237 StringValue::StringValue(const string16& in_value)
238 : Value(TYPE_STRING),
239 value_(UTF16ToUTF8(in_value)) {
240 }
241
242 #if !defined(WCHAR_T_IS_UTF16)
243 // TODO(viettrungluu): Deprecated and to be removed:
231 StringValue::StringValue(const std::wstring& in_value) 244 StringValue::StringValue(const std::wstring& in_value)
232 : Value(TYPE_STRING), 245 : Value(TYPE_STRING),
233 value_(WideToUTF8(in_value)) { 246 value_(WideToUTF8(in_value)) {
234 } 247 }
235
236 #if !defined(WCHAR_T_IS_UTF16)
237 StringValue::StringValue(const string16& in_value)
238 : Value(TYPE_STRING),
239 value_(UTF16ToUTF8(in_value)) {
240 }
241 #endif 248 #endif
242 249
243 StringValue::~StringValue() { 250 StringValue::~StringValue() {
244 } 251 }
245 252
246 bool StringValue::GetAsString(std::string* out_value) const { 253 bool StringValue::GetAsString(std::string* out_value) const {
247 if (out_value) 254 if (out_value)
248 *out_value = value_; 255 *out_value = value_;
249 return true; 256 return true;
250 } 257 }
251 258
259 bool StringValue::GetAsString(string16* out_value) const {
260 if (out_value)
261 *out_value = UTF8ToUTF16(value_);
262 return true;
263 }
264
265 #if !defined(WCHAR_T_IS_UTF16)
266 // TODO(viettrungluu): Deprecated and to be removed:
252 bool StringValue::GetAsString(std::wstring* out_value) const { 267 bool StringValue::GetAsString(std::wstring* out_value) const {
253 if (out_value) 268 if (out_value)
254 *out_value = UTF8ToWide(value_); 269 *out_value = UTF8ToWide(value_);
255 return true; 270 return true;
256 } 271 }
257 272 #endif
258 bool StringValue::GetAsUTF16(string16* out_value) const {
259 if (out_value)
260 *out_value = UTF8ToUTF16(value_);
261 return true;
262 }
263 273
264 Value* StringValue::DeepCopy() const { 274 Value* StringValue::DeepCopy() const {
265 return CreateStringValue(value_); 275 return CreateStringValue(value_);
266 } 276 }
267 277
268 bool StringValue::Equals(const Value* other) const { 278 bool StringValue::Equals(const Value* other) const {
269 if (other->GetType() != GetType()) 279 if (other->GetType() != GetType())
270 return false; 280 return false;
271 std::string lhs, rhs; 281 std::string lhs, rhs;
272 return GetAsString(&lhs) && other->GetAsString(&rhs) && lhs == rhs; 282 return GetAsString(&lhs) && other->GetAsString(&rhs) && lhs == rhs;
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 Set(path, CreateRealValue(in_value)); 443 Set(path, CreateRealValue(in_value));
434 } 444 }
435 445
436 void DictionaryValue::SetString(const std::string& path, 446 void DictionaryValue::SetString(const std::string& path,
437 const std::string& in_value) { 447 const std::string& in_value) {
438 Set(path, CreateStringValue(in_value)); 448 Set(path, CreateStringValue(in_value));
439 } 449 }
440 450
441 void DictionaryValue::SetStringFromUTF16(const std::string& path, 451 void DictionaryValue::SetStringFromUTF16(const std::string& path,
442 const string16& in_value) { 452 const string16& in_value) {
443 Set(path, CreateStringValueFromUTF16(in_value)); 453 Set(path, CreateStringValue(in_value));
444 } 454 }
445 455
446 // TODO(viettrungluu): Deprecated and to be removed: 456 // TODO(viettrungluu): Deprecated and to be removed:
447 void DictionaryValue::SetBoolean(const std::wstring& path, bool in_value) { 457 void DictionaryValue::SetBoolean(const std::wstring& path, bool in_value) {
448 Set(path, CreateBooleanValue(in_value)); 458 Set(path, CreateBooleanValue(in_value));
449 } 459 }
450 460
451 // TODO(viettrungluu): Deprecated and to be removed: 461 // TODO(viettrungluu): Deprecated and to be removed:
452 void DictionaryValue::SetInteger(const std::wstring& path, int in_value) { 462 void DictionaryValue::SetInteger(const std::wstring& path, int in_value) {
453 Set(path, CreateIntegerValue(in_value)); 463 Set(path, CreateIntegerValue(in_value));
(...skipping 12 matching lines...) Expand all
466 476
467 // TODO(viettrungluu): Deprecated and to be removed: 477 // TODO(viettrungluu): Deprecated and to be removed:
468 void DictionaryValue::SetString(const std::wstring& path, 478 void DictionaryValue::SetString(const std::wstring& path,
469 const std::wstring& in_value) { 479 const std::wstring& in_value) {
470 Set(path, CreateStringValue(in_value)); 480 Set(path, CreateStringValue(in_value));
471 } 481 }
472 482
473 // TODO(viettrungluu): Deprecated and to be removed: 483 // TODO(viettrungluu): Deprecated and to be removed:
474 void DictionaryValue::SetStringFromUTF16(const std::wstring& path, 484 void DictionaryValue::SetStringFromUTF16(const std::wstring& path,
475 const string16& in_value) { 485 const string16& in_value) {
476 Set(path, CreateStringValueFromUTF16(in_value)); 486 Set(path, CreateStringValue(in_value));
477 } 487 }
478 488
479 void DictionaryValue::SetWithoutPathExpansion(const std::string& key, 489 void DictionaryValue::SetWithoutPathExpansion(const std::string& key,
480 Value* in_value) { 490 Value* in_value) {
481 // If there's an existing value here, we need to delete it, because 491 // If there's an existing value here, we need to delete it, because
482 // we own all our children. 492 // we own all our children.
483 if (HasKey(key)) { 493 if (HasKey(key)) {
484 DCHECK(dictionary_[key] != in_value); // This would be bogus 494 DCHECK(dictionary_[key] != in_value); // This would be bogus
485 delete dictionary_[key]; 495 delete dictionary_[key];
486 } 496 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 562
553 return value->GetAsString(out_value); 563 return value->GetAsString(out_value);
554 } 564 }
555 565
556 bool DictionaryValue::GetStringAsUTF16(const std::string& path, 566 bool DictionaryValue::GetStringAsUTF16(const std::string& path,
557 string16* out_value) const { 567 string16* out_value) const {
558 Value* value; 568 Value* value;
559 if (!Get(path, &value)) 569 if (!Get(path, &value))
560 return false; 570 return false;
561 571
562 return value->GetAsUTF16(out_value); 572 return value->GetAsString(out_value);
563 } 573 }
564 574
565 bool DictionaryValue::GetStringASCII(const std::string& path, 575 bool DictionaryValue::GetStringASCII(const std::string& path,
566 std::string* out_value) const { 576 std::string* out_value) const {
567 std::string out; 577 std::string out;
568 if (!GetString(path, &out)) 578 if (!GetString(path, &out))
569 return false; 579 return false;
570 580
571 if (!IsStringASCII(out)) { 581 if (!IsStringASCII(out)) {
572 NOTREACHED(); 582 NOTREACHED();
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 return value->GetAsString(out_value); 721 return value->GetAsString(out_value);
712 } 722 }
713 723
714 bool DictionaryValue::GetStringAsUTF16WithoutPathExpansion( 724 bool DictionaryValue::GetStringAsUTF16WithoutPathExpansion(
715 const std::string& key, 725 const std::string& key,
716 string16* out_value) const { 726 string16* out_value) const {
717 Value* value; 727 Value* value;
718 if (!GetWithoutPathExpansion(key, &value)) 728 if (!GetWithoutPathExpansion(key, &value))
719 return false; 729 return false;
720 730
721 return value->GetAsUTF16(out_value); 731 return value->GetAsString(out_value);
722 } 732 }
723 733
724 bool DictionaryValue::GetDictionaryWithoutPathExpansion( 734 bool DictionaryValue::GetDictionaryWithoutPathExpansion(
725 const std::string& key, 735 const std::string& key,
726 DictionaryValue** out_value) const { 736 DictionaryValue** out_value) const {
727 Value* value; 737 Value* value;
728 bool result = GetWithoutPathExpansion(key, &value); 738 bool result = GetWithoutPathExpansion(key, &value);
729 if (!result || !value->IsType(TYPE_DICTIONARY)) 739 if (!result || !value->IsType(TYPE_DICTIONARY))
730 return false; 740 return false;
731 741
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
944 return false; 954 return false;
945 955
946 return value->GetAsString(out_value); 956 return value->GetAsString(out_value);
947 } 957 }
948 958
949 bool ListValue::GetStringAsUTF16(size_t index, string16* out_value) const { 959 bool ListValue::GetStringAsUTF16(size_t index, string16* out_value) const {
950 Value* value; 960 Value* value;
951 if (!Get(index, &value)) 961 if (!Get(index, &value))
952 return false; 962 return false;
953 963
954 return value->GetAsUTF16(out_value); 964 return value->GetAsString(out_value);
955 } 965 }
956 966
957 bool ListValue::GetBinary(size_t index, BinaryValue** out_value) const { 967 bool ListValue::GetBinary(size_t index, BinaryValue** out_value) const {
958 Value* value; 968 Value* value;
959 bool result = Get(index, &value); 969 bool result = Get(index, &value);
960 if (!result || !value->IsType(TYPE_BINARY)) 970 if (!result || !value->IsType(TYPE_BINARY))
961 return false; 971 return false;
962 972
963 if (out_value) 973 if (out_value)
964 *out_value = static_cast<BinaryValue*>(value); 974 *out_value = static_cast<BinaryValue*>(value);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1067 return false; 1077 return false;
1068 } 1078 }
1069 if (lhs_it != end() || rhs_it != other_list->end()) 1079 if (lhs_it != end() || rhs_it != other_list->end())
1070 return false; 1080 return false;
1071 1081
1072 return true; 1082 return true;
1073 } 1083 }
1074 1084
1075 ValueSerializer::~ValueSerializer() { 1085 ValueSerializer::~ValueSerializer() {
1076 } 1086 }
OLDNEW
« no previous file with comments | « base/values.h ('k') | base/values_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698