OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/appcache/appcache_disk_cache.h" | 5 #include "content/browser/appcache/appcache_disk_cache.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 public: | 52 public: |
53 EntryImpl(disk_cache::Entry* disk_cache_entry, | 53 EntryImpl(disk_cache::Entry* disk_cache_entry, |
54 AppCacheDiskCache* owner) | 54 AppCacheDiskCache* owner) |
55 : disk_cache_entry_(disk_cache_entry), owner_(owner) { | 55 : disk_cache_entry_(disk_cache_entry), owner_(owner) { |
56 DCHECK(disk_cache_entry); | 56 DCHECK(disk_cache_entry); |
57 DCHECK(owner); | 57 DCHECK(owner); |
58 owner_->AddOpenEntry(this); | 58 owner_->AddOpenEntry(this); |
59 } | 59 } |
60 | 60 |
61 // Entry implementation. | 61 // Entry implementation. |
62 virtual int Read(int index, int64 offset, net::IOBuffer* buf, int buf_len, | 62 int Read(int index, |
63 const net::CompletionCallback& callback) override { | 63 int64 offset, |
| 64 net::IOBuffer* buf, |
| 65 int buf_len, |
| 66 const net::CompletionCallback& callback) override { |
64 if (offset < 0 || offset > kint32max) | 67 if (offset < 0 || offset > kint32max) |
65 return net::ERR_INVALID_ARGUMENT; | 68 return net::ERR_INVALID_ARGUMENT; |
66 if (!disk_cache_entry_) | 69 if (!disk_cache_entry_) |
67 return net::ERR_ABORTED; | 70 return net::ERR_ABORTED; |
68 return disk_cache_entry_->ReadData( | 71 return disk_cache_entry_->ReadData( |
69 index, static_cast<int>(offset), buf, buf_len, callback); | 72 index, static_cast<int>(offset), buf, buf_len, callback); |
70 } | 73 } |
71 | 74 |
72 virtual int Write(int index, int64 offset, net::IOBuffer* buf, int buf_len, | 75 int Write(int index, |
73 const net::CompletionCallback& callback) override { | 76 int64 offset, |
| 77 net::IOBuffer* buf, |
| 78 int buf_len, |
| 79 const net::CompletionCallback& callback) override { |
74 if (offset < 0 || offset > kint32max) | 80 if (offset < 0 || offset > kint32max) |
75 return net::ERR_INVALID_ARGUMENT; | 81 return net::ERR_INVALID_ARGUMENT; |
76 if (!disk_cache_entry_) | 82 if (!disk_cache_entry_) |
77 return net::ERR_ABORTED; | 83 return net::ERR_ABORTED; |
78 const bool kTruncate = true; | 84 const bool kTruncate = true; |
79 return disk_cache_entry_->WriteData( | 85 return disk_cache_entry_->WriteData( |
80 index, static_cast<int>(offset), buf, buf_len, callback, kTruncate); | 86 index, static_cast<int>(offset), buf, buf_len, callback, kTruncate); |
81 } | 87 } |
82 | 88 |
83 virtual int64 GetSize(int index) override { | 89 int64 GetSize(int index) override { |
84 return disk_cache_entry_ ? disk_cache_entry_->GetDataSize(index) : 0L; | 90 return disk_cache_entry_ ? disk_cache_entry_->GetDataSize(index) : 0L; |
85 } | 91 } |
86 | 92 |
87 virtual void Close() override { | 93 void Close() override { |
88 if (disk_cache_entry_) | 94 if (disk_cache_entry_) |
89 disk_cache_entry_->Close(); | 95 disk_cache_entry_->Close(); |
90 delete this; | 96 delete this; |
91 } | 97 } |
92 | 98 |
93 void Abandon() { | 99 void Abandon() { |
94 owner_ = NULL; | 100 owner_ = NULL; |
95 disk_cache_entry_->Close(); | 101 disk_cache_entry_->Close(); |
96 disk_cache_entry_ = NULL; | 102 disk_cache_entry_ = NULL; |
97 } | 103 } |
98 | 104 |
99 private: | 105 private: |
100 virtual ~EntryImpl() { | 106 ~EntryImpl() override { |
101 if (owner_) | 107 if (owner_) |
102 owner_->RemoveOpenEntry(this); | 108 owner_->RemoveOpenEntry(this); |
103 } | 109 } |
104 | 110 |
105 disk_cache::Entry* disk_cache_entry_; | 111 disk_cache::Entry* disk_cache_entry_; |
106 AppCacheDiskCache* owner_; | 112 AppCacheDiskCache* owner_; |
107 }; | 113 }; |
108 | 114 |
109 // Separate object to hold state for each Create, Delete, or Doom call | 115 // Separate object to hold state for each Create, Delete, or Doom call |
110 // while the call is in-flight and to produce an EntryImpl upon completion. | 116 // while the call is in-flight and to produce an EntryImpl upon completion. |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 NOTREACHED(); | 363 NOTREACHED(); |
358 break; | 364 break; |
359 } | 365 } |
360 if (rv != net::ERR_IO_PENDING) | 366 if (rv != net::ERR_IO_PENDING) |
361 iter->callback.Run(rv); | 367 iter->callback.Run(rv); |
362 } | 368 } |
363 pending_calls_.clear(); | 369 pending_calls_.clear(); |
364 } | 370 } |
365 | 371 |
366 } // namespace content | 372 } // namespace content |
OLD | NEW |