Index: net/disk_cache/storage_block-inl.h |
diff --git a/net/disk_cache/storage_block-inl.h b/net/disk_cache/storage_block-inl.h |
deleted file mode 100644 |
index b9061861d8febde1ae837309f12a03d8bc1a1c00..0000000000000000000000000000000000000000 |
--- a/net/disk_cache/storage_block-inl.h |
+++ /dev/null |
@@ -1,205 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-#ifndef NET_DISK_CACHE_STORAGE_BLOCK_INL_H_ |
-#define NET_DISK_CACHE_STORAGE_BLOCK_INL_H_ |
- |
-#include "net/disk_cache/storage_block.h" |
- |
-#include "base/hash.h" |
-#include "base/logging.h" |
-#include "net/disk_cache/trace.h" |
- |
-namespace disk_cache { |
- |
-template<typename T> StorageBlock<T>::StorageBlock(MappedFile* file, |
- Addr address) |
- : data_(NULL), file_(file), address_(address), modified_(false), |
- own_data_(false), extended_(false) { |
- if (address.num_blocks() > 1) |
- extended_ = true; |
- DCHECK(!address.is_initialized() || sizeof(*data_) == address.BlockSize()); |
-} |
- |
-template<typename T> StorageBlock<T>::~StorageBlock() { |
- if (modified_) |
- Store(); |
- DeleteData(); |
-} |
- |
-template<typename T> void* StorageBlock<T>::buffer() const { |
- return data_; |
-} |
- |
-template<typename T> size_t StorageBlock<T>::size() const { |
- if (!extended_) |
- return sizeof(*data_); |
- return address_.num_blocks() * sizeof(*data_); |
-} |
- |
-template<typename T> int StorageBlock<T>::offset() const { |
- return address_.start_block() * address_.BlockSize(); |
-} |
- |
-template<typename T> bool StorageBlock<T>::LazyInit(MappedFile* file, |
- Addr address) { |
- if (file_ || address_.is_initialized()) { |
- NOTREACHED(); |
- return false; |
- } |
- file_ = file; |
- address_.set_value(address.value()); |
- if (address.num_blocks() > 1) |
- extended_ = true; |
- |
- DCHECK(sizeof(*data_) == address.BlockSize()); |
- return true; |
-} |
- |
-template<typename T> void StorageBlock<T>::SetData(T* other) { |
- DCHECK(!modified_); |
- DeleteData(); |
- data_ = other; |
-} |
- |
-template<typename T> void StorageBlock<T>::Discard() { |
- if (!data_) |
- return; |
- if (!own_data_) { |
- NOTREACHED(); |
- return; |
- } |
- DeleteData(); |
- data_ = NULL; |
- modified_ = false; |
- extended_ = false; |
-} |
- |
-template<typename T> void StorageBlock<T>::StopSharingData() { |
- if (!data_ || own_data_) |
- return; |
- DCHECK(!modified_); |
- data_ = NULL; |
-} |
- |
-template<typename T> void StorageBlock<T>::set_modified() { |
- DCHECK(data_); |
- modified_ = true; |
-} |
- |
-template<typename T> void StorageBlock<T>::clear_modified() { |
- modified_ = false; |
-} |
- |
-template<typename T> T* StorageBlock<T>::Data() { |
- if (!data_) |
- AllocateData(); |
- return data_; |
-} |
- |
-template<typename T> bool StorageBlock<T>::HasData() const { |
- return (NULL != data_); |
-} |
- |
-template<typename T> bool StorageBlock<T>::VerifyHash() const { |
- uint32 hash = CalculateHash(); |
- return (!data_->self_hash || data_->self_hash == hash); |
-} |
- |
-template<typename T> bool StorageBlock<T>::own_data() const { |
- return own_data_; |
-} |
- |
-template<typename T> const Addr StorageBlock<T>::address() const { |
- return address_; |
-} |
- |
-template<typename T> bool StorageBlock<T>::Load() { |
- if (file_) { |
- if (!data_) |
- AllocateData(); |
- |
- if (file_->Load(this)) { |
- modified_ = false; |
- return true; |
- } |
- } |
- LOG(WARNING) << "Failed data load."; |
- Trace("Failed data load."); |
- return false; |
-} |
- |
-template<typename T> bool StorageBlock<T>::Store() { |
- if (file_ && data_) { |
- data_->self_hash = CalculateHash(); |
- if (file_->Store(this)) { |
- modified_ = false; |
- return true; |
- } |
- } |
- LOG(ERROR) << "Failed data store."; |
- Trace("Failed data store."); |
- return false; |
-} |
- |
-template<typename T> bool StorageBlock<T>::Load(FileIOCallback* callback, |
- bool* completed) { |
- if (file_) { |
- if (!data_) |
- AllocateData(); |
- |
- if (file_->Load(this, callback, completed)) { |
- modified_ = false; |
- return true; |
- } |
- } |
- LOG(WARNING) << "Failed data load."; |
- Trace("Failed data load."); |
- return false; |
-} |
- |
-template<typename T> bool StorageBlock<T>::Store(FileIOCallback* callback, |
- bool* completed) { |
- if (file_ && data_) { |
- data_->self_hash = CalculateHash(); |
- if (file_->Store(this, callback, completed)) { |
- modified_ = false; |
- return true; |
- } |
- } |
- LOG(ERROR) << "Failed data store."; |
- Trace("Failed data store."); |
- return false; |
-} |
- |
-template<typename T> void StorageBlock<T>::AllocateData() { |
- DCHECK(!data_); |
- if (!extended_) { |
- data_ = new T; |
- } else { |
- void* buffer = new char[address_.num_blocks() * sizeof(*data_)]; |
- data_ = new(buffer) T; |
- } |
- own_data_ = true; |
-} |
- |
-template<typename T> void StorageBlock<T>::DeleteData() { |
- if (own_data_) { |
- if (!extended_) { |
- delete data_; |
- } else { |
- data_->~T(); |
- delete[] reinterpret_cast<char*>(data_); |
- } |
- own_data_ = false; |
- } |
-} |
- |
-template<typename T> uint32 StorageBlock<T>::CalculateHash() const { |
- return base::Hash(reinterpret_cast<char*>(data_), offsetof(T, self_hash)); |
-} |
- |
-} // namespace disk_cache |
- |
-#endif // NET_DISK_CACHE_STORAGE_BLOCK_INL_H_ |