C/C++ API Reference
Loading...
Searching...
No Matches
pw::multibuf::v1_adapter::MultiBufChunks Class Reference

Overview

A Chunk-oriented view of a MultiBuf that mimics v1::MultiBufChunks.

This type mimics the public API of v1::MultiBuf that derives from the privately inherited v1::MultiBufChunks, rather than the API of v1::MultiBufChunks itself.

This function can be used as a drop-in replacement for v1::MultiBuf while migrating to using pw_multibuf/v2.

Inheritance diagram for pw::multibuf::v1_adapter::MultiBufChunks:
pw::multibuf::v1_adapter::MultiBuf

Public Types

using iterator = Iterator< Mutability::kMutable >
 
using const_iterator = Iterator< Mutability::kConst >
 

Public Member Functions

 MultiBufChunks (MultiBufChunks &&other)=default
 
MultiBufChunksoperator= (MultiBufChunks &&other)=default
 
constexpr v2::TrackedMultiBufv2 ()
 
constexpr const v2::TrackedMultiBufv2 () const
 
constexpr size_t size () const
 Returns the number of Chunks in this MultiBuf, including empty chunks.
 
Chunkfront ()
 
Chunkback ()
 
iterator begin () const
 
iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 

Protected Member Functions

v2::TrackedMultiBufAssign (Allocator &allocator)
 
template<v2::Property... kProperties>
constexpr v2::TrackedMultiBufAssign (v2::BasicMultiBuf< kProperties... > &&mb)
 
template<typename MultiBufType >
constexpr v2::TrackedMultiBufAssign (v2::internal::Instance< MultiBufType > &&mbi)
 
void Release () noexcept
 

Member Function Documentation

◆ size()

constexpr size_t pw::multibuf::v1_adapter::MultiBufChunks::size ( ) const
constexpr

Returns the number of Chunks in this MultiBuf, including empty chunks.

◆ v2()

constexpr v2::TrackedMultiBuf * pw::multibuf::v1_adapter::MultiBufChunks::v2 ( )
inlineconstexpr

Returns the v2 MultiBuf used to implement both the v1 and v2 APIs.

This can be useful for methods that are only in the v1 API of this type due to name collisions, such as empty(), size(), and Chunks().

for (auto chunk : mb.Chunks() {
// Iterate over raw chunks of memory as in v1.
}
for (auto chunk : mb.v2().Chunks() {
// Iterate over non-empty chunks of contiguous memory as in v2.
}

The documentation for this class was generated from the following file: