| Index: storage/browser/blob/blob_async_transport_request_builder.h
|
| diff --git a/storage/browser/blob/blob_async_transport_request_builder.h b/storage/browser/blob/blob_async_transport_request_builder.h
|
| deleted file mode 100644
|
| index 10dde5ff6ffad01b1314cd105c285bc88a956874..0000000000000000000000000000000000000000
|
| --- a/storage/browser/blob/blob_async_transport_request_builder.h
|
| +++ /dev/null
|
| @@ -1,138 +0,0 @@
|
| -// Copyright 2015 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 STORAGE_BROWSER_BLOB_BLOB_ASYNC_TRANSPORT_REQUEST_BUILDER_H_
|
| -#define STORAGE_BROWSER_BLOB_BLOB_ASYNC_TRANSPORT_REQUEST_BUILDER_H_
|
| -
|
| -#include <stddef.h>
|
| -#include <stdint.h>
|
| -
|
| -#include <map>
|
| -#include <memory>
|
| -#include <vector>
|
| -
|
| -#include "base/macros.h"
|
| -#include "storage/browser/blob/blob_data_builder.h"
|
| -#include "storage/browser/storage_browser_export.h"
|
| -#include "storage/common/blob_storage/blob_item_bytes_request.h"
|
| -#include "storage/common/data_element.h"
|
| -
|
| -namespace storage {
|
| -
|
| -// This class generates the requests needed to asynchronously transport the
|
| -// given blob items from the renderer to the browser. The main job of this class
|
| -// is to segment the memory being transfered to efficiently use shared memory,
|
| -// file, and IPC max sizes.
|
| -// Note: This class does not compute requests by using the 'shortcut' method,
|
| -// where the data is already present in the blob description, and will
|
| -// always give the caller requests for requesting all data from the
|
| -// renderer.
|
| -class STORAGE_EXPORT BlobAsyncTransportRequestBuilder {
|
| - public:
|
| - struct RendererMemoryItemRequest {
|
| - RendererMemoryItemRequest();
|
| - // This is the index of the item in the builder on the browser side.
|
| - size_t browser_item_index;
|
| - // Note: For files this offset should always be 0, as the file offset in
|
| - // segmentation is handled by the handle_offset in the message. This
|
| - // offset is used for populating a chunk when the data comes back to
|
| - // the browser.
|
| - size_t browser_item_offset;
|
| - BlobItemBytesRequest message;
|
| - };
|
| -
|
| - BlobAsyncTransportRequestBuilder();
|
| - virtual ~BlobAsyncTransportRequestBuilder();
|
| -
|
| - // Initializes the request builder for file requests. One or more files are
|
| - // created to hold the given data. Each file can hold data from multiple
|
| - // items, and the data from each item can be in multiple files.
|
| - // See file_handle_sizes() for the generated file sizes.
|
| - // max_file_size: This is the maximum size for a file to back a blob.
|
| - // blob_total_size: This is the total in-memory size of the blob.
|
| - // elements: These are the descriptions of the blob items being sent from the
|
| - // renderer.
|
| - // builder: This is the builder that is populated with the 'future' versions
|
| - // of the data elements. In this case, we call 'AppendFutureData' in
|
| - // the items that we expect to be backed by files writen by the
|
| - // renderer.
|
| - void InitializeForFileRequests(size_t max_file_size,
|
| - uint64_t blob_total_size,
|
| - const std::vector<DataElement>& elements,
|
| - BlobDataBuilder* builder);
|
| -
|
| - // Initializes the request builder for shared memory requests. We try to
|
| - // consolidate as much memory as possible in each shared memory segment we
|
| - // use.
|
| - // See shared_memory_handle_sizes() for the shared memory sizes.
|
| - // max_shared_memory_size: This is the maximum size for a shared memory
|
| - // segment used to transport the data between renderer
|
| - // and browser.
|
| - // blob_total_size: This is the total in-memory size of the blob.
|
| - // elements: These are the descriptions of the blob items being sent from the
|
| - // renderer.
|
| - // builder: This is the builder that is populated with the 'future' versions
|
| - // of the data elements. In this case, we call 'AppendFutureData' for
|
| - // the items we expect to be populated later.
|
| - void InitializeForSharedMemoryRequests(
|
| - size_t max_shared_memory_size,
|
| - uint64_t blob_total_size,
|
| - const std::vector<DataElement>& elements,
|
| - BlobDataBuilder* builder);
|
| -
|
| - // Initializes the request builder for IPC requests. We put as much memory
|
| - // in a single IPC request as possible.
|
| - // max_ipc_memory_size: This is the maximum size for an IPC message which will
|
| - // be used to transport memory from the renderer to the
|
| - // browser.
|
| - // blob_total_size: This is the total in-memory size of the blob.
|
| - // elements: These are the descriptions of the blob items being sent from the
|
| - // renderer.
|
| - // builder: This is the builder that is populated with the 'future' versions
|
| - // of the data elements. In this case, we call 'AppendFutureData' for
|
| - // the items we expect to be populated later.
|
| - void InitializeForIPCRequests(size_t max_ipc_memory_size,
|
| - uint64_t blob_total_size,
|
| - const std::vector<DataElement>& elements,
|
| - BlobDataBuilder* builder);
|
| -
|
| - // The sizes of the shared memory handles being used (by handle index).
|
| - const std::vector<size_t>& shared_memory_sizes() const {
|
| - return shared_memory_sizes_;
|
| - }
|
| -
|
| - // The sizes of the file handles being used (by handle index).
|
| - const std::vector<size_t>& file_sizes() const { return file_sizes_; }
|
| -
|
| - // The requests for memory, segmented as described above, along with their
|
| - // destination browser indexes and offsets.
|
| - const std::vector<RendererMemoryItemRequest>& requests() const {
|
| - return requests_;
|
| - }
|
| -
|
| - // The total bytes size of memory items in the blob.
|
| - uint64_t total_bytes_size() const { return total_bytes_size_; }
|
| -
|
| - static bool ShouldBeShortcut(const std::vector<DataElement>& items,
|
| - size_t memory_available);
|
| -
|
| - private:
|
| - static void ComputeHandleSizes(uint64_t total_memory_size,
|
| - size_t max_segment_size,
|
| - std::vector<size_t>* segment_sizes);
|
| -
|
| - std::vector<size_t> shared_memory_sizes_;
|
| - // The size of the files is capped by the |max_file_size| argument in
|
| - // InitializeForFileRequests, so we can just use size_t.
|
| - std::vector<size_t> file_sizes_;
|
| -
|
| - uint64_t total_bytes_size_;
|
| - std::vector<RendererMemoryItemRequest> requests_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BlobAsyncTransportRequestBuilder);
|
| -};
|
| -
|
| -} // namespace storage
|
| -
|
| -#endif // STORAGE_BROWSER_BLOB_BLOB_ASYNC_TRANSPORT_REQUEST_BUILDER_H_
|
|
|