15#include "ioss_export.h"
18#if defined USE_ROBIN_MAP
21#include <unordered_map>
25#if defined USE_ROBIN_MAP
28 using FieldMapType = std::unordered_map<std::string, Field>;
52 void erase(
const std::string &field_name);
72#if defined(IOSS_THREADSAFE)
73 mutable std::mutex m_;
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:55
void add(const Field &new_field)
Add a field to the field manager.
Definition Ioss_FieldManager.C:25
IOSS_NODISCARD const Field & getref(const std::string &field_name) const
Get a reference to a field from the field manager.
Definition Ioss_FieldManager.C:68
IOSS_NODISCARD bool exists(const std::string &field_name) const
Checks if a field with a given name exists in the field manager.
Definition Ioss_FieldManager.C:40
FieldManager(const FieldManager &other)
Definition Ioss_FieldManager.h:38
void erase(Field::RoleType role)
Remove all fields of type role from the field manager.
Definition Ioss_FieldManager.C:98
IOSS_NODISCARD size_t count() const
Get the number of fields in the field manager.
Definition Ioss_FieldManager.C:184
FieldManager & operator=(const FieldManager &)=delete
int describe(NameList *names) const
Get the names of all fields in the field manager.
Definition Ioss_FieldManager.C:130
FieldMapType fields
Definition Ioss_FieldManager.h:71
IOSS_NODISCARD Field get(const std::string &field_name) const
Get a field from the field manager.
Definition Ioss_FieldManager.C:53
Holds metadata for bulk data associated with a GroupingEntity.
Definition Ioss_Field.h:25
RoleType
Definition Ioss_Field.h:69
typename ht::value_type value_type
Definition robin_map.h:126
The main namespace for the Ioss library.
Definition Ioad_DatabaseIO.C:40
FieldMapType::value_type FieldValuePair
Definition Ioss_FieldManager.h:30
Ioss::NameList NameList
Definition Ioss_ChangeSetFactory.h:25
tsl::robin_pg_map< std::string, Field > FieldMapType
Definition Ioss_FieldManager.h:26
robin_map< Key, T, Hash, KeyEqual, Allocator, StoreHash, tsl::rh::prime_growth_policy > robin_pg_map
Definition robin_map.h:786