| 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..cc915e49087dc28829950fb34366314012fab8f3 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 resend messaage queue.
|
| + int GetResendQueueSize() const;
|
| +
|
| // 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);
|
|
|