diff options
Diffstat (limited to 'webkit/blob/blob_storage_controller.h')
-rw-r--r-- | webkit/blob/blob_storage_controller.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/webkit/blob/blob_storage_controller.h b/webkit/blob/blob_storage_controller.h new file mode 100644 index 0000000..dd98f18 --- /dev/null +++ b/webkit/blob/blob_storage_controller.h @@ -0,0 +1,43 @@ +// Copyright (c) 2010 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 WEBKIT_BLOB_BLOB_STORAGE_CONTROLLER_H_ +#define WEBKIT_BLOB_BLOB_STORAGE_CONTROLLER_H_ + +#include "base/hash_tables.h" +#include "base/process.h" +#include "base/ref_counted.h" + +class GURL; + +namespace webkit_blob { + +class BlobData; + +// This class handles the logistics of blob Storage within the browser process. +class BlobStorageController { + public: + BlobStorageController(); + ~BlobStorageController(); + + void RegisterBlobUrl(const GURL& url, const BlobData* blob_data); + void RegisterBlobUrlFrom(const GURL& url, const GURL& src_url); + void UnregisterBlobUrl(const GURL& url); + BlobData* GetBlobDataFromUrl(const GURL& url); + + private: + void AppendStorageItems(BlobData* target_blob_data, + BlobData* src_blob_data, + uint64 offset, + uint64 length); + + typedef base::hash_map<std::string, scoped_refptr<BlobData> > BlobMap; + BlobMap blob_map_; + + DISALLOW_COPY_AND_ASSIGN(BlobStorageController); +}; + +} // namespace webkit_blob + +#endif // WEBKIT_BLOB_BLOB_STORAGE_CONTROLLER_H_ |