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

Side by Side Diff: services/memory_infra/public/cpp/memory_infra_traits.cc

Issue 2621143002: memory-infra: Introduce mojo interfaces and service stubs (Closed)
Patch Set: review Created 3 years, 11 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
(Empty)
1 // Copyright 2017 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 #include "services/memory_infra/public/cpp/memory_infra_traits.h"
6
7 #include "base/trace_event/memory_dump_request_args.h"
8 #include "services/memory_infra/public/interfaces/memory_infra.mojom.h"
9
10 namespace mojo {
11
12 //static
13 memory_infra::mojom::DumpType
14 EnumTraits<memory_infra::mojom::DumpType,
15 base::trace_event::MemoryDumpType>::ToMojom(
16 base::trace_event::MemoryDumpType type) {
17 switch (type) {
18 case base::trace_event::MemoryDumpType::PERIODIC_INTERVAL:
19 return memory_infra::mojom::DumpType::PERIODIC_INTERVAL;
20 case base::trace_event::MemoryDumpType::EXPLICITLY_TRIGGERED:
21 return memory_infra::mojom::DumpType::EXPLICITLY_TRIGGERED;
22 case base::trace_event::MemoryDumpType::PEAK_MEMORY_USAGE:
23 return memory_infra::mojom::DumpType::PEAK_MEMORY_USAGE;
24 default:
25 CHECK(false) << "Invalid type: " << static_cast<uint8_t>(type);
26 // This should not be reached. Just return a random value.
27 return memory_infra::mojom::DumpType::PEAK_MEMORY_USAGE;
28 }
29 }
30
31 //static
32 bool EnumTraits<memory_infra::mojom::DumpType,
33 base::trace_event::MemoryDumpType>::FromMojom(
34 memory_infra::mojom::DumpType input,
35 base::trace_event::MemoryDumpType* out) {
36 switch (input) {
37 case memory_infra::mojom::DumpType::PERIODIC_INTERVAL:
38 *out = base::trace_event::MemoryDumpType::PERIODIC_INTERVAL;
39 break;
40 case memory_infra::mojom::DumpType::EXPLICITLY_TRIGGERED:
41 *out = base::trace_event::MemoryDumpType::EXPLICITLY_TRIGGERED;
42 break;
43 case memory_infra::mojom::DumpType::PEAK_MEMORY_USAGE:
44 *out = base::trace_event::MemoryDumpType::PEAK_MEMORY_USAGE;
45 break;
46 default:
47 NOTREACHED() << "Invalid type: " << static_cast<uint8_t>(input);
48 return false;
49 }
50 return true;
51 }
52
53 //static
54 memory_infra::mojom::LevelOfDetail
55 EnumTraits<memory_infra::mojom::LevelOfDetail,
56 base::trace_event::MemoryDumpLevelOfDetail>::ToMojom(
57 base::trace_event::MemoryDumpLevelOfDetail level_of_detail) {
58 switch (level_of_detail) {
59 case base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND:
60 return memory_infra::mojom::LevelOfDetail::BACKGROUND;
61 case base::trace_event::MemoryDumpLevelOfDetail::LIGHT:
62 return memory_infra::mojom::LevelOfDetail::LIGHT;
63 case base::trace_event::MemoryDumpLevelOfDetail::DETAILED:
64 return memory_infra::mojom::LevelOfDetail::DETAILED;
65 default:
66 CHECK(false) << "Invalid type: " << static_cast<uint8_t>(level_of_detail);
67 // This should not be reached. Just return a random value.
68 return memory_infra::mojom::LevelOfDetail::BACKGROUND;
69 }
70 }
71
72 //static
73 bool EnumTraits<memory_infra::mojom::LevelOfDetail,
74 base::trace_event::MemoryDumpLevelOfDetail>::FromMojom(
75 memory_infra::mojom::LevelOfDetail input,
76 base::trace_event::MemoryDumpLevelOfDetail* out) {
77 switch (input) {
78 case memory_infra::mojom::LevelOfDetail::BACKGROUND:
79 *out = base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND;
80 break;
81 case memory_infra::mojom::LevelOfDetail::LIGHT:
82 *out = base::trace_event::MemoryDumpLevelOfDetail::LIGHT;
83 break;
84 case memory_infra::mojom::LevelOfDetail::DETAILED:
85 *out = base::trace_event::MemoryDumpLevelOfDetail::DETAILED;
86 break;
87 default:
88 NOTREACHED() << "Invalid type: " << static_cast<uint8_t>(input);
89 return false;
90 }
91 return true;
92 }
93
94 //static
95 memory_infra::mojom::DumpType
96 StructTraits<memory_infra::mojom::RequestArgsDataView,
97 base::trace_event::MemoryDumpRequestArgs>::dump_type(
98 const base::trace_event::MemoryDumpRequestArgs& args) {
99 return EnumTraits<memory_infra::mojom::DumpType,
100 base::trace_event::MemoryDumpType>::ToMojom(
101 args.dump_type);
102 }
103
104 //static
105 memory_infra::mojom::LevelOfDetail
106 StructTraits<memory_infra::mojom::RequestArgsDataView,
107 base::trace_event::MemoryDumpRequestArgs>::level_of_detail(
108 const base::trace_event::MemoryDumpRequestArgs& args) {
109 return EnumTraits<memory_infra::mojom::LevelOfDetail,
110 base::trace_event::MemoryDumpLevelOfDetail>::ToMojom(
111 args.level_of_detail);
112 }
113
114 //static
115 bool StructTraits<memory_infra::mojom::RequestArgsDataView,
116 base::trace_event::MemoryDumpRequestArgs>::Read(
117 memory_infra::mojom::RequestArgsDataView input,
118 base::trace_event::MemoryDumpRequestArgs* out) {
119 out->dump_guid = input.dump_guid();
120 if (!EnumTraits<memory_infra::mojom::DumpType,
Ken Rockot(use gerrit already) 2017/01/17 19:34:53 Use the dataview ReadFoo methods for reading enums
chiniforooshan1 2017/01/17 21:26:23 Done. Thank you!
121 base::trace_event::MemoryDumpType>::FromMojom(
122 input.dump_type(), &(out->dump_type))) {
123 return false;
124 }
125 if (!EnumTraits<memory_infra::mojom::LevelOfDetail,
126 base::trace_event::MemoryDumpLevelOfDetail>::FromMojom(
127 input.level_of_detail(), &(out->level_of_detail))) {
128 return false;
129 }
130 return true;
131 }
132
133 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698