1// Copyright 2014 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_IPC_LATENCY_INFO_PARAM_TRAITS_H_
6#define UI_EVENTS_IPC_LATENCY_INFO_PARAM_TRAITS_H_
7
8#include "ipc/ipc_message_macros.h"
9#include "ui/events/events_export.h"
10#include "ui/events/latency_info.h"
11
12#undef IPC_MESSAGE_EXPORT
13#define IPC_MESSAGE_EXPORT EVENTS_EXPORT
14
15IPC_ENUM_TRAITS_MAX_VALUE(ui::LatencyComponentType,
16                          ui::LATENCY_COMPONENT_TYPE_LAST)
17
18IPC_STRUCT_TRAITS_BEGIN(ui::LatencyInfo::LatencyComponent)
19  IPC_STRUCT_TRAITS_MEMBER(sequence_number)
20  IPC_STRUCT_TRAITS_MEMBER(event_time)
21  IPC_STRUCT_TRAITS_MEMBER(event_count)
22IPC_STRUCT_TRAITS_END()
23
24IPC_STRUCT_TRAITS_BEGIN(ui::LatencyInfo::InputCoordinate)
25IPC_STRUCT_TRAITS_MEMBER(x)
26IPC_STRUCT_TRAITS_MEMBER(y)
27IPC_STRUCT_TRAITS_END()
28
29IPC_STRUCT_TRAITS_BEGIN(ui::LatencyInfo)
30  IPC_STRUCT_TRAITS_MEMBER(latency_components)
31  IPC_STRUCT_TRAITS_MEMBER(trace_id)
32  IPC_STRUCT_TRAITS_MEMBER(terminated)
33  IPC_STRUCT_TRAITS_MEMBER(input_coordinates_size)
34  IPC_STRUCT_TRAITS_MEMBER(input_coordinates[0])
35  IPC_STRUCT_TRAITS_MEMBER(input_coordinates[1])
36IPC_STRUCT_TRAITS_END()
37
38#endif // UI_EVENTS_IPC_LATENCY_INFO_PARAM_TRAITS_H_
39