Index: ui/events/ipc/latency_info_param_traits.cc |
diff --git a/ui/events/ipc/latency_info_param_traits.cc b/ui/events/ipc/latency_info_param_traits.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a472307407a3d7883991bf501a383342c8f6fa8b |
--- /dev/null |
+++ b/ui/events/ipc/latency_info_param_traits.cc |
@@ -0,0 +1,87 @@ |
+// Copyright 2014 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 "ui/events/ipc/latency_info_param_traits_macros.h" |
+ |
+// Generate param traits write methods. |
+#include "ipc/param_traits_write_macros.h" |
+namespace IPC { |
+#undef UI_EVENTS_IPC_LATENCY_INFO_PARAM_TRAITS_MACROS_H_ |
+#include "ui/events/ipc/latency_info_param_traits_macros.h" |
+} // namespace IPC |
+ |
+// Generate param traits read methods. |
+#include "ipc/param_traits_read_macros.h" |
+namespace IPC { |
+#undef UI_EVENTS_IPC_LATENCY_INFO_PARAM_TRAITS_MACROS_H_ |
+#include "ui/events/ipc/latency_info_param_traits_macros.h" |
+} // namespace IPC |
+ |
+// Generate param traits log methods. |
+#include "ipc/param_traits_log_macros.h" |
+namespace IPC { |
+#undef UI_EVENTS_IPC_LATENCY_INFO_PARAM_TRAITS_MACROS_H_ |
+#include "ui/events/ipc/latency_info_param_traits_macros.h" |
+} // namespace IPC |
+ |
+// Implemetation for ParamTraits<ui::LatencyInfo>. |
+#include "ui/events/ipc/latency_info_param_traits.h" |
+ |
+namespace IPC { |
+void ParamTraits<ui::LatencyInfo>::Write(base::Pickle* m, const param_type& p) { |
+ WriteParam(m, p.trace_name_); |
+ WriteParam(m, p.latency_components_); |
+ WriteParam(m, p.input_coordinates_size_); |
+ for (size_t i = 0; i < p.input_coordinates_size_; i++) { |
+ WriteParam(m, p.input_coordinates_[i]); |
+ } |
+ WriteParam(m, p.trace_id_); |
+ WriteParam(m, p.terminated_); |
+} |
+ |
+bool ParamTraits<ui::LatencyInfo>::Read(const base::Pickle* m, |
+ base::PickleIterator* iter, |
+ param_type* p) { |
+ if (!ReadParam(m, iter, &p->trace_name_)) |
+ return false; |
+ if (!ReadParam(m, iter, &p->latency_components_)) |
+ return false; |
+ |
+ ui::LatencyInfo::InputCoordinate input_coordinates; |
+ uint32_t input_coordinates_size; |
+ if (!ReadParam(m, iter, &input_coordinates_size)) |
+ return false; |
+ for (size_t i = 0; i < input_coordinates_size; i++) { |
+ if (!ReadParam(m, iter, &input_coordinates)) |
+ return false; |
+ if (!p->AddInputCoordinate(input_coordinates)) |
+ return false; |
+ } |
+ |
+ if (!ReadParam(m, iter, &p->trace_id_)) |
+ return false; |
+ if (!ReadParam(m, iter, &p->terminated_)) |
+ return false; |
+ |
+ return true; |
+} |
+ |
+void ParamTraits<ui::LatencyInfo>::Log(const param_type& p, |
+ std::string* l) { |
+ LogParam(p.trace_name_, l); |
+ l->append(" "); |
+ LogParam(p.latency_components_, l); |
+ l->append(" "); |
+ LogParam(p.input_coordinates_size_, l); |
+ l->append(" "); |
+ for (size_t i = 0; i < p.input_coordinates_size_; i++) { |
+ LogParam(p.input_coordinates_[i], l); |
+ l->append(" "); |
+ } |
+ LogParam(p.trace_id_, l); |
+ l->append(" "); |
+ LogParam(p.terminated_, l); |
+} |
+ |
+} // namespace IPC |