1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
// 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
|