an Array_datatype is a Datatype that represents an array: i.e storage of multiple elements of the same type continuously in memory. More...
 
  
 | Classes | |
| class | Index_accessor | 
| Accessor to get single element from array.  More... | |
| class | Slice_accessor | 
| Accessor to get a slice of an array, returns array of the same subtype.  More... | |
| Public Member Functions | |
| Array_datatype (Datatype_uptr subtype, size_t size, size_t start, size_t subsize) | |
| Construct a new partially filled Array_datatype.  More... | |
| Array_datatype (Datatype_uptr subtype, size_t size) | |
| Construct a new completely filled Array_datatype.  More... | |
| const Datatype & | subtype () const | 
| Type of the elements contained in the array.  More... | |
| size_t | size () const | 
| Number of elements the array can store.  More... | |
| size_t | start () const | 
| id of the first actual element of the array  More... | |
| size_t | subsize () const | 
| Number of actual elements in the array.  More... | |
| Datatype_template_uptr | clone () const override | 
| Creates a new datatype as an exact copy of this one.  More... | |
| Datatype_uptr | clone_type () const override | 
| Creates a new datatype as an exact copy of this one.  More... | |
| Datatype_uptr | densify () const override | 
| Creates a new datatype as the dense copy of this one.  More... | |
| Datatype_uptr | 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 *, const void *) const override | 
| Creates a dense deep copy of data.  More... | |
| void * | data_from_dense_copy (void *, const void *) const override | 
| Creates a sparse deep copy of dense data.  More... | |
| std::pair< void *, Datatype_uptr > | subaccess_by_iterators (void *from, std::vector< std::unique_ptr< Accessor_base >>::const_iterator remaining_begin, std::vector< std::unique_ptr< Accessor_base >>::const_iterator remaining_end) const override | 
| Creates datatype of subtype and returns it with a moved pointer.  More... | |
| void | destroy_data (void *) const override | 
| Function used to delete the data behind 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... | |
|  Public Member Functions inherited from PDI::Datatype | |
| ~Datatype () override | |
| bool | operator!= (const Datatype &other) const | 
| Test for inequality.  More... | |
| std::pair< void *, Datatype_uptr > | subaccess (void *from, const Accessor_base &accessor) const | 
| Creates datatype of subtype and returns it with a moved pointer.  More... | |
| std::pair< void *, Datatype_uptr > | subaccess (void *from, const std::vector< std::unique_ptr< Accessor_base >> &accessors) const | 
| Creates datatype of subtype and returns it with a moved pointer.  More... | |
|  Public Member Functions inherited from PDI::Datatype_template | |
| virtual | ~Datatype_template () | 
| Destroys the template.  More... | |
| Additional Inherited Members | |
|  Static Public Member Functions inherited from PDI::Datatype_template | |
| static void | load_basic_datatypes (Context &ctx) | 
| Adds to the context the basic Array, Record, C and Fortran datatypes.  More... | |
an Array_datatype is a Datatype that represents an array: i.e storage of multiple elements of the same type continuously in memory.
| PDI::Array_datatype::Array_datatype | ( | Datatype_uptr | subtype, | 
| size_t | size, | ||
| size_t | start, | ||
| size_t | subsize | ||
| ) | 
Construct a new partially filled Array_datatype.
| [in] | subtype | the type of the elements contained in the array | 
| size | the number of elements the array can store | |
| start | the id of the first actual element of the array | |
| subsize | the number of actual elements in the array | 
| PDI::Array_datatype::Array_datatype | ( | Datatype_uptr | subtype, | 
| size_t | size | ||
| ) | 
Construct a new completely filled Array_datatype.
| subtype | the type of the elements contained in the array | 
| size | the number of elements the array can store | 
| const Datatype& PDI::Array_datatype::subtype | ( | ) | const | 
Type of the elements contained in the array.
| size_t PDI::Array_datatype::size | ( | ) | const | 
Number of elements the array can store.
| size_t PDI::Array_datatype::start | ( | ) | const | 
id of the first actual element of the array
| size_t PDI::Array_datatype::subsize | ( | ) | const | 
Number of actual elements in the array.
| 
 | overridevirtual | 
Creates a new datatype as an exact copy of this one.
Implements PDI::Datatype_template.
| 
 | overridevirtual | 
Creates a new datatype as an exact copy of this one.
Implements PDI::Datatype.
| 
 | overridevirtual | 
Creates a new datatype as the dense copy of this one.
Implements PDI::Datatype.
| 
 | overridevirtual | 
Creates a new datatype by resolving the value of all metadata references.
| ctx | the context in which to evaluate this template | 
Implements PDI::Datatype_template.
| 
 | overridevirtual | 
Indicate if the datatype is dense or not.
Implements PDI::Datatype.
| 
 | overridevirtual | 
Computes the data size of a type, excluding potentially unused memory from a sparse type.
Implements PDI::Datatype.
| 
 | overridevirtual | 
Computes the data size of a type, including potentially unused memory from a sparse type.
Implements PDI::Datatype.
| 
 | overridevirtual | 
| 
 | overridevirtual | 
Tells if data can be copied as bytes (if type is dense) and doesn't need a destroyer.
Implements PDI::Datatype.
| 
 | overridevirtual | 
Creates a dense deep copy of data.
| [in] | to | the pointer to the allocated memory to fill (dense data) | 
| [in] | from | the pointer to the copied data (size of buffersize) | 
Implements PDI::Datatype.
| 
 | overridevirtual | 
Creates a sparse deep copy of dense data.
| [in] | to | the pointer to the allocated memory to fill (size of buffersize) | 
| [in] | from | the pointer to the copied data (dense data) | 
Implements PDI::Datatype.
| 
 | overridevirtual | 
Creates datatype of subtype and returns it with a moved pointer.
| [in] | from | the pointer to the data | 
| [in] | remaining_begin | iterator to the begin of remaining accessors | 
| [in] | remaining_end | iterator to the end of remaining accessors | 
Reimplemented from PDI::Datatype.
| 
 | overridevirtual | 
Function used to delete the data behind the datatype.
This should not deallocate the memory.
| [in] | ptr | to the data to free | 
Implements PDI::Datatype.
| 
 | overridevirtual | 
Returns the datatype yaml representation as a string.
Implements PDI::Datatype.
| 
 | overridevirtual | 
Test for equality.
| other | the Datatype to compare | 
Implements PDI::Datatype.