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

Unified Diff: ui/events/mojo/latency_info_struct_traits.h

Issue 2058633002: mojo::ArrayTraits: Add Support for Iterators (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nit Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/cpp/bindings/lib/serialization_util.h ('k') | ui/events/mojo/latency_info_struct_traits.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/mojo/latency_info_struct_traits.h
diff --git a/ui/events/mojo/latency_info_struct_traits.h b/ui/events/mojo/latency_info_struct_traits.h
index 6d9d990c6f2c8f5f2a49bd37197aaf204dfb4563..3573cf8fd9b09d29bfaed8861f145a6c71ee062e 100644
--- a/ui/events/mojo/latency_info_struct_traits.h
+++ b/ui/events/mojo/latency_info_struct_traits.h
@@ -14,6 +14,30 @@ namespace mojo {
using InputCoordinateArray = CArray<gfx::PointF>;
template <>
+struct ArrayTraits<ui::LatencyInfo::LatencyMap> {
+ using Element = ui::LatencyInfo::LatencyMap::value_type;
+ using Iterator = ui::LatencyInfo::LatencyMap::iterator;
+ using ConstIterator = ui::LatencyInfo::LatencyMap::const_iterator;
+
+ static ConstIterator GetBegin(const ui::LatencyInfo::LatencyMap& input) {
+ return input.begin();
+ }
+ static Iterator GetBegin(ui::LatencyInfo::LatencyMap& input) {
+ return input.begin();
+ }
+
+ static void AdvanceIterator(ConstIterator& iterator) { iterator++; }
+ static void AdvanceIterator(Iterator& iterator) { iterator++; }
+
+ static const Element& GetValue(ConstIterator& iterator) { return *iterator; }
+ static Element& GetValue(Iterator& iterator) { return *iterator; }
+
+ static size_t GetSize(const ui::LatencyInfo::LatencyMap& input) {
+ return input.size();
+ }
+};
+
+template <>
struct StructTraits<ui::mojom::LatencyComponent,
ui::LatencyInfo::LatencyComponent> {
static int64_t sequence_number(
@@ -27,6 +51,22 @@ struct StructTraits<ui::mojom::LatencyComponent,
};
template <>
+struct StructTraits<ui::mojom::LatencyComponentPair,
+ ui::LatencyInfo::LatencyMap::value_type> {
+ static const std::pair<ui::LatencyComponentType, int64_t>& key(
+ const ui::LatencyInfo::LatencyMap::value_type& input) {
+ return input.first;
+ }
+
+ static const ui::LatencyInfo::LatencyComponent& value(
+ const ui::LatencyInfo::LatencyMap::value_type& input) {
+ return input.second;
+ }
+
+ // TODO(fsamuel): Figure out how to optimize deserialization.
+};
+
+template <>
struct StructTraits<ui::mojom::LatencyComponentId,
std::pair<ui::LatencyComponentType, int64_t>> {
static ui::mojom::LatencyComponentType type(
@@ -38,12 +78,9 @@ struct StructTraits<ui::mojom::LatencyComponentId,
template <>
struct StructTraits<ui::mojom::LatencyInfo, ui::LatencyInfo> {
- static void* SetUpContext(const ui::LatencyInfo& info);
- static void TearDownContext(const ui::LatencyInfo& info, void* context);
static const std::string& trace_name(const ui::LatencyInfo& info);
- static mojo::Array<ui::mojom::LatencyComponentPairPtr>& latency_components(
- const ui::LatencyInfo& info,
- void* context);
+ static const ui::LatencyInfo::LatencyMap& latency_components(
+ const ui::LatencyInfo& info);
static uint32_t input_coordinates_size(const ui::LatencyInfo& info);
static InputCoordinateArray input_coordinates(const ui::LatencyInfo& info);
static int64_t trace_id(const ui::LatencyInfo& info);
« no previous file with comments | « mojo/public/cpp/bindings/lib/serialization_util.h ('k') | ui/events/mojo/latency_info_struct_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698