Index: remoting/protocol/message_reader.h |
diff --git a/remoting/protocol/message_reader.h b/remoting/protocol/message_reader.h |
index 65d52d0a8bbe5cfb34965be2ef64eb982e8220e9..6b0eff279f94a7ac29b6b24816a6ca4db877e594 100644 |
--- a/remoting/protocol/message_reader.h |
+++ b/remoting/protocol/message_reader.h |
@@ -9,6 +9,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "base/threading/non_thread_safe.h" |
+#include "base/time/time.h" |
#include "remoting/base/compound_buffer.h" |
#include "remoting/protocol/message_decoder.h" |
@@ -45,12 +46,19 @@ class MessageReader : public base::NonThreadSafe { |
// Starts reading from |socket|. |
void StartReading(net::Socket* socket); |
+ // The time delta between first and last bytes of the last message for which |
+ // MessageReceivedCallback has been invoked. |
+ base::TimeDelta last_message_read_duration() { |
+ return last_message_read_duration_; |
+ } |
+ |
private: |
void DoRead(); |
void OnRead(int result); |
void HandleReadResult(int result); |
void OnDataReceived(net::IOBuffer* data, int data_size); |
- void RunCallback(scoped_ptr<CompoundBuffer> message); |
+ void RunCallback(scoped_ptr<CompoundBuffer> message, |
+ base::TimeDelta read_duration); |
void OnMessageDone(); |
net::Socket* socket_; |
@@ -72,6 +80,10 @@ class MessageReader : public base::NonThreadSafe { |
// Callback is called when a message is received. |
MessageReceivedCallback message_received_callback_; |
+ // Used to track the time taken to receive each message. |
+ base::TimeTicks last_message_started_time_; |
+ base::TimeDelta last_message_read_duration_; |
+ |
base::WeakPtrFactory<MessageReader> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(MessageReader); |