|
Scalar_kind | kind () const |
| Interpretation of the content.
|
|
Datatype_sptr | densify () const override |
| Creates a new datatype as the dense copy of this one.
|
|
Datatype_sptr | evaluate (Context &) const override |
| Creates a new datatype by resolving the value of all metadata references.
|
|
bool | dense () const override |
| Indicate if the datatype is dense or not.
|
|
size_t | datasize () const override |
| Computes the data size of a type, excluding potentially unused memory from a sparse type.
|
|
size_t | buffersize () const override |
| Computes the data size of a type, including potentially unused memory from a sparse type.
|
|
size_t | alignment () const override |
| Returns the required alignment for a type.
|
|
bool | simple () const override |
| Tells if data can be copied as bytes (if type is dense) and doesn't need a destroyer.
|
|
void * | data_to_dense_copy (void *to, const void *from) const override |
| Creates a dense deep copy of data.
|
|
void * | data_from_dense_copy (void *to, const void *from) const override |
| Creates a sparse deep copy of dense data.
|
|
void | destroy_data (void *ptr) const override |
| Delete data whose type is described by the Datatype.
|
|
std::string | debug_string () const override |
| Returns the datatype yaml representation as a string.
|
|
bool | operator== (const Datatype &) const override |
| Test for equality.
|
|
| Datatype (const Attributes_map &attributes={}) |
| Creates a new datatype.
|
|
| ~Datatype () override |
|
virtual bool | operator== (const Datatype &other) const =0 |
| Test for equality.
|
|
bool | operator!= (const Datatype &other) const |
| Test for inequality.
|
|
virtual Datatype_sptr | densify () const =0 |
| Creates a new datatype as the dense copy of this one.
|
|
virtual bool | dense () const =0 |
| Indicate if the datatype is dense or not.
|
|
virtual size_t | datasize () const =0 |
| Computes the data size of a type, excluding potentially unused memory from a sparse type.
|
|
virtual size_t | buffersize () const =0 |
| Computes the data size of a type, including potentially unused memory from a sparse type.
|
|
virtual size_t | alignment () const =0 |
| Returns the required alignment for a type.
|
|
virtual bool | simple () const =0 |
| Tells if data can be copied as bytes (if type is dense) and doesn't need a destroyer.
|
|
virtual void * | data_to_dense_copy (void *to, const void *from) const =0 |
| Creates a dense deep copy of data.
|
|
virtual void * | data_from_dense_copy (void *to, const void *from) const =0 |
| Creates a sparse deep copy of dense data.
|
|
virtual Datatype_sptr | index (size_t index) const |
| Access the type of the element at the provided index.
|
|
virtual std::pair< void *, Datatype_sptr > | index (size_t index, void *data) const |
| Access the type and value of the element at the provided index.
|
|
virtual Datatype_sptr | slice (size_t start_index, size_t end_index) const |
| Access the type of the elements slice between the provided indices.
|
|
virtual std::pair< void *, Datatype_sptr > | slice (size_t start_index, size_t end_index, void *data) const |
| Access the type and value of the elements slice between the provided indices.
|
|
virtual Datatype_sptr | member (const char *name) const |
| Access the type of the member with the provided name.
|
|
virtual std::pair< void *, Datatype_sptr > | member (const char *name, void *data) const |
| Access the type and value of the member with the provided name.
|
|
virtual Datatype_sptr | dereference () const |
| Access the type referenced by this.
|
|
virtual std::pair< void *, Datatype_sptr > | dereference (void *data) const |
| Access the type and value referenced by this.
|
|
virtual void | destroy_data (void *ptr) const =0 |
| Delete data whose type is described by the Datatype.
|
|
virtual std::string | debug_string () const =0 |
| Returns the datatype yaml representation as a string.
|
|
| Datatype_template (const Attributes_map &attributes={}) |
| Creates datatype template with given attributes.
|
|
| Datatype_template (PC_tree_t datatype_tree) |
| Creates datatype template.
|
|
virtual | ~Datatype_template () |
| Destroys the template.
|
|
virtual Datatype_sptr | evaluate (Context &ctx) const =0 |
| Creates a new datatype by resolving the value of all metadata references.
|
|
Expression | attribute (const std::string &attribute_name) const |
| Returns attribute of given name as Expression.
|
|
const Attributes_map & | attributes () const |
| Returns all attributes as a unordered map.
|
|
|
static std::shared_ptr< Scalar_datatype > | make (Scalar_kind kind, size_t size, const Attributes_map &attributes={}) |
| Creates new scalar datatype.
|
|
static std::shared_ptr< Scalar_datatype > | make (Scalar_kind kind, size_t size, size_t align, const Attributes_map &attributes={}) |
| Creates new scalar datatype.
|
|
static std::shared_ptr< Scalar_datatype > | make (Scalar_kind kind, size_t size, size_t align, size_t dense_size, std::function< void *(void *, const void *) > copy, std::function< void(void *) > destroy, const Attributes_map &attributes={}) |
| Creates new scalar datatype.
|
|
static void | load_basic_datatypes (Context &ctx) |
| Adds to the context the basic Array, Record, C and Fortran datatypes.
|
|
static void | load_user_datatypes (Context &ctx, PC_tree_t types_tree) |
| Adds to the context the user defined datatypes.
|
|