25 #ifndef PDI_POINTER_DATATYPE_H_ 26 #define PDI_POINTER_DATATYPE_H_ 31 #include <pdi/pdi_fwd.h> 32 #include <pdi/datatype.h> 44 std::function<void* (void*, const void*)> m_copy;
47 std::function<void(void*)> m_destroy;
54 std::string access_kind()
const override;
59 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_begin,
60 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_end)
const override;
62 std::unique_ptr<Accessor_base> clone()
const override;
95 bool dense()
const override;
97 size_t datasize()
const override;
99 size_t buffersize()
const override;
101 size_t alignment()
const override;
103 bool simple()
const override;
105 void* data_to_dense_copy(
void* to,
const void* from)
const override;
107 void* data_from_dense_copy(
void* to,
const void* from)
const override;
109 std::pair<void*, Datatype_uptr> subaccess_by_iterators(
void* from,
110 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_begin,
111 std::vector<std::unique_ptr<Accessor_base>>::const_iterator remaining_end)
const override;
113 void destroy_data(
void* ptr)
const override;
115 std::string debug_string()
const override;
117 bool operator== (
const Datatype&)
const override;
125 #endif // PDI_POINTER_DATATYPE_H_
A Datatype is a Datatype_template that accepts no argument.
Definition: datatype.h:46
Definition: pointer_datatype.h:37
std::unique_ptr< Datatype_template > Datatype_template_uptr
Definition: pdi_fwd.h:70
std::unique_ptr< Datatype > Datatype_uptr
Definition: pdi_fwd.h:74
Accessor for pointer datatype.
Definition: pointer_datatype.h:52
std::unordered_map< std::string, Expression > Attributes_map
Definition: datatype_template.h:40
Definition: array_datatype.h:37