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

Side by Side Diff: third_party/WebKit/Source/platform/inspector_protocol/Array.h

Issue 1767883002: DevTools: generate string16-based handlers for v8_inspector. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: for landing 2 Created 4 years, 9 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
OLDNEW
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 Array_h 5 #ifndef Array_h
6 #define Array_h 6 #define Array_h
7 7
8 #include "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/inspector_protocol/Collections.h" 9 #include "platform/inspector_protocol/Collections.h"
10 #include "platform/inspector_protocol/ErrorSupport.h" 10 #include "platform/inspector_protocol/ErrorSupport.h"
11 #include "platform/inspector_protocol/String16.h"
11 #include "platform/inspector_protocol/ValueConversions.h" 12 #include "platform/inspector_protocol/ValueConversions.h"
12 #include "platform/inspector_protocol/Values.h" 13 #include "platform/inspector_protocol/Values.h"
13 #include "wtf/text/WTFString.h"
14 14
15 namespace blink { 15 namespace blink {
16 namespace protocol { 16 namespace protocol {
17 17
18 template<typename T> 18 template<typename T>
19 class ArrayBase { 19 class ArrayBase {
20 public: 20 public:
21 static PassOwnPtr<Array<T>> create() 21 static PassOwnPtr<Array<T>> create()
22 { 22 {
23 return adoptPtr(new Array<T>()); 23 return adoptPtr(new Array<T>());
24 } 24 }
25 25
26 static PassOwnPtr<Array<T>> parse(protocol::Value* value, ErrorSupport* erro rs) 26 static PassOwnPtr<Array<T>> parse(protocol::Value* value, ErrorSupport* erro rs)
27 { 27 {
28 protocol::ListValue* array = ListValue::cast(value); 28 protocol::ListValue* array = ListValue::cast(value);
29 if (!array) { 29 if (!array) {
30 errors->addError("array expected"); 30 errors->addError("array expected");
31 return nullptr; 31 return nullptr;
32 } 32 }
33 errors->push(); 33 errors->push();
34 OwnPtr<Array<T>> result = adoptPtr(new Array<T>()); 34 OwnPtr<Array<T>> result = adoptPtr(new Array<T>());
35 for (size_t i = 0; i < array->size(); ++i) { 35 for (size_t i = 0; i < array->size(); ++i) {
36 errors->setName("[" + String::number(i) + "]"); 36 errors->setName("[" + String16::number(i) + "]");
37 T item = FromValue<T>::parse(array->at(i), errors); 37 T item = FromValue<T>::parse(array->at(i), errors);
38 result->m_vector.append(item); 38 result->m_vector.append(item);
39 } 39 }
40 errors->pop(); 40 errors->pop();
41 if (errors->hasErrors()) 41 if (errors->hasErrors())
42 return nullptr; 42 return nullptr;
43 return result.release(); 43 return result.release();
44 } 44 }
45 45
46 void addItem(const T& value) 46 void addItem(const T& value)
(...skipping 17 matching lines...) Expand all
64 for (auto& item : m_vector) 64 for (auto& item : m_vector)
65 result->pushValue(toValue(item)); 65 result->pushValue(toValue(item));
66 return result.release(); 66 return result.release();
67 } 67 }
68 68
69 private: 69 private:
70 protocol::Vector<T> m_vector; 70 protocol::Vector<T> m_vector;
71 }; 71 };
72 72
73 template<> class Array<String> : public ArrayBase<String> {}; 73 template<> class Array<String> : public ArrayBase<String> {};
74 template<> class Array<String16> : public ArrayBase<String16> {};
74 template<> class Array<int> : public ArrayBase<int> {}; 75 template<> class Array<int> : public ArrayBase<int> {};
75 template<> class Array<double> : public ArrayBase<double> {}; 76 template<> class Array<double> : public ArrayBase<double> {};
76 template<> class Array<bool> : public ArrayBase<bool> {}; 77 template<> class Array<bool> : public ArrayBase<bool> {};
77 78
78 template<typename T> 79 template<typename T>
79 class Array { 80 class Array {
80 public: 81 public:
81 static PassOwnPtr<Array<T>> create() 82 static PassOwnPtr<Array<T>> create()
82 { 83 {
83 return adoptPtr(new Array<T>()); 84 return adoptPtr(new Array<T>());
84 } 85 }
85 86
86 static PassOwnPtr<Array<T>> parse(protocol::Value* value, ErrorSupport* erro rs) 87 static PassOwnPtr<Array<T>> parse(protocol::Value* value, ErrorSupport* erro rs)
87 { 88 {
88 protocol::ListValue* array = ListValue::cast(value); 89 protocol::ListValue* array = ListValue::cast(value);
89 if (!array) { 90 if (!array) {
90 errors->addError("array expected"); 91 errors->addError("array expected");
91 return nullptr; 92 return nullptr;
92 } 93 }
93 OwnPtr<Array<T>> result = adoptPtr(new Array<T>()); 94 OwnPtr<Array<T>> result = adoptPtr(new Array<T>());
94 errors->push(); 95 errors->push();
95 for (size_t i = 0; i < array->size(); ++i) { 96 for (size_t i = 0; i < array->size(); ++i) {
96 errors->setName("[" + String::number(i) + "]"); 97 errors->setName("[" + String16::number(i) + "]");
97 OwnPtr<T> item = FromValue<T>::parse(array->at(i), errors); 98 OwnPtr<T> item = FromValue<T>::parse(array->at(i), errors);
98 result->m_vector.append(item.release()); 99 result->m_vector.append(item.release());
99 } 100 }
100 errors->pop(); 101 errors->pop();
101 return result.release(); 102 return result.release();
102 } 103 }
103 104
104 void addItem(PassOwnPtr<T> value) 105 void addItem(PassOwnPtr<T> value)
105 { 106 {
106 m_vector.append(value); 107 m_vector.append(value);
(...skipping 18 matching lines...) Expand all
125 } 126 }
126 127
127 private: 128 private:
128 protocol::Vector<OwnPtr<T>> m_vector; 129 protocol::Vector<OwnPtr<T>> m_vector;
129 }; 130 };
130 131
131 } // namespace platform 132 } // namespace platform
132 } // namespace blink 133 } // namespace blink
133 134
134 #endif // !defined(Array_h) 135 #endif // !defined(Array_h)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698