summaryrefslogtreecommitdiff
path: root/chromium/net/third_party/quiche/src/quic/platform/api/quic_mem_slice_storage.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/platform/api/quic_mem_slice_storage.h')
-rw-r--r--chromium/net/third_party/quiche/src/quic/platform/api/quic_mem_slice_storage.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/platform/api/quic_mem_slice_storage.h b/chromium/net/third_party/quiche/src/quic/platform/api/quic_mem_slice_storage.h
new file mode 100644
index 00000000000..dc48a43d177
--- /dev/null
+++ b/chromium/net/third_party/quiche/src/quic/platform/api/quic_mem_slice_storage.h
@@ -0,0 +1,39 @@
+// Copyright 2017 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 QUICHE_QUIC_PLATFORM_API_QUIC_MEM_SLICE_STORAGE_H_
+#define QUICHE_QUIC_PLATFORM_API_QUIC_MEM_SLICE_STORAGE_H_
+
+#include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
+#include "net/quic/platform/impl/quic_mem_slice_storage_impl.h"
+
+namespace quic {
+
+// QuicMemSliceStorage is a container class that store QuicMemSlices for further
+// use cases such as turning into QuicMemSliceSpan.
+class QUIC_EXPORT_PRIVATE QuicMemSliceStorage {
+ public:
+ QuicMemSliceStorage(const struct iovec* iov,
+ int iov_count,
+ QuicBufferAllocator* allocator,
+ const QuicByteCount max_slice_len)
+ : impl_(iov, iov_count, allocator, max_slice_len) {}
+
+ QuicMemSliceStorage(const QuicMemSliceStorage& other) = default;
+ QuicMemSliceStorage& operator=(const QuicMemSliceStorage& other) = default;
+ QuicMemSliceStorage(QuicMemSliceStorage&& other) = default;
+ QuicMemSliceStorage& operator=(QuicMemSliceStorage&& other) = default;
+
+ ~QuicMemSliceStorage() = default;
+
+ // Return a QuicMemSliceSpan form of the storage.
+ QuicMemSliceSpan ToSpan() { return impl_.ToSpan(); }
+
+ private:
+ QuicMemSliceStorageImpl impl_;
+};
+
+} // namespace quic
+
+#endif // QUICHE_QUIC_PLATFORM_API_QUIC_MEM_SLICE_STORAGE_H_