// Copyright (c) 2011 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/disk_cache/net_log_parameters.h"
#include "base/logging.h"
#include "base/string_number_conversions.h"
#include "base/values.h"
#include "net/base/net_errors.h"
namespace disk_cache {
EntryCreationParameters::EntryCreationParameters(
const std::string& key, bool created)
: key_(key), created_(created) {
}
Value* EntryCreationParameters::ToValue() const {
DictionaryValue* dict = new DictionaryValue();
dict->SetString("key", key_);
dict->SetBoolean("created", created_);
return dict;
}
ReadWriteDataParameters::ReadWriteDataParameters(
int index, int offset, int buf_len, bool truncate)
: index_(index), offset_(offset), buf_len_(buf_len), truncate_(truncate) {
}
Value* ReadWriteDataParameters::ToValue() const {
DictionaryValue* dict = new DictionaryValue();
dict->SetInteger("index", index_);
dict->SetInteger("offset", offset_);
dict->SetInteger("buf_len", buf_len_);
if (truncate_)
dict->SetBoolean("truncate", truncate_);
return dict;
}
// NetLog parameters logged when non-sparse reads and writes complete.
ReadWriteCompleteParameters::ReadWriteCompleteParameters(int bytes_copied)
: bytes_copied_(bytes_copied) {
}
Value* ReadWriteCompleteParameters::ToValue() const {
DCHECK_NE(bytes_copied_, net::ERR_IO_PENDING);
DictionaryValue* dict = new DictionaryValue();
if (bytes_copied_ < 0) {
dict->SetInteger("net_error", bytes_copied_);
} else {
dict->SetInteger("bytes_copied", bytes_copied_);
}
return dict;
}
SparseOperationParameters::SparseOperationParameters(
int64 offset, int buff_len)
: offset_(offset), buff_len_(buff_len) {
}
Value* SparseOperationParameters::ToValue() const {
DictionaryValue* dict = new DictionaryValue();
// Values can only be created with at most 32-bit integers. Using a string
// instead circumvents that restriction.
dict->SetString("offset", base::Int64ToString(offset_));
dict->SetInteger("buff_len", buff_len_);
return dict;
}
SparseReadWriteParameters::SparseReadWriteParameters(
const net::NetLog::Source& source, int child_len)
: source_(source), child_len_(child_len) {
}
Value* SparseReadWriteParameters::ToValue() const {
DictionaryValue* dict = new DictionaryValue();
dict->Set("source_dependency", source_.ToValue());
dict->SetInteger("child_len", child_len_);
return dict;
}
GetAvailableRangeResultParameters::GetAvailableRangeResultParameters(
int64 start, int result)
: start_(start), result_(result) {
}
Value* GetAvailableRangeResultParameters::ToValue() const {
DictionaryValue* dict = new DictionaryValue();
if (result_ > 0) {
dict->SetInteger("length", result_);
dict->SetString("start", base::Int64ToString(start_));
} else {
dict->SetInteger("net_error", result_);
}
return dict;
}
} // namespace disk_cache