OLD | NEW |
(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_BLOB_STORAGE_BLOB_ITEM_BYTES_RESPONSE_H_ |
| 6 #define STORAGE_COMMON_BLOB_STORAGE_BLOB_ITEM_BYTES_RESPONSE_H_ |
| 7 |
| 8 #include <stdint.h> |
| 9 #include <algorithm> |
| 10 #include <ostream> |
| 11 #include <vector> |
| 12 |
| 13 #include "base/basictypes.h" |
| 14 #include "storage/common/storage_common_export.h" |
| 15 |
| 16 namespace storage { |
| 17 |
| 18 // This class is serialized over IPC to send blob item data, or to signal that |
| 19 // the memory has been populated. |
| 20 struct STORAGE_COMMON_EXPORT BlobItemBytesResponse { |
| 21 // not using std::numeric_limits<T>::max() because of non-C++11 builds. |
| 22 static const size_t kInvalidIndex = SIZE_MAX; |
| 23 |
| 24 BlobItemBytesResponse(); |
| 25 explicit BlobItemBytesResponse(size_t request_number); |
| 26 ~BlobItemBytesResponse(); |
| 27 |
| 28 char* allocate_mutable_data(size_t size) { |
| 29 inline_data.resize(size); |
| 30 return &inline_data[0]; |
| 31 } |
| 32 |
| 33 size_t request_number; |
| 34 std::vector<char> inline_data; |
| 35 }; |
| 36 |
| 37 STORAGE_COMMON_EXPORT void PrintTo(const BlobItemBytesResponse& response, |
| 38 std::ostream* os); |
| 39 |
| 40 #if defined(UNIT_TEST) |
| 41 STORAGE_COMMON_EXPORT inline bool operator==(const BlobItemBytesResponse& a, |
| 42 const BlobItemBytesResponse& b) { |
| 43 return a.request_number == b.request_number && |
| 44 a.inline_data.size() == b.inline_data.size() && |
| 45 std::equal(a.inline_data.begin(), |
| 46 a.inline_data.begin() + a.inline_data.size(), |
| 47 b.inline_data.begin()); |
| 48 } |
| 49 |
| 50 STORAGE_COMMON_EXPORT inline bool operator!=(const BlobItemBytesResponse& a, |
| 51 const BlobItemBytesResponse& b) { |
| 52 return !(a == b); |
| 53 } |
| 54 #endif // defined(UNIT_TEST) |
| 55 |
| 56 } // namespace storage |
| 57 |
| 58 #endif // STORAGE_COMMON_BLOB_STORAGE_BLOB_ITEM_BYTES_RESPONSE_H_ |
OLD | NEW |