23 #include "openPMD/IO/AbstractIOHandler.hpp" 24 #include "openPMD/IO/Access.hpp" 25 #include "openPMD/IO/Format.hpp" 26 #include "openPMD/Iteration.hpp" 27 #include "openPMD/IterationEncoding.hpp" 28 #include "openPMD/Streaming.hpp" 29 #include "openPMD/WriteIterations.hpp" 30 #include "openPMD/auxiliary/Option.hpp" 31 #include "openPMD/auxiliary/Variant.hpp" 32 #include "openPMD/backend/Attributable.hpp" 33 #include "openPMD/backend/Container.hpp" 34 #include "openPMD/config.hpp" 35 #include "openPMD/version.hpp" 45 #ifndef OPENPMD_private 46 #define OPENPMD_private private 53 class SeriesInterface;
81 std::string m_filenamePrefix;
82 std::string m_filenamePostfix;
83 int m_filenamePadding;
94 bool m_parseLazily =
false;
95 bool m_lastFlushSuccessful =
true;
146 uint32_t openPMDextension()
const;
161 std::string basePath()
const;
176 std::string meshesPath()
const;
193 std::string particlesPath()
const;
210 std::string author()
const;
224 std::string software()
const;
234 std::string
const &newName,
235 std::string
const &newVersion = std::string(
"unspecified"));
242 std::string softwareVersion()
const;
253 "Set the version with the second argument of " 255 setSoftwareVersion(std::string
const &softwareVersion);
261 std::string date()
const;
274 std::string softwareDependencies()
const;
283 setSoftwareDependencies(std::string
const &newSoftwareDependencies);
290 std::string machine()
const;
327 std::string iterationFormat()
const;
339 SeriesInterface &setIterationFormat(std::string
const &iterationFormat);
344 std::string name()
const;
360 std::string backend()
const;
367 static constexpr
char const *
const BASEPATH =
"/data/%T/";
370 using iterations_t = decltype(internal::SeriesData::iterations);
371 using iterations_iterator = iterations_t::iterator;
383 throw std::runtime_error(
384 "[Series] Cannot use default-constructed Series.");
396 throw std::runtime_error(
397 "[Series] Cannot use default-constructed Series.");
401 std::unique_ptr<ParsedInput> parseInput(std::string);
402 void init(std::shared_ptr<AbstractIOHandler>, std::unique_ptr<ParsedInput>);
415 std::future<void> flush_impl(
416 iterations_iterator begin,
417 iterations_iterator end,
419 bool flushIOHandler =
true);
421 iterations_iterator begin,
422 iterations_iterator end,
432 iterations_iterator begin,
433 iterations_iterator end,
435 void flushMeshesPath();
436 void flushParticlesPath();
437 void readFileBased();
438 void readOneIterationFileBased(std::string
const &filePath);
444 void readGorVBased(
bool init =
true);
446 std::string iterationFilename(uint64_t i);
448 enum class IterationOpened : bool
459 IterationOpened openIterationIfDirty(uint64_t index,
Iteration iteration);
466 void openIteration(uint64_t index,
Iteration iteration);
472 iterations_iterator indexOf(
Iteration const &);
492 iterations_iterator it,
502 friend struct SeriesShared;
510 std::string
const &filepath,
513 std::string
const &options =
"{}");
517 std::string
const &filepath,
519 std::string
const &options =
"{}");
540 std::shared_ptr<internal::SeriesInternal> m_series;
543 Series(std::shared_ptr<internal::SeriesInternal>);
550 std::string
const &filepath,
553 std::string
const &options =
"{}");
566 std::string
const &filepath,
568 std::string
const &options =
"{}");
570 virtual ~
Series() =
default;
580 operator bool()
const;
612 #include "openPMD/ReadIterations.hpp" Access
File access mode to use during IO.
Definition: Access.hpp:27
Definition: Series.hpp:498
Format
File format to use during IO.
Definition: Format.hpp:29
Logical compilation of data from one snapshot (e.g.
Definition: Iteration.hpp:40
StepStatus m_stepStatus
Whether a step is currently active for this iteration.
Definition: Series.hpp:93
StepStatus
Used in step-based mode (i.e.
Definition: Streaming.hpp:44
AdvanceStatus
In step-based mode (i.e.
Definition: Streaming.hpp:20
AdvanceMode
In step-based mode (i.e.
Definition: Streaming.hpp:33
Writing side of the streaming API.
Definition: WriteIterations.hpp:46
Reading side of the streaming API.
Definition: ReadIterations.hpp:90
Root level of the openPMD hierarchy.
Definition: Series.hpp:537
Simple Option type based on variantSrc::variant.
Definition: Option.hpp:45
Public definitions of openPMD-api.
Definition: Date.cpp:28
Layer to mirror structure of logical data and persistent data in file.
Definition: Writable.hpp:63
Layer to manage storage of attributes associated with file objects.
Definition: Attributable.hpp:128
Data members for Series.
Definition: Series.hpp:63
Definition: Attributable.hpp:68
Definition: ReadIterations.hpp:48
Parameters recursively passed through the openPMD hierarchy when flushing.
Definition: AbstractIOHandler.hpp:103
Implementation for the root level of the openPMD hierarchy.
Definition: Series.hpp:110
IterationEncoding
Encoding scheme of an Iterations Series'.
Definition: IterationEncoding.hpp:32