Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1492)

Unified Diff: google_apis/gcm/engine/mcs_client.h

Issue 202083005: Add activity recording capability to gcm internals page. User can refresh, start/stop recording, an… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolving another merge conflict. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
+
// 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);

Powered by Google App Engine
This is Rietveld 408576698