Android-cuttlefish cvd tool
Public Member Functions | Private Attributes | List of all members
teeui::static_vec< T > Class Template Reference

#include <static_vec.h>

Public Member Functions

 static_vec ()
 
 static_vec (T *begin, T *end)
 
template<size_t s>
 static_vec (T(&arr)[s])
 
 static_vec (const static_vec &)=default
 
 static_vec (static_vec &&)=default
 
static_vecoperator= (const static_vec &)=default
 
static_vecoperator= (static_vec &&)=default
 
T * data ()
 
const T * data () const
 
size_t size () const
 
T * begin ()
 
T * end ()
 
const T * begin () const
 
const T * end () const
 

Private Attributes

T * data_
 
size_t size_
 

Detailed Description

template<typename T>
class teeui::static_vec< T >

teeui::static_vec leads a double life.

When compiling with TEEUI_USE_STD_VECTOR it is just an alias for std::vector. HAL services using this library must use this option for safe handling of message buffers.

When compiling without TEEUI_USE_STD_VECTOR this class works more like a span that does not actually own the buffer if wraps. This is the behavior expected by generic_operation.h, which is used inside a heap-less implementation of a confirmationui trusted app.

Constructor & Destructor Documentation

◆ static_vec() [1/5]

template<typename T >
teeui::static_vec< T >::static_vec ( )
inline

◆ static_vec() [2/5]

template<typename T >
teeui::static_vec< T >::static_vec ( T *  begin,
T *  end 
)
inline

◆ static_vec() [3/5]

template<typename T >
template<size_t s>
teeui::static_vec< T >::static_vec ( T(&)  arr[s])
inline

◆ static_vec() [4/5]

template<typename T >
teeui::static_vec< T >::static_vec ( const static_vec< T > &  )
default

◆ static_vec() [5/5]

template<typename T >
teeui::static_vec< T >::static_vec ( static_vec< T > &&  )
default

Member Function Documentation

◆ begin() [1/2]

template<typename T >
T * teeui::static_vec< T >::begin ( )
inline

◆ begin() [2/2]

template<typename T >
const T * teeui::static_vec< T >::begin ( ) const
inline

◆ data() [1/2]

template<typename T >
T * teeui::static_vec< T >::data ( )
inline

◆ data() [2/2]

template<typename T >
const T * teeui::static_vec< T >::data ( ) const
inline

◆ end() [1/2]

template<typename T >
T * teeui::static_vec< T >::end ( )
inline

◆ end() [2/2]

template<typename T >
const T * teeui::static_vec< T >::end ( ) const
inline

◆ operator=() [1/2]

template<typename T >
static_vec & teeui::static_vec< T >::operator= ( const static_vec< T > &  )
default

◆ operator=() [2/2]

template<typename T >
static_vec & teeui::static_vec< T >::operator= ( static_vec< T > &&  )
default

◆ size()

template<typename T >
size_t teeui::static_vec< T >::size ( ) const
inline

Member Data Documentation

◆ data_

template<typename T >
T* teeui::static_vec< T >::data_
private

◆ size_

template<typename T >
size_t teeui::static_vec< T >::size_
private

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