18#include "ioss_export.h"
118 Field(std::string name, BasicType type,
const std::string &storage, RoleType role,
119 size_t value_count = 0,
size_t index = 0);
134 Field(std::string name, BasicType type,
const std::string &storage,
int copies, RoleType role,
135 size_t value_count = 0,
size_t index = 0);
149 Field(std::string name, BasicType type,
const std::string &storage,
150 const std::string &secondary, RoleType role,
size_t value_count = 0,
size_t index = 0);
164 Field(std::string name, BasicType type,
const VariableType *storage, RoleType role,
165 size_t value_count = 0,
size_t index = 0);
188 IOSS_NODISCARD std::string get_component_name(
int component_index, InOut in_out,
189 char suffix = 1)
const;
195 suffixSeparator2_ = suffix_separator2 == 2 ? suffix_separator1 : suffix_separator2;
209 const Field &set_zero_copy_enabled(
bool true_false =
true)
const;
248 void reset_count(
size_t new_count);
249 void reset_type(BasicType new_type);
255 size_t verify(
size_t data_size)
const;
259 void check_type(BasicType the_type)
const;
269 bool add_transform(
Transform *my_transform);
270 bool transform(
void *data);
294 bool equal_(
const Ioss::Field &rhs,
bool quiet)
const;
296 IOSS_EXPORT std::ostream &
operator<<(std::ostream &os,
const Field &fld);
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:57
std::complex< double > Complex
Definition Ioss_CodeTypes.h:83
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:339
size_t index_
Optional flag that can be used by a client to indicate an ordering.
Definition Ioss_Field.h:280
Field & set_index(size_t index)
Definition Ioss_Field.h:242
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:261
IOSS_NODISCARD bool operator!=(const Ioss::Field &rhs) const
Definition Ioss_Field.C:337
IOSS_NODISCARD const VariableType * raw_storage() const
Definition Ioss_Field.h:218
RoleType role_
The role of the field.
Definition Ioss_Field.h:283
IOSS_NODISCARD BasicType get_type() const
Get the basic data type of the data held in the field.
Definition Ioss_Field.h:216
IOSS_NODISCARD bool has_transform() const
Definition Ioss_Field.h:271
IOSS_NODISCARD bool is_valid() const
Definition Ioss_Field.h:174
std::vector< std::shared_ptr< Transform > > transforms_
Definition Ioss_Field.h:288
IOSS_NODISCARD std::string & get_name()
Definition Ioss_Field.h:178
IOSS_NODISCARD bool operator<(const Field &other) const
const VariableType * rawStorage_
Storage type of raw field.
Definition Ioss_Field.h:285
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
Number of items in field.
Definition Ioss_Field.h:221
RoleType
Definition Ioss_Field.h:72
@ INFORMATION
Same as MESH_REDUCTION
Definition Ioss_Field.h:89
@ REDUCTION
Definition Ioss_Field.h:90
@ MESH
Definition Ioss_Field.h:74
@ TRANSIENT
Definition Ioss_Field.h:96
@ COMMUNICATION
Related to parallel communication.
Definition Ioss_Field.h:83
@ MESH_REDUCTION
Definition Ioss_Field.h:84
@ MAP
A list of integers specifying some ordering or mapping of the entties.
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:210
IOSS_NODISCARD const VariableType * transformed_storage() const
Definition Ioss_Field.h:219
IOSS_NODISCARD bool get_suffices_uppercase() const
Definition Ioss_Field.h:207
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:65
static IOSS_NODISCARD Ioss::Field::BasicType get_field_type(const std::string &)
Definition Ioss_Field.h:65
size_t rawCount_
Count of items in field before transformation.
Definition Ioss_Field.h:276
size_t size_
maximum data size (in bytes) required to hold entire field
Definition Ioss_Field.h:278
BasicType type_
The basic type of the field (Integer, Real, String)
Definition Ioss_Field.h:282
IOSS_NODISCARD bool operator==(const Ioss::Field &rhs) const
Definition Ioss_Field.C:335
Field & set_suffix_separator(char suffix_separator1, char suffix_separator2=2)
Definition Ioss_Field.h:192
char suffixSeparator1_
Value = 1 means unset; use database default.
Definition Ioss_Field.h:289
bool zeroCopyable_
True if the field is zero-copyable.
Definition Ioss_Field.h:292
IOSS_NODISCARD const std::string & get_name() const
Definition Ioss_Field.h:177
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_
True if the suffices are uppercase on database...
Definition Ioss_Field.h:291
IOSS_NODISCARD bool is_invalid() const
Definition Ioss_Field.h:175
const VariableType * transStorage_
Storage type after transformation.
Definition Ioss_Field.h:286
IOSS_NODISCARD char get_suffix_separator(int index=0) const
Definition Ioss_Field.h:198
std::string name_
Definition Ioss_Field.h:274
IOSS_NODISCARD size_t get_index() const
Definition Ioss_Field.h:236
Field & set_suffices_uppercase(bool true_false)
Definition Ioss_Field.h:202
char suffixSeparator2_
Value = 1 means unset; use database default.
Definition Ioss_Field.h:290
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:234
const Field & set_index(size_t index) const
Definition Ioss_Field.h:237
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
Number of items in field after transforms have been applied.
Definition Ioss_Field.h:222
size_t transCount_
Count of items in field after transformed.
Definition Ioss_Field.h:277
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:38