Chromium Code Reviews| Index: google_apis/gcm/engine/mcs_client.h |
| diff --git a/google_apis/gcm/engine/mcs_client.h b/google_apis/gcm/engine/mcs_client.h |
| index 1943be618b17069301e452ce891a2231757e24d1..d9e881b9131ffa14fc65e94a41520c9bbcd5fce2 100644 |
| --- a/google_apis/gcm/engine/mcs_client.h |
| +++ b/google_apis/gcm/engine/mcs_client.h |
| @@ -37,6 +37,7 @@ namespace gcm { |
| class CollapseKey; |
| class ConnectionFactory; |
| +class GCMStatsRecorder; |
| struct ReliablePacketInfo; |
| // An MCS client. This client is in charge of all communications with an |
| @@ -54,6 +55,8 @@ class GCM_EXPORT MCSClient { |
| CONNECTED, // Connected and running. |
| }; |
| + // Any change made to this enum should have corresponding change in the |
| + // GetMessageSendStatusString(...) function in mcs_client.cc. |
| enum MessageSendStatus { |
| // Message was queued succcessfully. |
| QUEUED, |
| @@ -61,14 +64,19 @@ class GCM_EXPORT MCSClient { |
| SENT, |
| // Message not saved, because total queue size limit reached. |
| QUEUE_SIZE_LIMIT_REACHED, |
| - // Messgae not saved, because app queue size limit reached. |
| + // Message not saved, because app queue size limit reached. |
| APP_QUEUE_SIZE_LIMIT_REACHED, |
| // Message too large to send. |
| MESSAGE_TOO_LARGE, |
| // Message not send becuase of TTL = 0 and no working connection. |
| NO_CONNECTION_ON_ZERO_TTL, |
| // Message exceeded TTL. |
| - TTL_EXCEEDED |
| + TTL_EXCEEDED, |
| + |
| + // NOTE: always keep this entry at the end. Add new status types only |
| + // immediately above this line. Make sure to update the corresponding |
| + // histogram enum accordingly. |
| + SEND_STATUS_COUNT |
| }; |
| // Callback for MCSClient's error conditions. |
| @@ -89,7 +97,8 @@ class GCM_EXPORT MCSClient { |
| MCSClient(const std::string& version_string, |
| base::Clock* clock, |
| ConnectionFactory* connection_factory, |
| - GCMStore* gcm_store); |
| + GCMStore* gcm_store, |
| + GCMStatsRecorder* recorder); |
| virtual ~MCSClient(); |
| // Initialize the client. Will load any previous id/token information as well |
| @@ -127,6 +136,12 @@ class GCM_EXPORT MCSClient { |
| // Returns the current state of the client. |
| State state() const { return state_; } |
| + // Returns the size of the send message queue. |
| + int GetSendQueueSize() const; |
| + |
| + // Returns the size of the un-acked messaage queue. |
| + int GetUnackedQueueSize() const; |
|
Nicolas Zea
2014/03/27 18:55:42
Unacked is ambiguous, as incoming messages can be
juyik
2014/03/27 20:05:11
Done.
|
| + |
| // Returns text representation of the state enum. |
| std::string GetStateString() const; |
| @@ -259,6 +274,9 @@ class GCM_EXPORT MCSClient { |
| // Manager to handle triggering/detecting heartbeats. |
| HeartbeatManager heartbeat_manager_; |
| + // Recorder that records GCM activities for debugging purpose. Not owned. |
| + GCMStatsRecorder* recorder_; |
| + |
| base::WeakPtrFactory<MCSClient> weak_ptr_factory_; |
| DISALLOW_COPY_AND_ASSIGN(MCSClient); |