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

Unified Diff: extensions/browser/api/cast_channel/logger.cc

Issue 475463002: Cast channel logging: log additional statistics. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@REAL-NEW-MASTER
Patch Set: Fix merge Created 6 years, 4 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: extensions/browser/api/cast_channel/logger.cc
diff --git a/extensions/browser/api/cast_channel/logger.cc b/extensions/browser/api/cast_channel/logger.cc
index a665052ac841c74aa53b56c83063699f5799d080..823b4c320877e84c3141879d8ce81d92e9bb8dd9 100644
--- a/extensions/browser/api/cast_channel/logger.cc
+++ b/extensions/browser/api/cast_channel/logger.cc
@@ -108,10 +108,7 @@ Logger::AggregatedSocketEventLog::~AggregatedSocketEventLog() {
Logger::Logger(scoped_ptr<base::TickClock> clock,
base::TimeTicks unix_epoch_time_ticks)
- : clock_(clock.Pass()),
- unix_epoch_time_ticks_(unix_epoch_time_ticks),
- num_evicted_aggregated_socket_events_(0),
- num_evicted_socket_events_(0) {
+ : clock_(clock.Pass()), unix_epoch_time_ticks_(unix_epoch_time_ticks) {
DCHECK(clock_);
// Logger may not be necessarily be created on the IO thread, but logging
@@ -127,11 +124,9 @@ void Logger::LogNewSocketEvent(const CastSocket& cast_socket) {
int channel_id = cast_socket.id();
SocketEvent event = CreateEvent(proto::CAST_SOCKET_CREATED);
- LogSocketEvent(channel_id, event);
-
AggregatedSocketEvent& aggregated_socket_event =
- aggregated_socket_events_.find(channel_id)
- ->second->aggregated_socket_event;
+ LogSocketEvent(channel_id, event);
+
const net::IPAddressNumber& ip = cast_socket.ip_endpoint().address();
aggregated_socket_event.set_endpoint_id(ip.back());
aggregated_socket_event.set_channel_auth_type(cast_socket.channel_auth() ==
@@ -166,7 +161,19 @@ void Logger::LogSocketEventWithRv(int channel_id,
SocketEvent event = CreateEvent(event_type);
event.set_net_return_value(rv);
- LogSocketEvent(channel_id, event);
+ AggregatedSocketEvent& aggregated_socket_event =
+ LogSocketEvent(channel_id, event);
+
+ if ((event_type == proto::SOCKET_READ || event_type == proto::SOCKET_WRITE) &&
+ rv > 0) {
+ if (event_type == proto::SOCKET_READ) {
+ aggregated_socket_event.set_bytes_read(
+ aggregated_socket_event.bytes_read() + rv);
+ } else {
+ aggregated_socket_event.set_bytes_written(
+ aggregated_socket_event.bytes_written() + rv);
+ }
+ }
}
void Logger::LogSocketReadyState(int channel_id, proto::ReadyState new_state) {
@@ -250,7 +257,8 @@ SocketEvent Logger::CreateEvent(EventType event_type) {
return event;
}
-void Logger::LogSocketEvent(int channel_id, const SocketEvent& socket_event) {
+AggregatedSocketEvent& Logger::LogSocketEvent(int channel_id,
+ const SocketEvent& socket_event) {
AggregatedSocketEventLogMap::iterator it =
aggregated_socket_events_.find(channel_id);
if (it == aggregated_socket_events_.end()) {
@@ -258,8 +266,11 @@ void Logger::LogSocketEvent(int channel_id, const SocketEvent& socket_event) {
AggregatedSocketEventLogMap::iterator erase_it =
aggregated_socket_events_.begin();
- num_evicted_aggregated_socket_events_++;
- num_evicted_socket_events_ += erase_it->second->socket_events.size();
+ log_.set_num_evicted_aggregated_socket_events(
+ log_.num_evicted_aggregated_socket_events() + 1);
+ log_.set_num_evicted_socket_events(
+ log_.num_evicted_socket_events() +
+ erase_it->second->socket_events.size());
aggregated_socket_events_.erase(erase_it);
}
@@ -274,7 +285,7 @@ void Logger::LogSocketEvent(int channel_id, const SocketEvent& socket_event) {
std::deque<proto::SocketEvent>& socket_events = it->second->socket_events;
if (socket_events.size() >= kMaxEventsPerSocket) {
socket_events.pop_front();
- num_evicted_socket_events_++;
+ log_.set_num_evicted_socket_events(log_.num_evicted_socket_events() + 1);
}
socket_events.push_back(socket_event);
@@ -289,15 +300,17 @@ void Logger::LogSocketEvent(int channel_id, const SocketEvent& socket_event) {
}
if (socket_event.has_nss_error_code())
it->second->last_errors.nss_error_code = socket_event.nss_error_code();
+
+ return it->second->aggregated_socket_event;
}
scoped_ptr<char[]> Logger::GetLogs(size_t* length) const {
*length = 0;
Log log;
- log.set_num_evicted_aggregated_socket_events(
- num_evicted_aggregated_socket_events_);
- log.set_num_evicted_socket_events(num_evicted_socket_events_);
+ // Copy "global" values from |log_|. Don't use |log_| directly since this
+ // function is const.
+ log.CopyFrom(log_);
for (AggregatedSocketEventLogMap::const_iterator it =
aggregated_socket_events_.begin();
@@ -329,8 +342,7 @@ scoped_ptr<char[]> Logger::GetLogs(size_t* length) const {
void Logger::Reset() {
aggregated_socket_events_.clear();
- num_evicted_aggregated_socket_events_ = 0;
- num_evicted_socket_events_ = 0;
+ log_.Clear();
}
LastErrors Logger::GetLastErrors(int channel_id) const {
« no previous file with comments | « extensions/browser/api/cast_channel/logger.h ('k') | extensions/browser/api/cast_channel/logger_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698