Chromium Code Reviews| Index: google_apis/gcm/engine/mcs_client.cc |
| diff --git a/google_apis/gcm/engine/mcs_client.cc b/google_apis/gcm/engine/mcs_client.cc |
| index da8300c799266957263fff5d38b676d114e8e1f8..ef8d47a95bab9f3eec0759845b056f0b6bf379e0 100644 |
| --- a/google_apis/gcm/engine/mcs_client.cc |
| +++ b/google_apis/gcm/engine/mcs_client.cc |
| @@ -15,6 +15,7 @@ |
| #include "google_apis/gcm/base/mcs_util.h" |
| #include "google_apis/gcm/base/socket_stream.h" |
| #include "google_apis/gcm/engine/connection_factory.h" |
| +#include "google_apis/gcm/gcm_stats_recorder.h" |
| using namespace google::protobuf::io; |
| @@ -128,6 +129,14 @@ ReliablePacketInfo::ReliablePacketInfo() |
| } |
| ReliablePacketInfo::~ReliablePacketInfo() {} |
| +int MCSClient::GetSendQueueSize() const { |
| + return to_send_.size(); |
| +} |
| + |
| +int MCSClient::GetUnackedQueueSize() const { |
| + return to_resend_.size(); |
| +} |
| + |
| std::string MCSClient::GetStateString() const { |
| switch(state_) { |
| case UNINITIALIZED: |
| @@ -147,7 +156,8 @@ std::string MCSClient::GetStateString() const { |
| MCSClient::MCSClient(const std::string& version_string, |
| base::Clock* clock, |
| ConnectionFactory* connection_factory, |
| - GCMStore* gcm_store) |
| + GCMStore* gcm_store, |
| + GCMStatsRecorder* recorder) |
| : version_string_(version_string), |
| clock_(clock), |
| state_(UNINITIALIZED), |
| @@ -160,6 +170,7 @@ MCSClient::MCSClient(const std::string& version_string, |
| stream_id_out_(0), |
| stream_id_in_(0), |
| gcm_store_(gcm_store), |
| + recorder_(recorder), |
| weak_ptr_factory_(this) { |
| } |
| @@ -495,6 +506,11 @@ void MCSClient::SendPacketToWire(ReliablePacketInfo* packet_info) { |
| base::Time::kMicrosecondsPerSecond) - sent; |
| DVLOG(1) << "Message was queued for " << queued << " seconds."; |
| data_message->set_queued(queued); |
| + recorder_->RecordSentToWire( |
|
Nicolas Zea
2014/03/27 18:55:42
This won't record login requests or other non-data
juyik
2014/03/27 20:05:11
Yes, that's the intent. I have changed the method
|
| + data_message->category(), |
| + data_message->to(), |
| + data_message->id(), |
| + queued); |
| } |
| // Set the proper last received stream id to acknowledge received server |
| @@ -862,6 +878,13 @@ void MCSClient::NotifyMessageSendStatus( |
| const mcs_proto::DataMessageStanza* data_message_stanza = |
| reinterpret_cast<const mcs_proto::DataMessageStanza*>(&protobuf); |
| + recorder_->RecordNotifySendStatus( |
| + data_message_stanza->category(), |
| + data_message_stanza->to(), |
| + data_message_stanza->id(), |
| + status, |
| + protobuf.ByteSize(), |
| + data_message_stanza->ttl()); |
| message_sent_callback_.Run( |
| data_message_stanza->device_user_id(), |
| data_message_stanza->category(), |