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

Side by Side Diff: ppapi/cpp/extensions/from_var_converter.h

Issue 13985026: Add a default constructor for VarArrayBuffer, so that it can be used by ext::DictField. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 | « ppapi/cpp/extensions/dev/socket_dev.cc ('k') | ppapi/cpp/var_array_buffer.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 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_ 5 #ifndef PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_
6 #define PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_ 6 #define PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "ppapi/c/pp_var.h" 10 #include "ppapi/c/pp_var.h"
11 #include "ppapi/cpp/dev/var_array_dev.h" 11 #include "ppapi/cpp/dev/var_array_dev.h"
12 #include "ppapi/cpp/dev/var_dictionary_dev.h" 12 #include "ppapi/cpp/dev/var_dictionary_dev.h"
13 #include "ppapi/cpp/extensions/optional.h" 13 #include "ppapi/cpp/extensions/optional.h"
14 #include "ppapi/cpp/logging.h" 14 #include "ppapi/cpp/logging.h"
15 #include "ppapi/cpp/var.h" 15 #include "ppapi/cpp/var.h"
16 #include "ppapi/cpp/var_array_buffer.h"
16 17
17 namespace pp { 18 namespace pp {
18 namespace ext { 19 namespace ext {
19 namespace internal { 20 namespace internal {
20 21
21 template <class T> 22 template <class T>
22 class FromVarConverterBase { 23 class FromVarConverterBase {
23 public: 24 public:
24 T& value() { return value_; } 25 T& value() { return value_; }
25 26
26 protected: 27 protected:
27 FromVarConverterBase() : value_() { 28 FromVarConverterBase() : value_() {
28 } 29 }
29 30
30 explicit FromVarConverterBase(const T& value) : value_(value) { 31 explicit FromVarConverterBase(const T& value) : value_(value) {
31 } 32 }
32 33
33 ~FromVarConverterBase() { 34 ~FromVarConverterBase() {
34 } 35 }
35 36
36 T value_; 37 T value_;
37 }; 38 };
38 39
39 template <class T> 40 template <class T>
40 class FromVarConverter : public FromVarConverterBase<T> { 41 class FromVarConverter : public FromVarConverterBase<T> {
41 public: 42 public:
42 FromVarConverter() { 43 FromVarConverter() {
43 } 44 }
44 45
45 FromVarConverter(const PP_Var& var) { 46 explicit FromVarConverter(const PP_Var& var) {
46 Set(var); 47 Set(var);
47 } 48 }
48 49
49 ~FromVarConverter() { 50 ~FromVarConverter() {
50 } 51 }
51 52
52 void Set(const PP_Var& var) { 53 void Set(const PP_Var& var) {
53 bool succeeded = FromVarConverterBase<T>::value_.Populate(var); 54 bool succeeded = FromVarConverterBase<T>::value_.Populate(var);
54 // Suppress unused variable warnings. 55 // Suppress unused variable warnings.
55 static_cast<void>(succeeded); 56 static_cast<void>(succeeded);
56 PP_DCHECK(succeeded); 57 PP_DCHECK(succeeded);
57 } 58 }
58 }; 59 };
59 60
60 template <class T> 61 template <class T>
61 class FromVarConverter<Optional<T> > 62 class FromVarConverter<Optional<T> >
62 : public FromVarConverterBase<Optional<T> > { 63 : public FromVarConverterBase<Optional<T> > {
63 public: 64 public:
64 FromVarConverter() { 65 FromVarConverter() {
65 } 66 }
66 67
67 FromVarConverter(const PP_Var& var) { 68 explicit FromVarConverter(const PP_Var& var) {
68 Set(var); 69 Set(var);
69 } 70 }
70 71
71 ~FromVarConverter() { 72 ~FromVarConverter() {
72 } 73 }
73 74
74 void Set(const PP_Var& var) { 75 void Set(const PP_Var& var) {
75 if (var.type == PP_VARTYPE_UNDEFINED) { 76 if (var.type == PP_VARTYPE_UNDEFINED) {
76 FromVarConverterBase<Optional<T> >::value_.Reset(); 77 FromVarConverterBase<Optional<T> >::value_.Reset();
77 } else { 78 } else {
78 FromVarConverter<T> converter(var); 79 FromVarConverter<T> converter(var);
79 FromVarConverterBase<Optional<T> >::value_ = converter.value(); 80 FromVarConverterBase<Optional<T> >::value_ = converter.value();
80 } 81 }
81 } 82 }
82 }; 83 };
83 84
84 template <> 85 template <>
85 class FromVarConverter<bool> : public FromVarConverterBase<bool> { 86 class FromVarConverter<bool> : public FromVarConverterBase<bool> {
86 public: 87 public:
87 FromVarConverter() { 88 FromVarConverter() {
88 } 89 }
89 90
90 FromVarConverter(const PP_Var& var) { 91 explicit FromVarConverter(const PP_Var& var) {
91 Set(var); 92 Set(var);
92 } 93 }
93 94
94 ~FromVarConverter() { 95 ~FromVarConverter() {
95 } 96 }
96 97
97 void Set(const PP_Var& var) { 98 void Set(const PP_Var& var) {
98 FromVarConverterBase<bool>::value_ = Var(var).AsBool(); 99 FromVarConverterBase<bool>::value_ = Var(var).AsBool();
99 } 100 }
100 }; 101 };
101 102
102 template <> 103 template <>
103 class FromVarConverter<int32_t> : public FromVarConverterBase<int32_t> { 104 class FromVarConverter<int32_t> : public FromVarConverterBase<int32_t> {
104 public: 105 public:
105 FromVarConverter() { 106 FromVarConverter() {
106 } 107 }
107 108
108 FromVarConverter(const PP_Var& var) { 109 explicit FromVarConverter(const PP_Var& var) {
109 Set(var); 110 Set(var);
110 } 111 }
111 112
112 ~FromVarConverter() { 113 ~FromVarConverter() {
113 } 114 }
114 115
115 void Set(const PP_Var& var) { 116 void Set(const PP_Var& var) {
116 FromVarConverterBase<int32_t>::value_ = Var(var).AsInt(); 117 FromVarConverterBase<int32_t>::value_ = Var(var).AsInt();
117 } 118 }
118 }; 119 };
119 120
120 template <> 121 template <>
121 class FromVarConverter<double> : public FromVarConverterBase<double> { 122 class FromVarConverter<double> : public FromVarConverterBase<double> {
122 public: 123 public:
123 FromVarConverter() { 124 FromVarConverter() {
124 } 125 }
125 126
126 FromVarConverter(const PP_Var& var) { 127 explicit FromVarConverter(const PP_Var& var) {
127 Set(var); 128 Set(var);
128 } 129 }
129 130
130 ~FromVarConverter() { 131 ~FromVarConverter() {
131 } 132 }
132 133
133 void Set(const PP_Var& var) { 134 void Set(const PP_Var& var) {
134 FromVarConverterBase<double>::value_ = Var(var).AsDouble(); 135 FromVarConverterBase<double>::value_ = Var(var).AsDouble();
135 } 136 }
136 }; 137 };
137 138
138 template <> 139 template <>
139 class FromVarConverter<std::string> : public FromVarConverterBase<std::string> { 140 class FromVarConverter<std::string> : public FromVarConverterBase<std::string> {
140 public: 141 public:
141 FromVarConverter() { 142 FromVarConverter() {
142 } 143 }
143 144
144 FromVarConverter(const PP_Var& var) { 145 explicit FromVarConverter(const PP_Var& var) {
145 Set(var); 146 Set(var);
146 } 147 }
147 148
148 ~FromVarConverter() { 149 ~FromVarConverter() {
149 } 150 }
150 151
151 void Set(const PP_Var& var) { 152 void Set(const PP_Var& var) {
152 FromVarConverterBase<std::string>::value_ = Var(var).AsString(); 153 FromVarConverterBase<std::string>::value_ = Var(var).AsString();
153 } 154 }
154 }; 155 };
155 156
156 template <> 157 template <>
157 class FromVarConverter<Var> : public FromVarConverterBase<Var> { 158 class FromVarConverter<Var> : public FromVarConverterBase<Var> {
158 public: 159 public:
159 FromVarConverter() { 160 FromVarConverter() {
160 } 161 }
161 162
162 FromVarConverter(const PP_Var& var) { 163 explicit FromVarConverter(const PP_Var& var) {
163 Set(var); 164 Set(var);
164 } 165 }
165 166
166 ~FromVarConverter() { 167 ~FromVarConverter() {
167 } 168 }
168 169
169 void Set(const PP_Var& var) { 170 void Set(const PP_Var& var) {
170 FromVarConverterBase<Var>::value_ = Var(var); 171 FromVarConverterBase<Var>::value_ = Var(var);
171 } 172 }
172 }; 173 };
173 174
174 template <> 175 template <>
175 class FromVarConverter<VarArray_Dev> 176 class FromVarConverter<VarArray_Dev>
176 : public FromVarConverterBase<VarArray_Dev> { 177 : public FromVarConverterBase<VarArray_Dev> {
177 public: 178 public:
178 FromVarConverter() { 179 FromVarConverter() {
179 } 180 }
180 181
181 FromVarConverter(const PP_Var& var) { 182 explicit FromVarConverter(const PP_Var& var) {
182 Set(var); 183 Set(var);
183 } 184 }
184 185
185 ~FromVarConverter() { 186 ~FromVarConverter() {
186 } 187 }
187 188
188 void Set(const PP_Var& var) { 189 void Set(const PP_Var& var) {
189 FromVarConverterBase<VarArray_Dev>::value_ = Var(var); 190 FromVarConverterBase<VarArray_Dev>::value_ = Var(var);
190 } 191 }
191 }; 192 };
192 193
193 template <> 194 template <>
194 class FromVarConverter<VarDictionary_Dev> 195 class FromVarConverter<VarDictionary_Dev>
195 : public FromVarConverterBase<VarDictionary_Dev> { 196 : public FromVarConverterBase<VarDictionary_Dev> {
196 public: 197 public:
197 FromVarConverter() { 198 FromVarConverter() {
198 } 199 }
199 200
200 FromVarConverter(const PP_Var& var) { 201 explicit FromVarConverter(const PP_Var& var) {
201 Set(var); 202 Set(var);
202 } 203 }
203 204
204 ~FromVarConverter() { 205 ~FromVarConverter() {
205 } 206 }
206 207
207 void Set(const PP_Var& var) { 208 void Set(const PP_Var& var) {
208 FromVarConverterBase<VarDictionary_Dev>::value_ = Var(var); 209 FromVarConverterBase<VarDictionary_Dev>::value_ = Var(var);
209 } 210 }
210 }; 211 };
211 212
213 template <>
214 class FromVarConverter<VarArrayBuffer>
215 : public FromVarConverterBase<VarArrayBuffer> {
216 public:
217 FromVarConverter() {
218 }
219
220 explicit FromVarConverter(const PP_Var& var) {
221 Set(var);
222 }
223
224 ~FromVarConverter() {
225 }
226
227 void Set(const PP_Var& var) {
228 FromVarConverterBase<VarArrayBuffer>::value_ = Var(var);
229 }
230 };
231
212 } // namespace internal 232 } // namespace internal
213 } // namespace ext 233 } // namespace ext
214 } // namespace pp 234 } // namespace pp
215 235
216 #endif // PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_ 236 #endif // PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_
OLDNEW
« no previous file with comments | « ppapi/cpp/extensions/dev/socket_dev.cc ('k') | ppapi/cpp/var_array_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698