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

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

Issue 1519673002: Add helpers for logging mojom objects. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: rebase Created 5 years 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
« no previous file with comments | « mojo/public/cpp/bindings/array.h ('k') | mojo/public/cpp/bindings/string.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 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 <iosfwd>
8 #include <map> 9 #include <map>
9 #include <type_traits> 10 #include <type_traits>
10 11
11 #include "mojo/public/cpp/bindings/lib/map_internal.h" 12 #include "mojo/public/cpp/bindings/lib/map_internal.h"
12 #include "mojo/public/cpp/bindings/lib/template_util.h" 13 #include "mojo/public/cpp/bindings/lib/template_util.h"
13 14
14 namespace mojo { 15 namespace mojo {
15 16
16 // A move-only map that can handle move-only values. Map has the following 17 // A move-only map that can handle move-only values. Map has the following
17 // characteristics: 18 // characteristics:
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 for (auto it = input.cbegin(); it != input.cend(); ++it) { 287 for (auto it = input.cbegin(); it != input.cend(); ++it) {
287 result.insert(std::make_pair( 288 result.insert(std::make_pair(
288 TypeConverter<STLKey, MojoKey>::Convert(it.GetKey()), 289 TypeConverter<STLKey, MojoKey>::Convert(it.GetKey()),
289 TypeConverter<STLValue, MojoValue>::Convert(it.GetValue()))); 290 TypeConverter<STLValue, MojoValue>::Convert(it.GetValue())));
290 } 291 }
291 } 292 }
292 return result; 293 return result;
293 } 294 }
294 }; 295 };
295 296
297 // Prints the contents of a map to an output stream for debugging purposes.
298 template <typename Key, typename Value>
299 std::ostream& operator<<(std::ostream& os, const mojo::Map<Key, Value>& map) {
300 if (map) {
301 os << "[";
302 bool first = true;
303 for (auto it = map.cbegin(); it != map.cend(); ++it) {
304 if (first)
305 first = false;
306 else
307 os << ", ";
308 os << "{" << it.GetKey() << ": " << it.GetValue() << "}";
309 }
310 os << "]";
311 } else {
312 os << "null";
313 }
314 return os;
315 }
316
296 } // namespace mojo 317 } // namespace mojo
297 318
298 #endif // MOJO_PUBLIC_CPP_BINDINGS_MAP_H_ 319 #endif // MOJO_PUBLIC_CPP_BINDINGS_MAP_H_
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/array.h ('k') | mojo/public/cpp/bindings/string.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698