| Index: webkit/blob/blob_data_handle.h
|
| ===================================================================
|
| --- webkit/blob/blob_data_handle.h (revision 0)
|
| +++ webkit/blob/blob_data_handle.h (revision 0)
|
| @@ -0,0 +1,50 @@
|
| +// Copyright (c) 2013 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_DATA_HANDLE_H_
|
| +#define WEBKIT_BLOB_BLOB_DATA_HANDLE_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/memory/ref_counted.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "base/supports_user_data.h"
|
| +#include "webkit/storage/webkit_storage_export.h"
|
| +
|
| +namespace base {
|
| +class SequencedTaskRunner;
|
| +}
|
| +
|
| +namespace webkit_blob {
|
| +
|
| +class BlobData;
|
| +class BlobStorageContext;
|
| +
|
| +// A scoper object for use in chrome's main browser process, ensures
|
| +// the underlying BlobData and its uuid remain in BlobStorageContext's
|
| +// collection for the duration. This object has delete semantics and
|
| +// maybe deleted on any thread.
|
| +class WEBKIT_STORAGE_EXPORT BlobDataHandle
|
| + : public base::SupportsUserData::Data {
|
| + public:
|
| + virtual ~BlobDataHandle(); // Maybe be deleted on any thread.
|
| + BlobData* data() const; // May only be accessed on the IO thread.
|
| +
|
| + private:
|
| + friend class BlobStorageContext;
|
| + BlobDataHandle(BlobData* blob_data, BlobStorageContext* context,
|
| + base::SequencedTaskRunner* task_runner);
|
| +
|
| + static void DeleteHelper(
|
| + base::WeakPtr<BlobStorageContext> context,
|
| + BlobData* blob_data);
|
| +
|
| + BlobData* blob_data_; // Intentionally a raw ptr to a non-thread-safe ref.
|
| + base::WeakPtr<BlobStorageContext> context_;
|
| + scoped_refptr<base::SequencedTaskRunner> io_task_runner_;
|
| +};
|
| +
|
| +} // namespace webkit_blob
|
| +
|
| +#endif // WEBKIT_BLOB_BLOB_DATA_HANDLE_H_
|
|
|
| Property changes on: webkit\blob\blob_data_handle.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|