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

Side by Side Diff: mojo/public/cpp/bindings/lib/array_serialization.h

Issue 1535943002: Convert Pass()→std::move() in //mojo/public/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Regenerate correctly Created 4 years, 12 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <string.h> // For |memcpy()|. 9 #include <string.h> // For |memcpy()|.
10 10
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 size += GetSerializedSize_(input[i]); 158 size += GetSerializedSize_(input[i]);
159 return size; 159 return size;
160 } 160 }
161 161
162 static void SerializeElements(Array<S> input, 162 static void SerializeElements(Array<S> input,
163 Buffer* buf, 163 Buffer* buf,
164 Array_Data<S_Data*>* output, 164 Array_Data<S_Data*>* output,
165 const ArrayValidateParams* validate_params) { 165 const ArrayValidateParams* validate_params) {
166 for (size_t i = 0; i < input.size(); ++i) { 166 for (size_t i = 0; i < input.size(); ++i) {
167 S_Data* element; 167 S_Data* element;
168 SerializeCaller<S>::Run(input[i].Pass(), buf, &element, 168 SerializeCaller<S>::Run(std::move(input[i]), buf, &element,
169 validate_params->element_validate_params); 169 validate_params->element_validate_params);
170 output->at(i) = element; 170 output->at(i) = element;
171 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( 171 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
172 !validate_params->element_is_nullable && !element, 172 !validate_params->element_is_nullable && !element,
173 VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, 173 VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
174 MakeMessageWithArrayIndex("null in array expecting valid pointers", 174 MakeMessageWithArrayIndex("null in array expecting valid pointers",
175 input.size(), i)); 175 input.size(), i));
176 } 176 }
177 } 177 }
178 static bool DeserializeElements(Array_Data<S_Data*>* input, 178 static bool DeserializeElements(Array_Data<S_Data*>* input,
(...skipping 25 matching lines...) Expand all
204 Serialize_(input.Pass(), buf, output); 204 Serialize_(input.Pass(), buf, output);
205 } 205 }
206 }; 206 };
207 207
208 template <typename T> 208 template <typename T>
209 struct SerializeCaller<Array<T>> { 209 struct SerializeCaller<Array<T>> {
210 static void Run(Array<T> input, 210 static void Run(Array<T> input,
211 Buffer* buf, 211 Buffer* buf,
212 typename Array<T>::Data_** output, 212 typename Array<T>::Data_** output,
213 const ArrayValidateParams* validate_params) { 213 const ArrayValidateParams* validate_params) {
214 SerializeArray_(input.Pass(), buf, output, validate_params); 214 SerializeArray_(std::move(input), buf, output, validate_params);
215 } 215 }
216 }; 216 };
217 217
218 template <typename T, typename U> 218 template <typename T, typename U>
219 struct SerializeCaller<Map<T, U>> { 219 struct SerializeCaller<Map<T, U>> {
220 static void Run(Map<T, U> input, 220 static void Run(Map<T, U> input,
221 Buffer* buf, 221 Buffer* buf,
222 typename Map<T, U>::Data_** output, 222 typename Map<T, U>::Data_** output,
223 const ArrayValidateParams* validate_params) { 223 const ArrayValidateParams* validate_params) {
224 SerializeMap_(input.Pass(), buf, output, validate_params); 224 SerializeMap_(std::move(input), buf, output, validate_params);
225 } 225 }
226 }; 226 };
227 }; 227 };
228 228
229 // Handles serialization and deserialization of arrays of unions. 229 // Handles serialization and deserialization of arrays of unions.
230 template <typename U, typename U_Data> 230 template <typename U, typename U_Data>
231 struct ArraySerializer<U, U_Data, true> { 231 struct ArraySerializer<U, U_Data, true> {
232 static size_t GetSerializedSize(const Array<U>& input) { 232 static size_t GetSerializedSize(const Array<U>& input) {
233 size_t size = sizeof(Array_Data<U_Data>); 233 size_t size = sizeof(Array_Data<U_Data>);
234 for (size_t i = 0; i < input.size(); ++i) { 234 for (size_t i = 0; i < input.size(); ++i) {
235 // GetSerializedSize_ will account for both the data in the union and the 235 // GetSerializedSize_ will account for both the data in the union and the
236 // space in the array used to hold the union. 236 // space in the array used to hold the union.
237 size += GetSerializedSize_(input[i], false); 237 size += GetSerializedSize_(input[i], false);
238 } 238 }
239 return size; 239 return size;
240 } 240 }
241 241
242 static void SerializeElements(Array<U> input, 242 static void SerializeElements(Array<U> input,
243 Buffer* buf, 243 Buffer* buf,
244 Array_Data<U_Data>* output, 244 Array_Data<U_Data>* output,
245 const ArrayValidateParams* validate_params) { 245 const ArrayValidateParams* validate_params) {
246 for (size_t i = 0; i < input.size(); ++i) { 246 for (size_t i = 0; i < input.size(); ++i) {
247 U_Data* result = output->storage() + i; 247 U_Data* result = output->storage() + i;
248 SerializeUnion_(input[i].Pass(), buf, &result, true); 248 SerializeUnion_(std::move(input[i]), buf, &result, true);
249 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( 249 MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
250 !validate_params->element_is_nullable && output->at(i).is_null(), 250 !validate_params->element_is_nullable && output->at(i).is_null(),
251 VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, 251 VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
252 MakeMessageWithArrayIndex("null in array expecting valid unions", 252 MakeMessageWithArrayIndex("null in array expecting valid unions",
253 input.size(), i)); 253 input.size(), i));
254 } 254 }
255 } 255 }
256 256
257 static bool DeserializeElements(Array_Data<U_Data>* input, 257 static bool DeserializeElements(Array_Data<U_Data>* input,
258 Array<U>* output, 258 Array<U>* output,
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 } 366 }
367 } else { 367 } else {
368 output->reset(); 368 output->reset();
369 } 369 }
370 return true; 370 return true;
371 } 371 }
372 372
373 } // namespace mojo 373 } // namespace mojo
374 374
375 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_ 375 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ARRAY_SERIALIZATION_H_
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/lib/array_internal.h ('k') | mojo/public/cpp/bindings/lib/associated_interface_ptr_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698