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;
149 const std::vector<Member>& members()
const;
160 bool dense()
const override;
162 size_t datasize()
const override;
164 size_t buffersize()
const override;
166 size_t alignment()
const override;
168 bool simple()
const override;
170 void* data_to_dense_copy(
void* to,
const void*)
const override;
172 void* data_from_dense_copy(
void* to,
const void*)
const override;
174 std::pair<void*, Datatype_uptr> subaccess_by_iterators(
void* from,
175 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_begin,
176 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_end)
const override;
178 void destroy_data(
void*)
const override;
180 std::string debug_string()
const override;
182 bool operator== (
const Datatype&)
const override;
188 #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:74
std::unique_ptr< Datatype > Datatype_uptr
Definition: pdi_fwd.h:78
A Record_datatype is a Datatype that represents a fixed number of elements of potentially different t...
Definition: record_datatype.h:42
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