| Index: net/disk_cache/tracing/tracing_cache_backend.cc
|
| diff --git a/net/disk_cache/tracing/tracing_cache_backend.cc b/net/disk_cache/tracing/tracing_cache_backend.cc
|
| index 1efdb99963d3bfe13fdc4bba5471243a5a729c17..db733e6636b1980c9c32dabc043bad944f7bd6cc 100644
|
| --- a/net/disk_cache/tracing/tracing_cache_backend.cc
|
| +++ b/net/disk_cache/tracing/tracing_cache_backend.cc
|
| @@ -13,23 +13,35 @@ namespace disk_cache {
|
| // operations since often non-trivial work is invoked directly on entries.
|
| class EntryProxy : public Entry, public base::RefCountedThreadSafe<EntryProxy> {
|
| public:
|
| - EntryProxy(Entry *entry, TracingCacheBackend* backend);
|
| + EntryProxy(Entry* entry, TracingCacheBackend* backend);
|
| virtual void Doom() OVERRIDE;
|
| virtual void Close() OVERRIDE;
|
| virtual std::string GetKey() const OVERRIDE;
|
| virtual base::Time GetLastUsed() const OVERRIDE;
|
| virtual base::Time GetLastModified() const OVERRIDE;
|
| virtual int32 GetDataSize(int index) const OVERRIDE;
|
| - virtual int ReadData(int index, int offset, IOBuffer* buf, int buf_len,
|
| + virtual int ReadData(int index,
|
| + int offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| const CompletionCallback& callback) OVERRIDE;
|
| - virtual int WriteData(int index, int offset, IOBuffer* buf, int buf_len,
|
| + virtual int WriteData(int index,
|
| + int offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| const CompletionCallback& callback,
|
| bool truncate) OVERRIDE;
|
| - virtual int ReadSparseData(int64 offset, IOBuffer* buf, int buf_len,
|
| + virtual int ReadSparseData(int64 offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| const CompletionCallback& callback) OVERRIDE;
|
| - virtual int WriteSparseData(int64 offset, IOBuffer* buf, int buf_len,
|
| + virtual int WriteSparseData(int64 offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| const CompletionCallback& callback) OVERRIDE;
|
| - virtual int GetAvailableRange(int64 offset, int len, int64* start,
|
| + virtual int GetAvailableRange(int64 offset,
|
| + int len,
|
| + int64* start,
|
| const CompletionCallback& callback) OVERRIDE;
|
| virtual bool CouldBeSparse() const OVERRIDE;
|
| virtual void CancelSparseIO() OVERRIDE;
|
| @@ -47,10 +59,14 @@ class EntryProxy : public Entry, public base::RefCountedThreadSafe<EntryProxy> {
|
| bool truncate;
|
| };
|
|
|
| - void RecordEvent(base::TimeTicks start_time, Operation op, RwOpExtra extra,
|
| + void RecordEvent(base::TimeTicks start_time,
|
| + Operation op,
|
| + RwOpExtra extra,
|
| int result_to_record);
|
| - void EntryOpComplete(base::TimeTicks start_time, Operation op,
|
| - RwOpExtra extra, const CompletionCallback& cb,
|
| + void EntryOpComplete(base::TimeTicks start_time,
|
| + Operation op,
|
| + RwOpExtra extra,
|
| + const CompletionCallback& cb,
|
| int result);
|
| Entry* entry_;
|
| base::WeakPtr<TracingCacheBackend> backend_;
|
| @@ -58,9 +74,8 @@ class EntryProxy : public Entry, public base::RefCountedThreadSafe<EntryProxy> {
|
| DISALLOW_COPY_AND_ASSIGN(EntryProxy);
|
| };
|
|
|
| -EntryProxy::EntryProxy(Entry *entry, TracingCacheBackend* backend)
|
| - : entry_(entry),
|
| - backend_(backend->AsWeakPtr()) {
|
| +EntryProxy::EntryProxy(Entry* entry, TracingCacheBackend* backend)
|
| + : entry_(entry), backend_(backend->AsWeakPtr()) {
|
| }
|
|
|
| void EntryProxy::Doom() {
|
| @@ -90,7 +105,10 @@ int32 EntryProxy::GetDataSize(int index) const {
|
| return entry_->GetDataSize(index);
|
| }
|
|
|
| -int EntryProxy::ReadData(int index, int offset, IOBuffer* buf, int buf_len,
|
| +int EntryProxy::ReadData(int index,
|
| + int offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| const CompletionCallback& callback) {
|
| base::TimeTicks start_time = base::TimeTicks::Now();
|
| RwOpExtra extra;
|
| @@ -98,49 +116,71 @@ int EntryProxy::ReadData(int index, int offset, IOBuffer* buf, int buf_len,
|
| extra.offset = offset;
|
| extra.buf_len = buf_len;
|
| extra.truncate = false;
|
| - int rv = entry_->ReadData(
|
| - index, offset, buf, buf_len,
|
| - base::Bind(&EntryProxy::EntryOpComplete, this, start_time,
|
| - TracingCacheBackend::OP_READ, extra, callback));
|
| + int rv = entry_->ReadData(index,
|
| + offset,
|
| + buf,
|
| + buf_len,
|
| + base::Bind(&EntryProxy::EntryOpComplete,
|
| + this,
|
| + start_time,
|
| + TracingCacheBackend::OP_READ,
|
| + extra,
|
| + callback));
|
| if (rv != net::ERR_IO_PENDING) {
|
| RecordEvent(start_time, TracingCacheBackend::OP_READ, extra, rv);
|
| }
|
| return rv;
|
| }
|
|
|
| -int EntryProxy::WriteData(int index, int offset, IOBuffer* buf, int buf_len,
|
| - const CompletionCallback& callback,
|
| - bool truncate) {
|
| +int EntryProxy::WriteData(int index,
|
| + int offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| + const CompletionCallback& callback,
|
| + bool truncate) {
|
| base::TimeTicks start_time = base::TimeTicks::Now();
|
| RwOpExtra extra;
|
| extra.index = index;
|
| extra.offset = offset;
|
| extra.buf_len = buf_len;
|
| extra.truncate = truncate;
|
| - int rv = entry_->WriteData(index, offset, buf, buf_len,
|
| - base::Bind(&EntryProxy::EntryOpComplete, this, start_time,
|
| - TracingCacheBackend::OP_WRITE, extra, callback),
|
| - truncate);
|
| + int rv = entry_->WriteData(index,
|
| + offset,
|
| + buf,
|
| + buf_len,
|
| + base::Bind(&EntryProxy::EntryOpComplete,
|
| + this,
|
| + start_time,
|
| + TracingCacheBackend::OP_WRITE,
|
| + extra,
|
| + callback),
|
| + truncate);
|
| if (rv != net::ERR_IO_PENDING) {
|
| RecordEvent(start_time, TracingCacheBackend::OP_WRITE, extra, rv);
|
| }
|
| return rv;
|
| }
|
|
|
| -int EntryProxy::ReadSparseData(int64 offset, IOBuffer* buf, int buf_len,
|
| - const CompletionCallback& callback) {
|
| +int EntryProxy::ReadSparseData(int64 offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| + const CompletionCallback& callback) {
|
| // TODO(pasko): Record the event.
|
| return entry_->ReadSparseData(offset, buf, buf_len, callback);
|
| }
|
|
|
| -int EntryProxy::WriteSparseData(int64 offset, IOBuffer* buf, int buf_len,
|
| - const CompletionCallback& callback) {
|
| +int EntryProxy::WriteSparseData(int64 offset,
|
| + IOBuffer* buf,
|
| + int buf_len,
|
| + const CompletionCallback& callback) {
|
| // TODO(pasko): Record the event.
|
| return entry_->WriteSparseData(offset, buf, buf_len, callback);
|
| }
|
|
|
| -int EntryProxy::GetAvailableRange(int64 offset, int len, int64* start,
|
| - const CompletionCallback& callback) {
|
| +int EntryProxy::GetAvailableRange(int64 offset,
|
| + int len,
|
| + int64* start,
|
| + const CompletionCallback& callback) {
|
| return entry_->GetAvailableRange(offset, len, start, callback);
|
| }
|
|
|
| @@ -156,13 +196,17 @@ int EntryProxy::ReadyForSparseIO(const CompletionCallback& callback) {
|
| return entry_->ReadyForSparseIO(callback);
|
| }
|
|
|
| -void EntryProxy::RecordEvent(base::TimeTicks start_time, Operation op,
|
| - RwOpExtra extra, int result_to_record) {
|
| +void EntryProxy::RecordEvent(base::TimeTicks start_time,
|
| + Operation op,
|
| + RwOpExtra extra,
|
| + int result_to_record) {
|
| // TODO(pasko): Implement.
|
| }
|
|
|
| -void EntryProxy::EntryOpComplete(base::TimeTicks start_time, Operation op,
|
| - RwOpExtra extra, const CompletionCallback& cb,
|
| +void EntryProxy::EntryOpComplete(base::TimeTicks start_time,
|
| + Operation op,
|
| + RwOpExtra extra,
|
| + const CompletionCallback& cb,
|
| int result) {
|
| RecordEvent(start_time, op, extra, result);
|
| if (!cb.is_null()) {
|
| @@ -177,7 +221,7 @@ EntryProxy::~EntryProxy() {
|
| }
|
|
|
| TracingCacheBackend::TracingCacheBackend(scoped_ptr<Backend> backend)
|
| - : backend_(backend.Pass()) {
|
| + : backend_(backend.Pass()) {
|
| }
|
|
|
| TracingCacheBackend::~TracingCacheBackend() {
|
| @@ -191,8 +235,11 @@ int32 TracingCacheBackend::GetEntryCount() const {
|
| return backend_->GetEntryCount();
|
| }
|
|
|
| -void TracingCacheBackend::RecordEvent(base::TimeTicks start_time, Operation op,
|
| - std::string key, Entry* entry, int rv) {
|
| +void TracingCacheBackend::RecordEvent(base::TimeTicks start_time,
|
| + Operation op,
|
| + std::string key,
|
| + Entry* entry,
|
| + int rv) {
|
| // TODO(pasko): Implement.
|
| }
|
|
|
| @@ -233,19 +280,27 @@ void TracingCacheBackend::BackendOpComplete(base::TimeTicks start_time,
|
| }
|
|
|
| net::CompletionCallback TracingCacheBackend::BindCompletion(
|
| - Operation op, base::TimeTicks start_time, const std::string& key,
|
| - Entry **entry, const net::CompletionCallback& cb) {
|
| + Operation op,
|
| + base::TimeTicks start_time,
|
| + const std::string& key,
|
| + Entry** entry,
|
| + const net::CompletionCallback& cb) {
|
| return base::Bind(&TracingCacheBackend::BackendOpComplete,
|
| - AsWeakPtr(), start_time, op, key, entry, cb);
|
| + AsWeakPtr(),
|
| + start_time,
|
| + op,
|
| + key,
|
| + entry,
|
| + cb);
|
| }
|
|
|
| -int TracingCacheBackend::OpenEntry(const std::string& key, Entry** entry,
|
| +int TracingCacheBackend::OpenEntry(const std::string& key,
|
| + Entry** entry,
|
| const CompletionCallback& callback) {
|
| DCHECK(*entry == NULL);
|
| base::TimeTicks start_time = base::TimeTicks::Now();
|
| - int rv = backend_->OpenEntry(key, entry,
|
| - BindCompletion(OP_OPEN, start_time, key, entry,
|
| - callback));
|
| + int rv = backend_->OpenEntry(
|
| + key, entry, BindCompletion(OP_OPEN, start_time, key, entry, callback));
|
| if (rv != net::ERR_IO_PENDING) {
|
| RecordEvent(start_time, OP_OPEN, key, *entry, rv);
|
| if (*entry) {
|
| @@ -255,12 +310,12 @@ int TracingCacheBackend::OpenEntry(const std::string& key, Entry** entry,
|
| return rv;
|
| }
|
|
|
| -int TracingCacheBackend::CreateEntry(const std::string& key, Entry** entry,
|
| +int TracingCacheBackend::CreateEntry(const std::string& key,
|
| + Entry** entry,
|
| const CompletionCallback& callback) {
|
| base::TimeTicks start_time = base::TimeTicks::Now();
|
| - int rv = backend_->CreateEntry(key, entry,
|
| - BindCompletion(OP_CREATE, start_time, key,
|
| - entry, callback));
|
| + int rv = backend_->CreateEntry(
|
| + key, entry, BindCompletion(OP_CREATE, start_time, key, entry, callback));
|
| if (rv != net::ERR_IO_PENDING) {
|
| RecordEvent(start_time, OP_CREATE, key, *entry, rv);
|
| if (*entry) {
|
| @@ -273,9 +328,8 @@ int TracingCacheBackend::CreateEntry(const std::string& key, Entry** entry,
|
| int TracingCacheBackend::DoomEntry(const std::string& key,
|
| const CompletionCallback& callback) {
|
| base::TimeTicks start_time = base::TimeTicks::Now();
|
| - int rv = backend_->DoomEntry(key, BindCompletion(OP_DOOM_ENTRY,
|
| - start_time, key, NULL,
|
| - callback));
|
| + int rv = backend_->DoomEntry(
|
| + key, BindCompletion(OP_DOOM_ENTRY, start_time, key, NULL, callback));
|
| if (rv != net::ERR_IO_PENDING) {
|
| RecordEvent(start_time, OP_DOOM_ENTRY, key, NULL, rv);
|
| }
|
| @@ -297,7 +351,8 @@ int TracingCacheBackend::DoomEntriesSince(base::Time initial_time,
|
| return backend_->DoomEntriesSince(initial_time, callback);
|
| }
|
|
|
| -int TracingCacheBackend::OpenNextEntry(void** iter, Entry** next_entry,
|
| +int TracingCacheBackend::OpenNextEntry(void** iter,
|
| + Entry** next_entry,
|
| const CompletionCallback& callback) {
|
| return backend_->OpenNextEntry(iter, next_entry, callback);
|
| }
|
|
|