diff options
Diffstat (limited to 'chromium/net/disk_cache/storage_block.h')
-rw-r--r-- | chromium/net/disk_cache/storage_block.h | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/chromium/net/disk_cache/storage_block.h b/chromium/net/disk_cache/storage_block.h deleted file mode 100644 index f7690ed5c4d..00000000000 --- a/chromium/net/disk_cache/storage_block.h +++ /dev/null @@ -1,97 +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. - -// See net/disk_cache/disk_cache.h for the public interface. - -#ifndef NET_DISK_CACHE_STORAGE_BLOCK_H_ -#define NET_DISK_CACHE_STORAGE_BLOCK_H_ - -#include "net/disk_cache/addr.h" -#include "net/disk_cache/mapped_file.h" - -namespace disk_cache { - -// This class encapsulates common behavior of a single "block" of data that is -// stored on a block-file. It implements the FileBlock interface, so it can be -// serialized directly to the backing file. -// This object provides a memory buffer for the related data, and it can be used -// to actually share that memory with another instance of the class. -// -// The following example shows how to share storage with another object: -// StorageBlock<TypeA> a(file, address); -// StorageBlock<TypeB> b(file, address); -// a.Load(); -// DoSomething(a.Data()); -// b.SetData(a.Data()); -// ModifySomething(b.Data()); -// // Data modified on the previous call will be saved by b's destructor. -// b.set_modified(); -template<typename T> -class StorageBlock : public FileBlock { - public: - StorageBlock(MappedFile* file, Addr address); - virtual ~StorageBlock(); - - // FileBlock interface. - virtual void* buffer() const; - virtual size_t size() const; - virtual int offset() const; - - // Allows the overide of dummy values passed on the constructor. - bool LazyInit(MappedFile* file, Addr address); - - // Sets the internal storage to share the memory provided by other instance. - void SetData(T* other); - - // Deletes the data, even if it was modified and not saved. This object must - // own the memory buffer (it cannot be shared). - void Discard(); - - // Stops sharing the data with another object. - void StopSharingData(); - - // Sets the object to lazily save the in-memory data on destruction. - void set_modified(); - - // Forgets that the data was modified, so it's not lazily saved. - void clear_modified(); - - // Gets a pointer to the internal storage (allocates storage if needed). - T* Data(); - - // Returns true if there is data associated with this object. - bool HasData() const; - - // Returns true if the internal hash is correct. - bool VerifyHash() const; - - // Returns true if this object owns the data buffer, false if it is shared. - bool own_data() const; - - const Addr address() const; - - // Loads and store the data. - bool Load(); - bool Store(); - bool Load(FileIOCallback* callback, bool* completed); - bool Store(FileIOCallback* callback, bool* completed); - - private: - void AllocateData(); - void DeleteData(); - uint32 CalculateHash() const; - - T* data_; - MappedFile* file_; - Addr address_; - bool modified_; - bool own_data_; // Is data_ owned by this object or shared with someone else. - bool extended_; // Used to store an entry of more than one block. - - DISALLOW_COPY_AND_ASSIGN(StorageBlock); -}; - -} // namespace disk_cache - -#endif // NET_DISK_CACHE_STORAGE_BLOCK_H_ |