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.
5 #ifndef COMPONENTS_GCM_DRIVER_GCM_ACTIVITY_H_
6 #define COMPONENTS_GCM_DRIVER_GCM_ACTIVITY_H_
11 #include "base/time/time.h"
15 // Contains data that are common to all activity kinds below.
21 std::string event
; // A short description of the event.
22 std::string details
; // Any additional detail about the event.
25 // Contains relevant data of a connection activity.
26 struct ConnectionActivity
: Activity
{
28 virtual ~ConnectionActivity();
31 // Contains relevant data of a check-in activity.
32 struct CheckinActivity
: Activity
{
34 virtual ~CheckinActivity();
37 // Contains relevant data of a registration/unregistration step.
38 struct RegistrationActivity
: Activity
{
39 RegistrationActivity();
40 virtual ~RegistrationActivity();
43 std::string sender_ids
; // Comma separated sender ids.
46 // Contains relevant data of a message receiving event.
47 struct ReceivingActivity
: Activity
{
49 virtual ~ReceivingActivity();
53 int message_byte_size
;
56 // Contains relevant data of a send-message step.
57 struct SendingActivity
: Activity
{
59 virtual ~SendingActivity();
62 std::string receiver_id
;
63 std::string message_id
;
66 struct RecordedActivities
{
68 virtual ~RecordedActivities();
70 std::vector
<CheckinActivity
> checkin_activities
;
71 std::vector
<ConnectionActivity
> connection_activities
;
72 std::vector
<RegistrationActivity
> registration_activities
;
73 std::vector
<ReceivingActivity
> receiving_activities
;
74 std::vector
<SendingActivity
> sending_activities
;
79 #endif // COMPONENTS_GCM_DRIVER_GCM_ACTIVITY_H_