class PDI::Scalar_datatype

Content

Member Functions

Scalar_datatype ( Scalar_kind kind, size_t size )
Scalar_datatype ( size_t align, Scalar_kind kind, size_t size )
Scalar_datatype ( size_t align, std::function< void *(void *, const void *)> copy, size_t dense_size, std::function< void(void *)> destroy, Scalar_kind kind, size_t size )
size_t alignment ( )
Returns the required alignment for a type.
size_t buffersize ( )
Computes the data size of a type, including potentially unused memory from a sparse type.
Datatype_template_uptr clone ( )
Creates a new datatype as an exact copy of this one.
Datatype_uptr clone_type ( )
Creates a new datatype as an exact copy of this one.
void * data_from_dense_copy ( const void * from, void * to )
Creates a sparse deep copy of dense data.
void * data_to_dense_copy ( const void * from, void * to )
Creates a dense deep copy of data.
size_t datasize ( )
Computes the data size of a type, excluding potentially unused memory from a sparse type.
std::string debug_string ( )
Returns the datatype yaml representation as a string.
bool dense ( )
Indicate if the datatype is dense or not.
Datatype_uptr densify ( )
Creates a new datatype as the dense copy of this one.
void destroy_data ( void * ptr )
Function used to delete the data behind the datatype.
Datatype_uptr evaluate ( Context & ctx )
Creates a new datatype by resolving the value of all metadata references.
Scalar_kind kind ( )
Interpretation of the content.
bool operator== ( const Datatype & other )
Test for equality.
bool simple ( )
Tells if data can be copied as bytes (if type is dense) and doesn't need a destroyer.

Documentation

Member Functions

Scalar_datatype ( Scalar_kind kind, size_t size )

Parameters

kind
size

Scalar_datatype ( size_t align, Scalar_kind kind, size_t size )

Parameters

align
kind
size

Scalar_datatype ( size_t align, std::function< void *(void *, const void *)> copy, size_t dense_size, std::function< void(void *)> destroy, Scalar_kind kind, size_t size )

Parameters

align
copy
dense_size
destroy
kind
size

size_t alignment ( )

Description

Returns the required alignment for a type.

Result

the size in bytes

size_t buffersize ( )

Description

Computes the data size of a type, including potentially unused memory from a sparse type.

Result

the size in bytes

Datatype_template_uptr clone ( )

Description

Creates a new datatype as an exact copy of this one.

Result

the dense type that is produced

Datatype_uptr clone_type ( )

Description

Creates a new datatype as an exact copy of this one.

Result

the dense type that is produced

void * data_from_dense_copy ( const void * from, void * to )

Description

Creates a sparse deep copy of dense data.

Parameters

from
the pointer to the copied data (dense data)
to
the pointer to the allocated memory to fill (size of buffersize)

Result

updated ‘to’ pointer

void * data_to_dense_copy ( const void * from, void * to )

Description

Creates a dense deep copy of data.

Parameters

from
the pointer to the copied data (size of buffersize)
to
the pointer to the allocated memory to fill (dense data)

Result

updated ‘to’ pointer

size_t datasize ( )

Description

Computes the data size of a type, excluding potentially unused memory from a sparse type.

Result

the size in bytes

std::string debug_string ( )

Description

Returns the datatype yaml representation as a string.

Result

the datatype yaml representation as a string

bool dense ( )

Description

Indicate if the datatype is dense or not.

Result

whether the datatype is dense

Datatype_uptr densify ( )

Description

Creates a new datatype as the dense copy of this one.

Result

the type that is produced

void destroy_data ( void * ptr )

Description

Function used to delete the data behind the datatype. This should not deallocate the memory.

Parameters

ptr
to the data to free

Datatype_uptr evaluate ( Context & ctx )

Description

Creates a new datatype by resolving the value of all metadata references.

Parameters

ctx
the context in which to evaluate this template

Result

the evaluated type that is produced

Scalar_kind kind ( )

Description

Interpretation of the content.

bool operator== ( const Datatype & other )

Description

Test for equality.

Parameters

other
the Datatype to compare

Result

true if the Datatype’s are equal

bool simple ( )

Description

Tells if data can be copied as bytes (if type is dense) and doesn't need a destroyer.

Result

true if data has trivial copier and destroyer, false otherwise


Last modified January 1, 0001