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

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

Issue 13490003: Apps v2 in Pepper: Add C/C++ definition for chrome.socket. (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
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"
12 #include "ppapi/cpp/dev/var_dictionary_dev.h"
11 #include "ppapi/cpp/extensions/optional.h" 13 #include "ppapi/cpp/extensions/optional.h"
12 #include "ppapi/cpp/logging.h" 14 #include "ppapi/cpp/logging.h"
13 #include "ppapi/cpp/var.h" 15 #include "ppapi/cpp/var.h"
14 16
15 namespace pp { 17 namespace pp {
16 namespace ext { 18 namespace ext {
17 namespace internal { 19 namespace internal {
18 20
19 template <class T> 21 template <class T>
20 class FromVarConverterBase { 22 class FromVarConverterBase {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 if (var.type == PP_VARTYPE_UNDEFINED) { 75 if (var.type == PP_VARTYPE_UNDEFINED) {
74 FromVarConverterBase<Optional<T> >::value_.Reset(); 76 FromVarConverterBase<Optional<T> >::value_.Reset();
75 } else { 77 } else {
76 FromVarConverter<T> converter(var); 78 FromVarConverter<T> converter(var);
77 FromVarConverterBase<Optional<T> >::value_ = converter.value(); 79 FromVarConverterBase<Optional<T> >::value_ = converter.value();
78 } 80 }
79 } 81 }
80 }; 82 };
81 83
82 template <> 84 template <>
83 class FromVarConverter<std::string> : public FromVarConverterBase<std::string> { 85 class FromVarConverter<bool> : public FromVarConverterBase<bool> {
84 public: 86 public:
85 FromVarConverter() { 87 FromVarConverter() {
86 } 88 }
87 89
88 FromVarConverter(const PP_Var& var) { 90 FromVarConverter(const PP_Var& var) {
89 Set(var); 91 Set(var);
90 } 92 }
91 93
92 ~FromVarConverter() { 94 ~FromVarConverter() {
93 } 95 }
94 96
95 void Set(const PP_Var& var) { 97 void Set(const PP_Var& var) {
96 FromVarConverterBase<std::string>::value_ = Var(var).AsString(); 98 FromVarConverterBase<bool>::value_ = Var(var).AsBool();
97 } 99 }
98 }; 100 };
99 101
102 template <>
103 class FromVarConverter<int32_t> : public FromVarConverterBase<int32_t> {
104 public:
105 FromVarConverter() {
106 }
107
108 FromVarConverter(const PP_Var& var) {
109 Set(var);
110 }
111
112 ~FromVarConverter() {
113 }
114
115 void Set(const PP_Var& var) {
116 FromVarConverterBase<int32_t>::value_ = Var(var).AsInt();
117 }
118 };
119
100 template <> 120 template <>
101 class FromVarConverter<double> : public FromVarConverterBase<double> { 121 class FromVarConverter<double> : public FromVarConverterBase<double> {
102 public: 122 public:
103 FromVarConverter() { 123 FromVarConverter() {
104 } 124 }
105 125
106 FromVarConverter(const PP_Var& var) { 126 FromVarConverter(const PP_Var& var) {
107 Set(var); 127 Set(var);
108 } 128 }
109 129
110 ~FromVarConverter() { 130 ~FromVarConverter() {
111 } 131 }
112 132
113 void Set(const PP_Var& var) { 133 void Set(const PP_Var& var) {
114 FromVarConverterBase<double>::value_ = Var(var).AsDouble(); 134 FromVarConverterBase<double>::value_ = Var(var).AsDouble();
115 } 135 }
116 }; 136 };
117 137
138 template <>
139 class FromVarConverter<std::string> : public FromVarConverterBase<std::string> {
140 public:
141 FromVarConverter() {
142 }
143
144 FromVarConverter(const PP_Var& var) {
145 Set(var);
146 }
147
148 ~FromVarConverter() {
149 }
150
151 void Set(const PP_Var& var) {
152 FromVarConverterBase<std::string>::value_ = Var(var).AsString();
153 }
154 };
155
156 template <>
157 class FromVarConverter<Var> : public FromVarConverterBase<Var> {
158 public:
159 FromVarConverter() {
160 }
161
162 FromVarConverter(const PP_Var& var) {
163 Set(var);
164 }
165
166 ~FromVarConverter() {
167 }
168
169 void Set(const PP_Var& var) {
170 FromVarConverterBase<Var>::value_ = Var(var);
171 }
172 };
173
174 template <>
175 class FromVarConverter<VarArray_Dev>
176 : public FromVarConverterBase<VarArray_Dev> {
177 public:
178 FromVarConverter() {
179 }
180
181 FromVarConverter(const PP_Var& var) {
182 Set(var);
183 }
184
185 ~FromVarConverter() {
186 }
187
188 void Set(const PP_Var& var) {
189 FromVarConverterBase<VarArray_Dev>::value_ = Var(var);
190 }
191 };
192
193 template <>
194 class FromVarConverter<VarDictionary_Dev>
195 : public FromVarConverterBase<VarDictionary_Dev> {
196 public:
197 FromVarConverter() {
198 }
199
200 FromVarConverter(const PP_Var& var) {
201 Set(var);
202 }
203
204 ~FromVarConverter() {
205 }
206
207 void Set(const PP_Var& var) {
208 FromVarConverterBase<VarDictionary_Dev>::value_ = Var(var);
209 }
210 };
211
118 } // namespace internal 212 } // namespace internal
119 } // namespace ext 213 } // namespace ext
120 } // namespace pp 214 } // namespace pp
121 215
122 #endif // PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_ 216 #endif // PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698