Index: net/base/captured_net_log_entry.cc |
diff --git a/net/base/captured_net_log_entry.cc b/net/base/captured_net_log_entry.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9c57271891ecd11d081ea9b79125e5bf88d3f69b |
--- /dev/null |
+++ b/net/base/captured_net_log_entry.cc |
@@ -0,0 +1,77 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "net/base/captured_net_log_entry.h" |
+ |
+#include "base/json/json_writer.h" |
+#include "base/logging.h" |
+#include "base/values.h" |
+ |
+namespace net { |
+ |
+CapturedNetLogEntry::CapturedNetLogEntry( |
+ NetLog::EventType type, |
+ const base::TimeTicks& time, |
+ NetLog::Source source, |
+ NetLog::EventPhase phase, |
+ scoped_ptr<base::DictionaryValue> params) |
+ : type(type), |
+ time(time), |
+ source(source), |
+ phase(phase), |
+ params(params.Pass()) { |
+ // Only entries without a NetLog should have an invalid source. |
+ CHECK(source.IsValid()); |
+} |
+ |
+CapturedNetLogEntry::CapturedNetLogEntry(const CapturedNetLogEntry& entry) { |
+ *this = entry; |
+} |
+ |
+CapturedNetLogEntry::~CapturedNetLogEntry() {} |
+ |
+CapturedNetLogEntry& CapturedNetLogEntry::operator=( |
+ const CapturedNetLogEntry& entry) { |
+ type = entry.type; |
+ time = entry.time; |
+ source = entry.source; |
+ phase = entry.phase; |
+ params.reset(entry.params ? entry.params->DeepCopy() : NULL); |
+ return *this; |
+} |
+ |
+bool CapturedNetLogEntry::GetStringValue(const std::string& name, |
+ std::string* value) const { |
+ if (!params) |
+ return false; |
+ return params->GetString(name, value); |
+} |
+ |
+bool CapturedNetLogEntry::GetIntegerValue(const std::string& name, |
+ int* value) const { |
+ if (!params) |
+ return false; |
+ return params->GetInteger(name, value); |
+} |
+ |
+bool CapturedNetLogEntry::GetListValue(const std::string& name, |
+ base::ListValue** value) const { |
+ if (!params) |
+ return false; |
+ return params->GetList(name, value); |
+} |
+ |
+bool CapturedNetLogEntry::GetNetErrorCode(int* value) const { |
+ return GetIntegerValue("net_error", value); |
+} |
+ |
+std::string CapturedNetLogEntry::GetParamsJson() const { |
+ if (!params) |
+ return std::string(); |
+ std::string json; |
+ base::JSONWriter::Write(params.get(), &json); |
+ return json; |
+} |
+ |
+} // namespace net |