26 #ifndef PDI_RECORD_DATATYPE_H_ 27 #define PDI_RECORD_DATATYPE_H_ 32 #include <pdi/pdi_fwd.h> 33 #include <pdi/datatype.h> 51 std::string m_member_name;
53 std::string access_kind()
const override;
61 std::pair<void*, Datatype_uptr> access(
const Record_datatype& record_type,
63 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_begin,
64 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_end)
const override;
66 std::unique_ptr<Accessor_base> clone()
const override;
74 size_t m_displacement;
101 size_t displacement()
const;
113 const std::string& name()
const;
120 bool operator==(
const Member& rhs)
const;
127 bool operator!=(
const Member& rhs)
const;
133 std::vector<Member> m_members;
150 const std::vector<Member>& members()
const;
161 bool dense()
const override;
163 size_t datasize()
const override;
165 size_t buffersize()
const override;
167 size_t alignment()
const override;
169 bool simple()
const override;
171 void* data_to_dense_copy(
void* to,
const void*)
const override;
173 void* data_from_dense_copy(
void* to,
const void*)
const override;
175 std::pair<void*, Datatype_uptr> subaccess_by_iterators(
void* from,
176 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_begin,
177 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_end)
const override;
179 void destroy_data(
void*)
const override;
181 std::string debug_string()
const override;
183 bool operator== (
const Datatype&)
const override;
189 #endif // PDI_RECORD_DATATYPE_H_
A Datatype is a Datatype_template that accepts no argument.
Definition: datatype.h:46
std::unique_ptr< Datatype_template > Datatype_template_uptr
Definition: pdi_fwd.h:70
std::unique_ptr< Datatype > Datatype_uptr
Definition: pdi_fwd.h:74
A Record_datatype is a Datatype that represents a fixed number of elements of potentially different t...
Definition: record_datatype.h:42
std::unordered_map< std::string, Expression > Attributes_map
Definition: datatype_template.h:40
Definition: array_datatype.h:37
A Member is one of the elements inside a Record_datatype.
Definition: record_datatype.h:71
Member accessor for record datatype.
Definition: record_datatype.h:48