18#include "ioss_export.h"
108 Field(std::string name, BasicType type,
const std::string &storage, RoleType role,
109 size_t value_count = 0,
size_t index = 0);
111 Field(std::string name, BasicType type,
const std::string &storage,
int copies, RoleType role,
112 size_t value_count = 0,
size_t index = 0);
114 Field(std::string name, BasicType type,
const std::string &storage,
115 const std::string &secondary, RoleType role,
size_t value_count = 0,
size_t index = 0);
117 Field(std::string name, BasicType type,
const VariableType *storage, RoleType role,
118 size_t value_count = 0,
size_t index = 0);
141 IOSS_NODISCARD std::string get_component_name(
int component_index, InOut in_out,
142 char suffix = 1)
const;
148 suffixSeparator2_ = suffix_separator2 == 2 ? suffix_separator1 : suffix_separator2;
162 const Field &set_zero_copy_enabled(
bool true_false =
true)
const;
201 void reset_count(
size_t new_count);
202 void reset_type(BasicType new_type);
207 size_t verify(
size_t data_size)
const;
211 void check_type(BasicType the_type)
const;
221 bool add_transform(
Transform *my_transform);
222 bool transform(
void *data);
246 bool equal_(
const Ioss::Field &rhs,
bool quiet)
const;
248 IOSS_EXPORT std::ostream &
operator<<(std::ostream &os,
const Field &fld);
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:56
std::complex< double > Complex
Definition Ioss_CodeTypes.h:82
Holds metadata for bulk data associated with a GroupingEntity.
Definition Ioss_Field.h:28
IOSS_NODISCARD bool equal(const Ioss::Field &rhs) const
Definition Ioss_Field.C:399
size_t index_
Definition Ioss_Field.h:232
Field & set_index(size_t index)
Definition Ioss_Field.h:195
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(Complex)
Definition Ioss_Field.h:61
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(uint64_t)
Definition Ioss_Field.h:57
IOSS_NODISCARD bool is_type(BasicType the_type) const
Definition Ioss_Field.h:213
IOSS_NODISCARD bool operator!=(const Ioss::Field &rhs) const
Definition Ioss_Field.C:397
IOSS_NODISCARD const VariableType * raw_storage() const
Definition Ioss_Field.h:171
RoleType role_
Definition Ioss_Field.h:235
IOSS_NODISCARD BasicType get_type() const
Get the basic data type of the data held in the field.
Definition Ioss_Field.h:169
IOSS_NODISCARD bool has_transform() const
Definition Ioss_Field.h:223
IOSS_NODISCARD bool is_valid() const
Definition Ioss_Field.h:127
std::vector< std::shared_ptr< Transform > > transforms_
Definition Ioss_Field.h:240
IOSS_NODISCARD std::string & get_name()
Definition Ioss_Field.h:131
IOSS_NODISCARD bool operator<(const Field &other) const
const VariableType * rawStorage_
Definition Ioss_Field.h:237
BasicType
The basic data type held in the field.
Definition Ioss_Field.h:32
@ INT64
Definition Ioss_Field.h:38
@ COMPLEX
Definition Ioss_Field.h:39
@ REAL
Definition Ioss_Field.h:34
@ INVALID
Definition Ioss_Field.h:33
@ DOUBLE
Definition Ioss_Field.h:35
@ STRING
Definition Ioss_Field.h:40
@ INTEGER
Definition Ioss_Field.h:36
@ CHARACTER
Definition Ioss_Field.h:41
@ INT32
Definition Ioss_Field.h:37
IOSS_NODISCARD size_t raw_count() const
Definition Ioss_Field.h:174
RoleType
Definition Ioss_Field.h:72
@ INFORMATION
Definition Ioss_Field.h:89
@ REDUCTION
Definition Ioss_Field.h:90
@ MESH
Definition Ioss_Field.h:74
@ TRANSIENT
Definition Ioss_Field.h:96
@ COMMUNICATION
Definition Ioss_Field.h:83
@ MESH_REDUCTION
Definition Ioss_Field.h:84
@ MAP
Definition Ioss_Field.h:82
@ INTERNAL
Definition Ioss_Field.h:73
@ ATTRIBUTE
Definition Ioss_Field.h:78
IOSS_NODISCARD bool zero_copy_enabled() const
Definition Ioss_Field.h:163
IOSS_NODISCARD const VariableType * transformed_storage() const
Definition Ioss_Field.h:172
IOSS_NODISCARD bool get_suffices_uppercase() const
Definition Ioss_Field.h:160
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(double)
Definition Ioss_Field.h:50
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(unsigned int)
Definition Ioss_Field.h:52
Field()
Create an empty field.
Definition Ioss_Field.C:70
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(const std::string &)
Definition Ioss_Field.h:65
size_t rawCount_
Definition Ioss_Field.h:228
size_t size_
Definition Ioss_Field.h:230
BasicType type_
Definition Ioss_Field.h:234
IOSS_NODISCARD bool operator==(const Ioss::Field &rhs) const
Definition Ioss_Field.C:395
Field & set_suffix_separator(char suffix_separator1, char suffix_separator2=2)
Definition Ioss_Field.h:145
char suffixSeparator1_
Definition Ioss_Field.h:241
bool zeroCopyable_
Definition Ioss_Field.h:244
IOSS_NODISCARD const std::string & get_name() const
Definition Ioss_Field.h:130
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(int64_t)
Definition Ioss_Field.h:56
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(int)
Definition Ioss_Field.h:51
bool sufficesUppercase_
Definition Ioss_Field.h:243
IOSS_NODISCARD bool is_invalid() const
Definition Ioss_Field.h:128
const VariableType * transStorage_
Definition Ioss_Field.h:238
IOSS_NODISCARD char get_suffix_separator(int index=0) const
Definition Ioss_Field.h:151
std::string name_
Definition Ioss_Field.h:226
IOSS_NODISCARD size_t get_index() const
Definition Ioss_Field.h:189
Field & set_suffices_uppercase(bool true_false)
Definition Ioss_Field.h:155
char suffixSeparator2_
Definition Ioss_Field.h:242
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(char)
Definition Ioss_Field.h:46
IOSS_NODISCARD RoleType get_role() const
Get the role (MESH, ATTRIBUTE, TRANSIENT, REDUCTION, etc.) of the data in the field.
Definition Ioss_Field.h:187
const Field & set_index(size_t index) const
Definition Ioss_Field.h:190
InOut
Definition Ioss_Field.h:44
@ OUTPUT
Definition Ioss_Field.h:44
@ INPUT
Definition Ioss_Field.h:44
IOSS_NODISCARD size_t transformed_count() const
Definition Ioss_Field.h:175
size_t transCount_
Definition Ioss_Field.h:229
Base class for all 'grouping' entities. The following derived classes are typical:
Definition Ioss_GroupingEntity.h:67
A generic variable type.
Definition Ioss_VariableType.h:70
The main namespace for the Ioss library.
Definition Ioad_DatabaseIO.C:40
std::ostream & operator<<(std::ostream &os, const Field &fld)
Definition Ioss_Field.C:41