15#include "ioss_export.h"
105 Field(std::string name, BasicType type,
const std::string &storage, RoleType role,
106 size_t value_count = 0,
size_t index = 0);
108 Field(std::string name, BasicType type,
const std::string &storage,
int copies, RoleType role,
109 size_t value_count = 0,
size_t index = 0);
111 Field(std::string name, BasicType type,
const std::string &storage,
112 const std::string &secondary, RoleType role,
size_t value_count = 0,
size_t index = 0);
114 Field(std::string name, BasicType type,
const VariableType *storage, RoleType role,
115 size_t value_count = 0,
size_t index = 0);
138 IOSS_NODISCARD std::string get_component_name(
int component_index, InOut in_out,
139 char suffix = 1)
const;
145 suffixSeparator2_ = suffix_separator2 == 2 ? suffix_separator1 : suffix_separator2;
159 const Field &set_zero_copy_enabled(
bool true_false =
true)
const;
198 void reset_count(
size_t new_count);
199 void reset_type(BasicType new_type);
204 size_t verify(
size_t data_size)
const;
208 void check_type(BasicType the_type)
const;
218 bool add_transform(
Transform *my_transform);
219 bool transform(
void *data);
243 bool equal_(
const Ioss::Field &rhs,
bool quiet)
const;
245 IOSS_EXPORT std::ostream &
operator<<(std::ostream &os,
const Field &fld);
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:55
std::complex< double > Complex
Definition Ioss_CodeTypes.h:91
Holds metadata for bulk data associated with a GroupingEntity.
Definition Ioss_Field.h:25
std::vector< Transform * > transforms_
Definition Ioss_Field.h:237
IOSS_NODISCARD bool equal(const Ioss::Field &rhs) const
Definition Ioss_Field.C:396
size_t index_
Definition Ioss_Field.h:229
Field & set_index(size_t index)
Definition Ioss_Field.h:192
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(Complex)
Definition Ioss_Field.h:58
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(uint64_t)
Definition Ioss_Field.h:54
IOSS_NODISCARD bool is_type(BasicType the_type) const
Definition Ioss_Field.h:210
IOSS_NODISCARD bool operator!=(const Ioss::Field &rhs) const
Definition Ioss_Field.C:394
IOSS_NODISCARD const VariableType * raw_storage() const
Definition Ioss_Field.h:168
RoleType role_
Definition Ioss_Field.h:232
IOSS_NODISCARD BasicType get_type() const
Get the basic data type of the data held in the field.
Definition Ioss_Field.h:166
IOSS_NODISCARD bool has_transform() const
Definition Ioss_Field.h:220
IOSS_NODISCARD bool is_valid() const
Definition Ioss_Field.h:124
IOSS_NODISCARD std::string & get_name()
Definition Ioss_Field.h:128
IOSS_NODISCARD bool operator<(const Field &other) const
const VariableType * rawStorage_
Definition Ioss_Field.h:234
BasicType
The basic data type held in the field.
Definition Ioss_Field.h:29
@ INT64
Definition Ioss_Field.h:35
@ COMPLEX
Definition Ioss_Field.h:36
@ REAL
Definition Ioss_Field.h:31
@ INVALID
Definition Ioss_Field.h:30
@ DOUBLE
Definition Ioss_Field.h:32
@ STRING
Definition Ioss_Field.h:37
@ INTEGER
Definition Ioss_Field.h:33
@ CHARACTER
Definition Ioss_Field.h:38
@ INT32
Definition Ioss_Field.h:34
IOSS_NODISCARD size_t raw_count() const
Definition Ioss_Field.h:171
RoleType
Definition Ioss_Field.h:69
@ INFORMATION
Definition Ioss_Field.h:86
@ REDUCTION
Definition Ioss_Field.h:87
@ MESH
Definition Ioss_Field.h:71
@ TRANSIENT
Definition Ioss_Field.h:93
@ COMMUNICATION
Definition Ioss_Field.h:80
@ MESH_REDUCTION
Definition Ioss_Field.h:81
@ MAP
Definition Ioss_Field.h:79
@ INTERNAL
Definition Ioss_Field.h:70
@ ATTRIBUTE
Definition Ioss_Field.h:75
IOSS_NODISCARD bool zero_copy_enabled() const
Definition Ioss_Field.h:160
IOSS_NODISCARD const VariableType * transformed_storage() const
Definition Ioss_Field.h:169
IOSS_NODISCARD bool get_suffices_uppercase() const
Definition Ioss_Field.h:157
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(double)
Definition Ioss_Field.h:47
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(unsigned int)
Definition Ioss_Field.h:49
Field()
Create an empty field.
Definition Ioss_Field.C:67
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(const std::string &)
Definition Ioss_Field.h:62
size_t rawCount_
Definition Ioss_Field.h:225
size_t size_
Definition Ioss_Field.h:227
BasicType type_
Definition Ioss_Field.h:231
IOSS_NODISCARD bool operator==(const Ioss::Field &rhs) const
Definition Ioss_Field.C:392
Field & set_suffix_separator(char suffix_separator1, char suffix_separator2=2)
Definition Ioss_Field.h:142
char suffixSeparator1_
Definition Ioss_Field.h:238
bool zeroCopyable_
Definition Ioss_Field.h:241
IOSS_NODISCARD const std::string & get_name() const
Definition Ioss_Field.h:127
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(int64_t)
Definition Ioss_Field.h:53
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(int)
Definition Ioss_Field.h:48
bool sufficesUppercase_
Definition Ioss_Field.h:240
IOSS_NODISCARD bool is_invalid() const
Definition Ioss_Field.h:125
const VariableType * transStorage_
Definition Ioss_Field.h:235
IOSS_NODISCARD char get_suffix_separator(int index=0) const
Definition Ioss_Field.h:148
std::string name_
Definition Ioss_Field.h:223
IOSS_NODISCARD size_t get_index() const
Definition Ioss_Field.h:186
Field & set_suffices_uppercase(bool true_false)
Definition Ioss_Field.h:152
char suffixSeparator2_
Definition Ioss_Field.h:239
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(char)
Definition Ioss_Field.h:43
IOSS_NODISCARD RoleType get_role() const
Get the role (MESH, ATTRIBUTE, TRANSIENT, REDUCTION, etc.) of the data in the field.
Definition Ioss_Field.h:184
const Field & set_index(size_t index) const
Definition Ioss_Field.h:187
InOut
Definition Ioss_Field.h:41
@ OUTPUT
Definition Ioss_Field.h:41
@ INPUT
Definition Ioss_Field.h:41
IOSS_NODISCARD size_t transformed_count() const
Definition Ioss_Field.h:172
size_t transCount_
Definition Ioss_Field.h:226
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