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

Side by Side Diff: ui/events/mojo/latency_info_struct_traits.h

Issue 2783973002: Moving LatencyInfo into a separate component. (Closed)
Patch Set: Rebase again Created 3 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
« no previous file with comments | « ui/events/mojo/latency_info.typemap ('k') | ui/events/mojo/latency_info_struct_traits.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef UI_EVENTS_MOJO_LATENCY_INFO_STRUCT_TRAITS_H_
6 #define UI_EVENTS_MOJO_LATENCY_INFO_STRUCT_TRAITS_H_
7
8 #include "ui/events/latency_info.h"
9 #include "ui/events/mojo/latency_info.mojom-shared.h"
10 #include "ui/gfx/geometry/mojo/geometry_struct_traits.h"
11
12 namespace mojo {
13
14 using InputCoordinateArray = CArray<gfx::PointF>;
15
16 template <>
17 struct ArrayTraits<ui::LatencyInfo::LatencyMap> {
18 using Element = ui::LatencyInfo::LatencyMap::value_type;
19 using Iterator = ui::LatencyInfo::LatencyMap::iterator;
20 using ConstIterator = ui::LatencyInfo::LatencyMap::const_iterator;
21
22 static ConstIterator GetBegin(const ui::LatencyInfo::LatencyMap& input) {
23 return input.begin();
24 }
25 static Iterator GetBegin(ui::LatencyInfo::LatencyMap& input) {
26 return input.begin();
27 }
28
29 static void AdvanceIterator(ConstIterator& iterator) { iterator++; }
30 static void AdvanceIterator(Iterator& iterator) { iterator++; }
31
32 static const Element& GetValue(ConstIterator& iterator) { return *iterator; }
33 static Element& GetValue(Iterator& iterator) { return *iterator; }
34
35 static size_t GetSize(const ui::LatencyInfo::LatencyMap& input) {
36 return input.size();
37 }
38 };
39
40 template <>
41 struct StructTraits<ui::mojom::LatencyComponentDataView,
42 ui::LatencyInfo::LatencyComponent> {
43 static int64_t sequence_number(
44 const ui::LatencyInfo::LatencyComponent& component);
45 static base::TimeTicks event_time(
46 const ui::LatencyInfo::LatencyComponent& component);
47 static uint32_t event_count(
48 const ui::LatencyInfo::LatencyComponent& component);
49 static base::TimeTicks first_event_time(
50 const ui::LatencyInfo::LatencyComponent& component);
51 static base::TimeTicks last_event_time(
52 const ui::LatencyInfo::LatencyComponent& component);
53 static bool Read(ui::mojom::LatencyComponentDataView data,
54 ui::LatencyInfo::LatencyComponent* out);
55 };
56
57 template <>
58 struct StructTraits<ui::mojom::LatencyComponentPairDataView,
59 ui::LatencyInfo::LatencyMap::value_type> {
60 static const std::pair<ui::LatencyComponentType, int64_t>& key(
61 const ui::LatencyInfo::LatencyMap::value_type& input) {
62 return input.first;
63 }
64
65 static const ui::LatencyInfo::LatencyComponent& value(
66 const ui::LatencyInfo::LatencyMap::value_type& input) {
67 return input.second;
68 }
69
70 // TODO(fsamuel): Figure out how to optimize deserialization.
71 };
72
73 template <>
74 struct StructTraits<ui::mojom::LatencyComponentIdDataView,
75 std::pair<ui::LatencyComponentType, int64_t>> {
76 static ui::mojom::LatencyComponentType type(
77 const std::pair<ui::LatencyComponentType, int64_t>& id);
78 static int64_t id(const std::pair<ui::LatencyComponentType, int64_t>& id);
79 static bool Read(ui::mojom::LatencyComponentIdDataView data,
80 std::pair<ui::LatencyComponentType, int64_t>* out);
81 };
82
83 template <>
84 struct StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo> {
85 static const std::string& trace_name(const ui::LatencyInfo& info);
86 static const ui::LatencyInfo::LatencyMap& latency_components(
87 const ui::LatencyInfo& info);
88 static uint32_t input_coordinates_size(const ui::LatencyInfo& info);
89 static InputCoordinateArray input_coordinates(const ui::LatencyInfo& info);
90 static int64_t trace_id(const ui::LatencyInfo& info);
91 static bool coalesced(const ui::LatencyInfo& info);
92 static bool terminated(const ui::LatencyInfo& info);
93 static bool Read(ui::mojom::LatencyInfoDataView data, ui::LatencyInfo* out);
94 };
95
96 } // namespace mojo
97
98 #endif // UI_EVENTS_MOJO_LATENCY_INFO_STRUCT_TRAITS_H_
OLDNEW
« no previous file with comments | « ui/events/mojo/latency_info.typemap ('k') | ui/events/mojo/latency_info_struct_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698