| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include <stdio.h> | |
| 6 | |
| 7 #include "base/json/json_string_value_serializer.h" | |
| 8 #include "base/logging.h" | |
| 9 #include "base/memory/scoped_ptr.h" | |
| 10 #include "base/values.h" | |
| 11 #include "net/tools/gdig/file_net_log.h" | |
| 12 | |
| 13 namespace net { | |
| 14 | |
| 15 FileNetLogObserver::FileNetLogObserver(FILE* destination) | |
| 16 : destination_(destination) { | |
| 17 DCHECK(destination != NULL); | |
| 18 } | |
| 19 | |
| 20 FileNetLogObserver::~FileNetLogObserver() { | |
| 21 } | |
| 22 | |
| 23 void FileNetLogObserver::OnAddEntry(const net::NetLog::Entry& entry) { | |
| 24 // Only BoundNetLogs without a NetLog should have an invalid source. | |
| 25 DCHECK(entry.source().IsValid()); | |
| 26 | |
| 27 const char* source = NetLog::SourceTypeToString(entry.source().type); | |
| 28 const char* type = NetLog::EventTypeToString(entry.type()); | |
| 29 | |
| 30 scoped_ptr<base::Value> param_value(entry.ParametersToValue()); | |
| 31 std::string params; | |
| 32 if (param_value.get() != NULL) { | |
| 33 JSONStringValueSerializer serializer(¶ms); | |
| 34 bool ret = serializer.Serialize(*param_value); | |
| 35 DCHECK(ret); | |
| 36 } | |
| 37 base::Time now = base::Time::NowFromSystemTime(); | |
| 38 base::AutoLock lock(lock_); | |
| 39 if (first_event_time_.is_null()) { | |
| 40 first_event_time_ = now; | |
| 41 } | |
| 42 base::TimeDelta elapsed_time = now - first_event_time_; | |
| 43 fprintf(destination_ , "%u\t%u\t%s\t%s\t%s\n", | |
| 44 static_cast<unsigned>(elapsed_time.InMilliseconds()), | |
| 45 entry.source().id, source, type, params.c_str()); | |
| 46 } | |
| 47 | |
| 48 } // namespace net | |
| OLD | NEW |