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 COMPONENTS_GCM_DRIVER_GCM_ACTIVITY_H_ 6 #define COMPONENTS_GCM_DRIVER_GCM_ACTIVITY_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "base/time/time.h" 12 13 namespace gcm { 14 15 // Contains data that are common to all activity kinds below. 16 struct Activity { 17 Activity(); 18 virtual ~Activity(); 19 20 base::Time time; 21 std::string event; // A short description of the event. 22 std::string details; // Any additional detail about the event. 23 }; 24 25 // Contains relevant data of a connection activity. 26 struct ConnectionActivity : Activity { 27 ConnectionActivity(); 28 virtual ~ConnectionActivity(); 29 }; 30 31 // Contains relevant data of a check-in activity. 32 struct CheckinActivity : Activity { 33 CheckinActivity(); 34 virtual ~CheckinActivity(); 35 }; 36 37 // Contains relevant data of a registration/unregistration step. 38 struct RegistrationActivity : Activity { 39 RegistrationActivity(); 40 virtual ~RegistrationActivity(); 41 42 std::string app_id; 43 std::string sender_ids; // Comma separated sender ids. 44 }; 45 46 // Contains relevant data of a message receiving event. 47 struct ReceivingActivity : Activity { 48 ReceivingActivity(); 49 virtual ~ReceivingActivity(); 50 51 std::string app_id; 52 std::string from; 53 int message_byte_size; 54 }; 55 56 // Contains relevant data of a send-message step. 57 struct SendingActivity : Activity { 58 SendingActivity(); 59 virtual ~SendingActivity(); 60 61 std::string app_id; 62 std::string receiver_id; 63 std::string message_id; 64 }; 65 66 struct RecordedActivities { 67 RecordedActivities(); 68 virtual ~RecordedActivities(); 69 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; 75 }; 76 77 } // namespace gcm 78 79 #endif // COMPONENTS_GCM_DRIVER_GCM_ACTIVITY_H_ 80