Home | History | Annotate | Download | only in gcm_driver
      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