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

Side by Side Diff: mojo/public/cpp/bindings/map.h

Issue 1408793006: Convert "return local_var.Pass();" to "return local_var;". (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 1 month 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_MAP_H_ 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_MAP_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_MAP_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_MAP_H_
7 7
8 #include <map> 8 #include <map>
9 #include <type_traits> 9 #include <type_traits>
10 10
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 129
130 // Returns a new Map that contains a copy of the contents of this map. If the 130 // Returns a new Map that contains a copy of the contents of this map. If the
131 // values are of a type that is designated move-only, they will be cloned 131 // values are of a type that is designated move-only, they will be cloned
132 // using the Clone() method of the type. Please note that calling this method 132 // using the Clone() method of the type. Please note that calling this method
133 // will fail compilation if the value type cannot be cloned (which usually 133 // will fail compilation if the value type cannot be cloned (which usually
134 // means that it is a Mojo handle type or a type that contains Mojo handles). 134 // means that it is a Mojo handle type or a type that contains Mojo handles).
135 Map Clone() const { 135 Map Clone() const {
136 Map result; 136 Map result;
137 result.is_null_ = is_null_; 137 result.is_null_ = is_null_;
138 Traits::Clone(map_, &result.map_); 138 Traits::Clone(map_, &result.map_);
139 return result.Pass(); 139 return result;
140 } 140 }
141 141
142 // Indicates whether the contents of this map are equal to those of another 142 // Indicates whether the contents of this map are equal to those of another
143 // Map (including nullness). Keys are compared by the != operator. Values are 143 // Map (including nullness). Keys are compared by the != operator. Values are
144 // compared as follows: 144 // compared as follows:
145 // - Map, Array, Struct, or StructPtr values are compared by their Equals() 145 // - Map, Array, Struct, or StructPtr values are compared by their Equals()
146 // method. 146 // method.
147 // - ScopedHandleBase-derived types are compared by their handles. 147 // - ScopedHandleBase-derived types are compared by their handles.
148 // - Values of other types are compared by their "==" operator. 148 // - Values of other types are compared by their "==" operator.
149 bool Equals(const Map& other) const { 149 bool Equals(const Map& other) const {
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 typename STLValue> 267 typename STLValue>
268 struct TypeConverter<Map<MojoKey, MojoValue>, std::map<STLKey, STLValue>> { 268 struct TypeConverter<Map<MojoKey, MojoValue>, std::map<STLKey, STLValue>> {
269 static Map<MojoKey, MojoValue> Convert( 269 static Map<MojoKey, MojoValue> Convert(
270 const std::map<STLKey, STLValue>& input) { 270 const std::map<STLKey, STLValue>& input) {
271 Map<MojoKey, MojoValue> result; 271 Map<MojoKey, MojoValue> result;
272 result.mark_non_null(); 272 result.mark_non_null();
273 for (auto& pair : input) { 273 for (auto& pair : input) {
274 result.insert(TypeConverter<MojoKey, STLKey>::Convert(pair.first), 274 result.insert(TypeConverter<MojoKey, STLKey>::Convert(pair.first),
275 TypeConverter<MojoValue, STLValue>::Convert(pair.second)); 275 TypeConverter<MojoValue, STLValue>::Convert(pair.second));
276 } 276 }
277 return result.Pass(); 277 return result;
278 } 278 }
279 }; 279 };
280 280
281 // Copies the contents of a Map to an std::map, optionally changing the types of 281 // Copies the contents of a Map to an std::map, optionally changing the types of
282 // the keys and values along the way using TypeConverter. 282 // the keys and values along the way using TypeConverter.
283 template <typename MojoKey, 283 template <typename MojoKey,
284 typename MojoValue, 284 typename MojoValue,
285 typename STLKey, 285 typename STLKey,
286 typename STLValue> 286 typename STLValue>
287 struct TypeConverter<std::map<STLKey, STLValue>, Map<MojoKey, MojoValue>> { 287 struct TypeConverter<std::map<STLKey, STLValue>, Map<MojoKey, MojoValue>> {
288 static std::map<STLKey, STLValue> Convert( 288 static std::map<STLKey, STLValue> Convert(
289 const Map<MojoKey, MojoValue>& input) { 289 const Map<MojoKey, MojoValue>& input) {
290 std::map<STLKey, STLValue> result; 290 std::map<STLKey, STLValue> result;
291 if (!input.is_null()) { 291 if (!input.is_null()) {
292 for (auto it = input.cbegin(); it != input.cend(); ++it) { 292 for (auto it = input.cbegin(); it != input.cend(); ++it) {
293 result.insert(std::make_pair( 293 result.insert(std::make_pair(
294 TypeConverter<STLKey, MojoKey>::Convert(it.GetKey()), 294 TypeConverter<STLKey, MojoKey>::Convert(it.GetKey()),
295 TypeConverter<STLValue, MojoValue>::Convert(it.GetValue()))); 295 TypeConverter<STLValue, MojoValue>::Convert(it.GetValue())));
296 } 296 }
297 } 297 }
298 return result; 298 return result;
299 } 299 }
300 }; 300 };
301 301
302 } // namespace mojo 302 } // namespace mojo
303 303
304 #endif // MOJO_PUBLIC_CPP_BINDINGS_MAP_H_ 304 #endif // MOJO_PUBLIC_CPP_BINDINGS_MAP_H_
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/interface_request.h ('k') | mojo/public/cpp/bindings/tests/equals_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698