Android-cuttlefish cvd tool
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
IOVector Struct Reference

#include <types.h>

Public Types

using value_type = char
 
using block_type = Block
 
using size_type = size_t
 

Public Member Functions

 IOVector ()=default
 
 IOVector (block_type &&block)
 
 IOVector (const IOVector &copy)=delete
 
 IOVector (IOVector &&move) noexcept
 
IOVectoroperator= (const IOVector &copy)=delete
 
IOVectoroperator= (IOVector &&move) noexcept
 
const value_typefront_data () const
 
size_type front_size () const
 
size_type size () const
 
bool empty () const
 
block_type clear ()
 
void drop_front (size_type len)
 
IOVector take_front (size_type len)
 
void append (block_type &&block)
 
void trim_front ()
 
template<typename CollectionType = block_type>
CollectionType coalesce () const &
 
block_type coalesce () &&
 
template<typename FunctionType >
auto coalesced (FunctionType &&f) const
 
std::vector< adb_ioveciovecs () const
 

Private Member Functions

void trim_chain_front ()
 
void pop_front_block ()
 
template<typename Fn >
void iterate_blocks (Fn &&callback) const
 

Private Attributes

size_t chain_length_ = 0
 
size_t begin_offset_ = 0
 
size_t start_index_ = 0
 
std::vector< block_typechain_
 

Member Typedef Documentation

◆ block_type

◆ size_type

using IOVector::size_type = size_t

◆ value_type

using IOVector::value_type = char

Constructor & Destructor Documentation

◆ IOVector() [1/4]

IOVector::IOVector ( )
default

◆ IOVector() [2/4]

IOVector::IOVector ( block_type &&  block)
inlineexplicit

◆ IOVector() [3/4]

IOVector::IOVector ( const IOVector copy)
delete

◆ IOVector() [4/4]

IOVector::IOVector ( IOVector &&  move)
inlinenoexcept

Member Function Documentation

◆ append()

void IOVector::append ( block_type &&  block)
inline

◆ clear()

IOVector::block_type IOVector::clear ( )

◆ coalesce() [1/2]

IOVector::block_type IOVector::coalesce ( ) &&

◆ coalesce() [2/2]

template<typename CollectionType = block_type>
CollectionType IOVector::coalesce ( ) const &
inline

◆ coalesced()

template<typename FunctionType >
auto IOVector::coalesced ( FunctionType &&  f) const
inline

◆ drop_front()

void IOVector::drop_front ( IOVector::size_type  len)

◆ empty()

bool IOVector::empty ( ) const
inline

◆ front_data()

const value_type * IOVector::front_data ( ) const
inline

◆ front_size()

size_type IOVector::front_size ( ) const
inline

◆ iovecs()

std::vector< adb_iovec > IOVector::iovecs ( ) const

◆ iterate_blocks()

template<typename Fn >
void IOVector::iterate_blocks ( Fn &&  callback) const
inlineprivate

◆ operator=() [1/2]

IOVector & IOVector::operator= ( const IOVector copy)
delete

◆ operator=() [2/2]

IOVector & IOVector::operator= ( IOVector &&  move)
noexcept

◆ pop_front_block()

void IOVector::pop_front_block ( )
private

◆ size()

size_type IOVector::size ( ) const
inline

◆ take_front()

IOVector IOVector::take_front ( IOVector::size_type  len)

◆ trim_chain_front()

void IOVector::trim_chain_front ( )
private

◆ trim_front()

void IOVector::trim_front ( )

Member Data Documentation

◆ begin_offset_

size_t IOVector::begin_offset_ = 0
private

◆ chain_

std::vector<block_type> IOVector::chain_
private

◆ chain_length_

size_t IOVector::chain_length_ = 0
private

◆ start_index_

size_t IOVector::start_index_ = 0
private

The documentation for this struct was generated from the following files: