openPMD-api
|
Layer to mirror structure of logical data and persistent data in file. More...
#include <Writable.hpp>
Public Member Functions | |
Writable (Writable const &other)=delete | |
Writable (Writable &&other)=delete | |
Writable & | operator= (Writable const &other)=delete |
Writable & | operator= (Writable &&other)=delete |
void | seriesFlush (std::string backendConfig="{}") |
Flush the corresponding Series object. More... | |
private void | seriesFlush (internal::FlushParams const &) |
Public Attributes | |
std::shared_ptr< AbstractFilePosition > | abstractFilePosition = nullptr |
std::shared_ptr< std::optional< std::unique_ptr< AbstractIOHandler > > > | IOHandler = nullptr |
internal::AttributableData * | attributable = nullptr |
Writable * | parent = nullptr |
bool | dirtySelf = true |
Tracks if there are unwritten changes for this specific Writable. More... | |
bool | dirtyRecursive = true |
Tracks if there are unwritten changes anywhere in the tree whose ancestor this Writable is. More... | |
std::string | ownKeyWithinParent |
If parent is not null, then this is a key such that: &(*parent)[key] == this. | |
bool | written = false |
Whether a Writable has been written to the backend. More... | |
Friends | |
class | internal::AttributableData |
class | internal::SeriesData |
class | Attributable |
template<typename T_elem > | |
class | BaseRecord |
template<typename T_elem > | |
class | BaseRecordInterface |
template<typename T , typename T_key , typename T_container > | |
class | Container |
class | Iteration |
class | Mesh |
class | ParticleSpecies |
class | Series |
class | Record |
class | AbstractIOHandlerImpl |
class | ADIOS2IOHandlerImpl |
class | detail::ADIOS2File |
class | HDF5IOHandlerImpl |
class | ParallelHDF5IOHandlerImpl |
template<typename > | |
class | AbstractIOHandlerImplCommon |
class | JSONIOHandlerImpl |
struct | test::TestHelper |
template<typename > | |
class | Span |
std::string | concrete_h5_file_position (Writable *) |
std::string | concrete_bp1_file_position (Writable *) |
void | debug::printDirty (Series const &) |
Layer to mirror structure of logical data and persistent data in file.
Hierarchy of objects (datasets, groups, attributes, ...) in openPMD is managed in this class. It also indicates the current synchronization state between logical and persistent data: - whether the object has been created in persistent form
void openPMD::Writable::seriesFlush | ( | std::string | backendConfig = "{}" | ) |
bool openPMD::Writable::dirtyRecursive = true |
Tracks if there are unwritten changes anywhere in the tree whose ancestor this Writable is.
Invariant: this->dirtyRecursive implies parent->dirtyRecursive.
dirtySelf and dirtyRecursive are separated since that allows specifying that this
is not dirty, but some child is.
Manipulate via Attributable::dirtyRecursive() and Attributable::setDirtyRecursive().
bool openPMD::Writable::dirtySelf = true |
Tracks if there are unwritten changes for this specific Writable.
Manipulate via Attributable::dirty() and Attributable::setDirty().
bool openPMD::Writable::written = false |
Whether a Writable has been written to the backend.
The class Writable is used to link objects in our (frontend) object model of the openPMD group hierarchy to the backends. The openPMD hierarchy needs to be built by each backend independently from the frontend. This involves the following tasks:
If those tasks have been performed, the flag written is set as true. The interpretation of that is that the backend has been made aware of the Writable and its meaning within the current dataset.