|
| const std::vector< Member > & | members () const |
| | Accesses the members in increasing displacement order. More...
|
| |
| Datatype_sptr | densify () const override |
| | Creates a new datatype as the dense copy of this one. More...
|
| |
| Datatype_sptr | evaluate (Context &) const override |
| | Creates a new datatype by resolving the value of all metadata references. More...
|
| |
| bool | dense () const override |
| | Indicate if the datatype is dense or not. More...
|
| |
| size_t | datasize () const override |
| | Computes the data size of a type, excluding potentially unused memory from a sparse type. More...
|
| |
| size_t | buffersize () const override |
| | Computes the data size of a type, including potentially unused memory from a sparse type. More...
|
| |
| size_t | alignment () const override |
| | Returns the required alignment for a type. More...
|
| |
| bool | simple () const override |
| | Tells if data can be copied as bytes (if type is dense) and doesn't need a destroyer. More...
|
| |
| void * | data_to_dense_copy (void *to, const void *) const override |
| | Creates a dense deep copy of data. More...
|
| |
| void * | data_from_dense_copy (void *to, const void *) const override |
| | Creates a sparse deep copy of dense data. More...
|
| |
| Datatype_sptr | member (const char *name) const override |
| | Access the type of the member with the provided name. More...
|
| |
| std::pair< void *, Datatype_sptr > | member (const char *name, void *data) const override |
| | Access the type and value of the member with the provided name. More...
|
| |
| void | destroy_data (void *) const override |
| | Delete data whose type is described by the Datatype. More...
|
| |
| std::string | debug_string () const override |
| | Returns the datatype yaml representation as a string. More...
|
| |
| bool | operator== (const Datatype &) const override |
| | Test for equality. More...
|
| |
| | Datatype (const Attributes_map &attributes={}) |
| | Creates a new datatype. More...
|
| |
| | ~Datatype () override |
| |
| virtual bool | operator== (const Datatype &other) const =0 |
| | Test for equality. More...
|
| |
| bool | operator!= (const Datatype &other) const |
| | Test for inequality. More...
|
| |
| virtual Datatype_sptr | densify () const =0 |
| | Creates a new datatype as the dense copy of this one. More...
|
| |
| virtual bool | dense () const =0 |
| | Indicate if the datatype is dense or not. More...
|
| |
| virtual size_t | datasize () const =0 |
| | Computes the data size of a type, excluding potentially unused memory from a sparse type. More...
|
| |
| virtual size_t | buffersize () const =0 |
| | Computes the data size of a type, including potentially unused memory from a sparse type. More...
|
| |
| virtual size_t | alignment () const =0 |
| | Returns the required alignment for a type. More...
|
| |
| virtual bool | simple () const =0 |
| | Tells if data can be copied as bytes (if type is dense) and doesn't need a destroyer. More...
|
| |
| virtual void * | data_to_dense_copy (void *to, const void *from) const =0 |
| | Creates a dense deep copy of data. More...
|
| |
| virtual void * | data_from_dense_copy (void *to, const void *from) const =0 |
| | Creates a sparse deep copy of dense data. More...
|
| |
| virtual Datatype_sptr | index (size_t index) const |
| | Access the type of the element at the provided index. More...
|
| |
| 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. More...
|
| |
| virtual Datatype_sptr | slice (size_t start_index, size_t end_index) const |
| | Access the type of the elements slice between the provided indices. More...
|
| |
| 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. More...
|
| |
| virtual Datatype_sptr | member (const char *name) const |
| | Access the type of the member with the provided name. More...
|
| |
| 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. More...
|
| |
| virtual Datatype_sptr | dereference () const |
| | Access the type referenced by this. More...
|
| |
| virtual std::pair< void *, Datatype_sptr > | dereference (void *data) const |
| | Access the type and value referenced by this. More...
|
| |
| virtual void | destroy_data (void *ptr) const =0 |
| | Delete data whose type is described by the Datatype. More...
|
| |
| virtual std::string | debug_string () const =0 |
| | Returns the datatype yaml representation as a string. More...
|
| |
| | Datatype_template (const Attributes_map &attributes={}) |
| | Creates datatype template with given attributes. More...
|
| |
| | Datatype_template (PC_tree_t datatype_tree) |
| | Creates datatype template. More...
|
| |
| virtual | ~Datatype_template () |
| | Destroys the template. More...
|
| |
| virtual Datatype_sptr | evaluate (Context &ctx) const =0 |
| | Creates a new datatype by resolving the value of all metadata references. More...
|
| |
| Expression | attribute (const std::string &attribute_name) const |
| | Returns attribute of given name as Expression. More...
|
| |
| const Attributes_map & | attributes () const |
| | Returns all attributes as a unordered map. More...
|
| |
A Record_datatype is a Datatype that represents a fixed number of elements of potentially different types layed out in a specific way in memory.
Each element is given a name to access it.