MUDA
Loading...
Searching...
No Matches
muda::SubFieldInterface Class Referenceabstract
Inheritance diagram for muda::SubFieldInterface:
muda::SubFieldImpl< FieldEntryLayout::AoS > muda::SubFieldImpl< FieldEntryLayout::AoSoA > muda::SubFieldImpl< FieldEntryLayout::SoA >

Public Member Functions

 SubFieldInterface (Field &field) MUDA_NOEXCEPT
 
 SubFieldInterface (const SubFieldInterface &)=delete
 
SubFieldInterfaceoperator= (const SubFieldInterface &)=delete
 
 SubFieldInterface (SubFieldInterface &&)=delete
 
SubFieldInterfaceoperator= (SubFieldInterface &&)=delete
 

Protected Member Functions

virtual void build_impl ()=0
 
virtual size_t require_total_buffer_byte_size (size_t element_count)=0
 
virtual void calculate_new_cores (std::byte *byte_buffer, size_t total_bytes, size_t element_count, span< FieldEntryCore > new_cores)=0
 
virtual bool allow_inplace_shrink () const
 
const FieldEntryLayoutInfolayout_info () const
 
const FieldBuildOptionsbuild_options () const
 
size_t num_elements () const
 

Static Protected Member Functions

static uint32_t round_up (uint32_t total, uint32_t N)
 
static uint32_t align (uint32_t offset, uint32_t size, uint32_t min_alignment, uint32_t max_alignment)
 

Protected Attributes

Fieldm_field
 
std::vector< U< FieldEntryBase > > m_entries
 
FieldEntryLayoutInfo m_layout_info
 
FieldBuildOptions m_build_options
 
std::unordered_map< std::string, size_t > m_name_to_index
 
size_t m_num_elements = 0
 
uint32_t m_struct_stride = ~0
 
std::byte * m_data_buffer = nullptr
 
size_t m_data_buffer_size = 0
 

Friends

class SubField
 
template<FieldEntryLayout Layout>
class FieldBuilder
 

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