20 #ifndef DATA_CONVERTER_H 21 #define DATA_CONVERTER_H 23 #ifndef SHEAF_DLL_SPEC_H 24 #include "SheafSystem/sheaf_dll_spec.h" 28 #include "SheafSystem/any.h" 31 #ifndef PRIMITIVE_TYPE_H 32 #include "SheafSystem/primitive_type.h" 36 #include "SheafSystem/std_hdf5.h" 40 #include "SheafSystem/std_string.h" 72 virtual bool invariant()
const;
77 virtual bool is_ancestor_of(
const any* other)
const;
101 return _conversion_required;
111 return _external_type;
121 return _external_size;
130 void externalize(
const void* xint_buf,
140 void externalize(
void* xext_buf,
148 void externalize(
const void* xint_buf,
158 return _internal_type;
168 return _internal_index;
178 return _internal_size;
188 return _internal_alignment;
195 void internalize(
const void* xext_buf,
206 void internalize(
void* xbuf,
size_t xbuf_ub,
int xitem_ct);
212 void internalize(
void* xbuf,
size_t xbuf_ub);
221 return _internal_size > _external_size;
231 return _external_size > _internal_size;
241 return _internal_size > _external_size ? _internal_size : _external_size;
271 return _internal_index == NAMESPACE_RELATIVE_MEMBER_INDEX;
281 return _internal_index == NAMESPACE_RELATIVE_SUBPOSET_INDEX;
291 return _internal_index == C_STRING;
297 static size_t string_length(
const char* xbuf);
303 size_t string_length_total(
const void* xbuf,
int xitem_ct)
const;
323 hid_t _external_type;
328 size_t _external_size;
333 hid_t _internal_type;
338 size_t _internal_size;
349 size_t _internal_alignment;
366 hid_t _transfer_plist;
371 bool _conversion_required;
377 #endif // ifndef DATA_CONVERTER_H bool external_size_greater() const
True if the external size is greater than the internal size.
hid_t external_type() const
The external type identifier.
size_t internal_size() const
The size in bytes of the internal type.
bool is_string_type() const
True if this is a converter for a string type.
bool conversion_required() const
True if internal and external types are not identical.
size_t internal_alignment() const
The alignment of the internal type.
bool is_namespace_relative_member_index_type() const
True if this is a converter for a naemspace_relative_member_index type.
Abstract base class with useful features for all objects.
hid_t internal_index() const
The primitives poset member index for the internal type.
size_t result_size() const
The allocated size of the result buffer.
size_t external_size() const
The size in bytes of the external type.
bool is_namespace_relative_subposet_index_type() const
True if this is a converter for a namespace_relative_subposet_index type.
bool internal_size_greater() const
True if the internal size is greater than the external size.
Function object to convert between internal and external data formats.
Namespace for the sheaves component of the sheaf system.
size_t max_size() const
The maximum of internal_size() and external_size().
hid_t internal_type() const
The HDF type identifier for the internal type.
void * result() const
The result of the conversion.