From 32a177d0542126350bd70f625a7920c6de2ffd35 Mon Sep 17 00:00:00 2001 From: Lorenzo Milazzo <82884956+mo-lormi@users.noreply.github.com> Date: Fri, 21 Apr 2023 19:31:45 +0100 Subject: [PATCH] add procedure to include metadata in FieldSet (#126) * added procedure to include metadata in FieldSet --- src/atlas/field/FieldSet.cc | 8 ++++++++ src/atlas/field/FieldSet.h | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/atlas/field/FieldSet.cc b/src/atlas/field/FieldSet.cc index 49a6ba3be..bf8eda526 100644 --- a/src/atlas/field/FieldSet.cc +++ b/src/atlas/field/FieldSet.cc @@ -152,6 +152,14 @@ FieldSet::FieldSet(const Field& field): Handle(new Implementation()) { get()->add(field); } +const util::Metadata& FieldSet::metadata() const { + return get()->metadata(); +} + +util::Metadata& FieldSet::metadata() { + return get()->metadata(); +} + void FieldSet::set_dirty(bool value) const { get()->set_dirty(value); } diff --git a/src/atlas/field/FieldSet.h b/src/atlas/field/FieldSet.h index 990dbf823..6e5a382af 100644 --- a/src/atlas/field/FieldSet.h +++ b/src/atlas/field/FieldSet.h @@ -27,6 +27,7 @@ #include "atlas/field/Field.h" #include "atlas/library/config.h" #include "atlas/runtime/Exception.h" +#include "atlas/util/Metadata.h" #include "atlas/util/Object.h" #include "atlas/util/ObjectHandle.h" @@ -112,6 +113,9 @@ class FieldSetImpl : public util::Object { const_iterator cbegin() const { return fields_.begin(); } const_iterator cend() const { return fields_.end(); } + const util::Metadata& metadata() const { return metadata_; } + util::Metadata& metadata() { return metadata_; } + void haloExchange(bool on_device = false) const; void adjointHaloExchange(bool on_device = false) const; void set_dirty(bool = true) const; @@ -119,6 +123,7 @@ class FieldSetImpl : public util::Object { protected: // data std::vector fields_; ///< field storage std::string name_; ///< internal name + util::Metadata metadata_; ///< metadata associated with the FieldSet std::map index_; ///< name-to-index map, to refer fields by name }; @@ -209,6 +214,9 @@ class FieldSet : DOXYGEN_HIDE(public util::ObjectHandle) { const_iterator cbegin() const { return get()->begin(); } const_iterator cend() const { return get()->end(); } + const util::Metadata& metadata() const; + util::Metadata& metadata(); + void haloExchange(bool on_device = false) const { get()->haloExchange(on_device); } void adjointHaloExchange(bool on_device = false) const { get()->adjointHaloExchange(on_device); }