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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: services/memory_infra/public/cpp/memory_infra_traits.cc
diff --git a/services/memory_infra/public/cpp/memory_infra_traits.cc b/services/memory_infra/public/cpp/memory_infra_traits.cc
new file mode 100644
index 0000000000000000000000000000000000000000..1875e3e21234ee0f76aadb6fdfa73aa7ceeff9c9
--- /dev/null
+++ b/services/memory_infra/public/cpp/memory_infra_traits.cc
@@ -0,0 +1,133 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/memory_infra/public/cpp/memory_infra_traits.h"
+
+#include "base/trace_event/memory_dump_request_args.h"
+#include "services/memory_infra/public/interfaces/memory_infra.mojom.h"
+
+namespace mojo {
+
+//static
+memory_infra::mojom::DumpType
+EnumTraits<memory_infra::mojom::DumpType,
+ base::trace_event::MemoryDumpType>::ToMojom(
+ base::trace_event::MemoryDumpType type) {
+ switch (type) {
+ case base::trace_event::MemoryDumpType::PERIODIC_INTERVAL:
+ return memory_infra::mojom::DumpType::PERIODIC_INTERVAL;
+ case base::trace_event::MemoryDumpType::EXPLICITLY_TRIGGERED:
+ return memory_infra::mojom::DumpType::EXPLICITLY_TRIGGERED;
+ case base::trace_event::MemoryDumpType::PEAK_MEMORY_USAGE:
+ return memory_infra::mojom::DumpType::PEAK_MEMORY_USAGE;
+ default:
+ CHECK(false) << "Invalid type: " << static_cast<uint8_t>(type);
+ // This should not be reached. Just return a random value.
+ return memory_infra::mojom::DumpType::PEAK_MEMORY_USAGE;
+ }
+}
+
+//static
+bool EnumTraits<memory_infra::mojom::DumpType,
+ base::trace_event::MemoryDumpType>::FromMojom(
+ memory_infra::mojom::DumpType input,
+ base::trace_event::MemoryDumpType* out) {
+ switch (input) {
+ case memory_infra::mojom::DumpType::PERIODIC_INTERVAL:
+ *out = base::trace_event::MemoryDumpType::PERIODIC_INTERVAL;
+ break;
+ case memory_infra::mojom::DumpType::EXPLICITLY_TRIGGERED:
+ *out = base::trace_event::MemoryDumpType::EXPLICITLY_TRIGGERED;
+ break;
+ case memory_infra::mojom::DumpType::PEAK_MEMORY_USAGE:
+ *out = base::trace_event::MemoryDumpType::PEAK_MEMORY_USAGE;
+ break;
+ default:
+ NOTREACHED() << "Invalid type: " << static_cast<uint8_t>(input);
+ return false;
+ }
+ return true;
+}
+
+//static
+memory_infra::mojom::LevelOfDetail
+EnumTraits<memory_infra::mojom::LevelOfDetail,
+ base::trace_event::MemoryDumpLevelOfDetail>::ToMojom(
+ base::trace_event::MemoryDumpLevelOfDetail level_of_detail) {
+ switch (level_of_detail) {
+ case base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND:
+ return memory_infra::mojom::LevelOfDetail::BACKGROUND;
+ case base::trace_event::MemoryDumpLevelOfDetail::LIGHT:
+ return memory_infra::mojom::LevelOfDetail::LIGHT;
+ case base::trace_event::MemoryDumpLevelOfDetail::DETAILED:
+ return memory_infra::mojom::LevelOfDetail::DETAILED;
+ default:
+ CHECK(false) << "Invalid type: " << static_cast<uint8_t>(level_of_detail);
+ // This should not be reached. Just return a random value.
+ return memory_infra::mojom::LevelOfDetail::BACKGROUND;
+ }
+}
+
+//static
+bool EnumTraits<memory_infra::mojom::LevelOfDetail,
+ base::trace_event::MemoryDumpLevelOfDetail>::FromMojom(
+ memory_infra::mojom::LevelOfDetail input,
+ base::trace_event::MemoryDumpLevelOfDetail* out) {
+ switch (input) {
+ case memory_infra::mojom::LevelOfDetail::BACKGROUND:
+ *out = base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND;
+ break;
+ case memory_infra::mojom::LevelOfDetail::LIGHT:
+ *out = base::trace_event::MemoryDumpLevelOfDetail::LIGHT;
+ break;
+ case memory_infra::mojom::LevelOfDetail::DETAILED:
+ *out = base::trace_event::MemoryDumpLevelOfDetail::DETAILED;
+ break;
+ default:
+ NOTREACHED() << "Invalid type: " << static_cast<uint8_t>(input);
+ return false;
+ }
+ return true;
+}
+
+//static
+memory_infra::mojom::DumpType
+StructTraits<memory_infra::mojom::RequestArgsDataView,
+ base::trace_event::MemoryDumpRequestArgs>::dump_type(
+ const base::trace_event::MemoryDumpRequestArgs& args) {
+ return EnumTraits<memory_infra::mojom::DumpType,
+ base::trace_event::MemoryDumpType>::ToMojom(
+ args.dump_type);
+}
+
+//static
+memory_infra::mojom::LevelOfDetail
+StructTraits<memory_infra::mojom::RequestArgsDataView,
+ base::trace_event::MemoryDumpRequestArgs>::level_of_detail(
+ const base::trace_event::MemoryDumpRequestArgs& args) {
+ return EnumTraits<memory_infra::mojom::LevelOfDetail,
+ base::trace_event::MemoryDumpLevelOfDetail>::ToMojom(
+ args.level_of_detail);
+}
+
+//static
+bool StructTraits<memory_infra::mojom::RequestArgsDataView,
+ base::trace_event::MemoryDumpRequestArgs>::Read(
+ memory_infra::mojom::RequestArgsDataView input,
+ base::trace_event::MemoryDumpRequestArgs* out) {
+ out->dump_guid = input.dump_guid();
+ 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!
+ base::trace_event::MemoryDumpType>::FromMojom(
+ input.dump_type(), &(out->dump_type))) {
+ return false;
+ }
+ if (!EnumTraits<memory_infra::mojom::LevelOfDetail,
+ base::trace_event::MemoryDumpLevelOfDetail>::FromMojom(
+ input.level_of_detail(), &(out->level_of_detail))) {
+ return false;
+ }
+ return true;
+}
+
+} // namespace mojo

Powered by Google App Engine
This is Rietveld 408576698