Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Side by Side Diff: storage/common/blob_storage/blob_item_bytes_request.h

Issue 1288373002: [BlobAsync] Patch 2: Common Constants (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@async1
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef STORAGE_COMMON_FILEAPI_BLOB_ITEM_BYTES_REQUEST_H_
6 #define STORAGE_COMMON_FILEAPI_BLOB_ITEM_BYTES_REQUEST_H_
7
8 #include <stdint.h>
9 #include <ostream>
10
11 #include "base/basictypes.h"
12 #include "storage/common/blob_storage/blob_storage_constants.h"
13 #include "storage/common/storage_common_export.h"
14
15 namespace storage {
16
17 // This class is serialized over IPC to request bytes from a blob item.
18 struct STORAGE_COMMON_EXPORT BlobItemBytesRequest {
19 // not using std::numeric_limits<T>::max() because of non-C++11 builds.
20 static const size_t kInvalidIndex = SIZE_MAX;
21 static const uint64_t kInvalidSize = kuint64max;
22
23 static BlobItemBytesRequest CreateIPCRequest(size_t request_number,
michaeln 2015/08/18 03:04:41 Not sure the set of create helpers is needed? At t
dmurph 2015/09/15 01:12:12 You'll notice some constants below though, which h
24 size_t renderer_item_index,
25 size_t renderer_item_offset,
26 size_t size) {
27 return BlobItemBytesRequest(request_number, IPCBlobItemRequestStrategy::IPC,
28 renderer_item_index, renderer_item_offset, size,
29 kInvalidIndex, kInvalidSize);
30 }
31
32 static BlobItemBytesRequest CreateSharedMemoryRequest(
33 size_t request_number,
34 size_t renderer_item_index,
35 size_t renderer_item_offset,
36 size_t size,
37 size_t handle_index,
38 uint64_t handle_offset) {
39 return BlobItemBytesRequest(request_number,
40 IPCBlobItemRequestStrategy::SHARED_MEMORY,
41 renderer_item_index, renderer_item_offset, size,
42 handle_index, handle_offset);
43 }
44
45 static BlobItemBytesRequest CreateFileRequest(size_t request_number,
46 size_t renderer_item_index,
47 uint64_t renderer_item_offset,
48 uint64_t size,
49 size_t handle_index,
50 uint64_t handle_offset) {
51 return BlobItemBytesRequest(
52 request_number, IPCBlobItemRequestStrategy::FILE, renderer_item_index,
53 renderer_item_offset, size, handle_index, handle_offset);
54 }
55
56 BlobItemBytesRequest()
57 : request_number(kInvalidIndex),
58 transport_strategy(IPCBlobItemRequestStrategy::UNKNOWN),
59 renderer_item_index(kInvalidIndex),
60 renderer_item_offset(kInvalidSize),
61 size(kInvalidSize),
62 handle_index(kInvalidIndex),
63 handle_offset(kInvalidSize) {}
64 ~BlobItemBytesRequest() {}
65
66 BlobItemBytesRequest(size_t request_number,
67 IPCBlobItemRequestStrategy transport_strategy,
68 size_t renderer_item_index,
69 uint64_t renderer_item_offset,
70 uint64_t size,
71 size_t handle_index,
72 uint64_t handle_offset)
73 : request_number(request_number),
74 transport_strategy(transport_strategy),
75 renderer_item_index(renderer_item_index),
76 renderer_item_offset(renderer_item_offset),
77 size(size),
78 handle_index(handle_index),
79 handle_offset(handle_offset) {}
80
81 size_t request_number;
82 IPCBlobItemRequestStrategy transport_strategy;
83 size_t renderer_item_index;
84 uint64_t renderer_item_offset;
85 uint64_t size;
86 size_t handle_index;
87 uint64_t handle_offset;
88 };
89
90 #if defined(UNIT_TEST)
91 STORAGE_COMMON_EXPORT inline bool operator==(const BlobItemBytesRequest& a,
92 const BlobItemBytesRequest& b) {
93 return a.request_number == b.request_number &&
94 a.transport_strategy == b.transport_strategy &&
95 a.renderer_item_index == b.renderer_item_index &&
96 a.renderer_item_offset == b.renderer_item_offset && a.size == b.size &&
97 a.handle_index == b.handle_index && a.handle_offset == b.handle_offset;
98 }
99
100 STORAGE_COMMON_EXPORT inline bool operator!=(const BlobItemBytesRequest& a,
101 const BlobItemBytesRequest& b) {
102 return !(a == b);
103 }
104
105 STORAGE_COMMON_EXPORT inline ::std::ostream& operator<<(
106 ::std::ostream& os,
107 const BlobItemBytesRequest& request) {
108 os << "{ request_number: " << request.request_number
109 << ", transport_strategy: " << static_cast<int>(request.transport_strategy)
110 << ", renderer_item_index: " << request.renderer_item_index
111 << ", renderer_item_offset: " << request.renderer_item_offset
112 << ", size: " << request.size << ", handle_index: " << request.handle_index
113 << ", handle_offset: " << request.handle_offset << " }";
114 return os;
115 }
116 #endif // defined(UNIT_TEST)
117
118 } // namespace storage
119
120 #endif // STORAGE_COMMON_FILEAPI_BLOB_ITEM_BYTES_REQUEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698