blob: fa5eb684eaa769e3ecf2178656b53ade6cd681bb [file] [log] [blame]
// 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.
#include "storage/common/blob_storage/blob_item_bytes_request.h"
namespace storage {
BlobItemBytesRequest BlobItemBytesRequest::CreateIPCRequest(
size_t request_number,
size_t renderer_item_index,
size_t renderer_item_offset,
size_t size) {
return BlobItemBytesRequest(request_number, IPCBlobItemRequestStrategy::IPC,
renderer_item_index, renderer_item_offset, size,
kInvalidIndex, kInvalidSize);
}
BlobItemBytesRequest BlobItemBytesRequest::CreateSharedMemoryRequest(
size_t request_number,
size_t renderer_item_index,
size_t renderer_item_offset,
size_t size,
size_t handle_index,
uint64_t handle_offset) {
return BlobItemBytesRequest(request_number,
IPCBlobItemRequestStrategy::SHARED_MEMORY,
renderer_item_index, renderer_item_offset, size,
handle_index, handle_offset);
}
BlobItemBytesRequest BlobItemBytesRequest::CreateFileRequest(
size_t request_number,
size_t renderer_item_index,
uint64_t renderer_item_offset,
uint64_t size,
size_t handle_index,
uint64_t handle_offset) {
return BlobItemBytesRequest(request_number, IPCBlobItemRequestStrategy::FILE,
renderer_item_index, renderer_item_offset, size,
handle_index, handle_offset);
}
BlobItemBytesRequest::BlobItemBytesRequest()
: request_number(kInvalidIndex),
transport_strategy(IPCBlobItemRequestStrategy::UNKNOWN),
renderer_item_index(kInvalidIndex),
renderer_item_offset(kInvalidSize),
size(kInvalidSize),
handle_index(kInvalidIndex),
handle_offset(kInvalidSize) {}
BlobItemBytesRequest::BlobItemBytesRequest(
size_t request_number,
IPCBlobItemRequestStrategy transport_strategy,
size_t renderer_item_index,
uint64_t renderer_item_offset,
uint64_t size,
size_t handle_index,
uint64_t handle_offset)
: request_number(request_number),
transport_strategy(transport_strategy),
renderer_item_index(renderer_item_index),
renderer_item_offset(renderer_item_offset),
size(size),
handle_index(handle_index),
handle_offset(handle_offset) {}
BlobItemBytesRequest::~BlobItemBytesRequest() {}
void PrintTo(const BlobItemBytesRequest& request, std::ostream* os) {
*os << "{request_number: " << request.request_number
<< ", transport_strategy: "
<< static_cast<int>(request.transport_strategy)
<< ", renderer_item_index: " << request.renderer_item_index
<< ", renderer_item_offset: " << request.renderer_item_offset
<< ", size: " << request.size
<< ", handle_index: " << request.handle_index
<< ", handle_offset: " << request.handle_offset << "}";
}
bool operator==(const BlobItemBytesRequest& a, const BlobItemBytesRequest& b) {
return a.request_number == b.request_number &&
a.transport_strategy == b.transport_strategy &&
a.renderer_item_index == b.renderer_item_index &&
a.renderer_item_offset == b.renderer_item_offset && a.size == b.size &&
a.handle_index == b.handle_index && a.handle_offset == b.handle_offset;
}
bool operator!=(const BlobItemBytesRequest& a, const BlobItemBytesRequest& b) {
return !(a == b);
}
} // namespace storage