23 #include "openPMD/config.hpp" 24 #include "openPMD/backend/Attributable.hpp" 25 #include "openPMD/backend/Container.hpp" 26 #include "openPMD/IO/AbstractIOHandler.hpp" 27 #include "openPMD/IO/Access.hpp" 28 #include "openPMD/IO/Format.hpp" 29 #include "openPMD/Iteration.hpp" 30 #include "openPMD/IterationEncoding.hpp" 31 #include "openPMD/Streaming.hpp" 32 #include "openPMD/WriteIterations.hpp" 33 #include "openPMD/auxiliary/Option.hpp" 34 #include "openPMD/auxiliary/Variant.hpp" 35 #include "openPMD/backend/Attributable.hpp" 36 #include "openPMD/backend/Container.hpp" 37 #include "openPMD/config.hpp" 38 #include "openPMD/version.hpp" 48 #ifndef OPENPMD_private 49 # define OPENPMD_private private 57 class SeriesInterface;
85 std::string m_filenamePrefix;
86 std::string m_filenamePostfix;
87 int m_filenamePadding;
98 bool m_parseLazily =
false;
99 bool m_lastFlushSuccessful =
true;
141 uint32_t openPMDextension()
const;
152 std::string basePath()
const;
164 std::string meshesPath()
const;
176 std::string particlesPath()
const;
188 std::string author()
const;
200 std::string software()
const;
207 SeriesInterface& setSoftware(std::string
const& newName, std::string
const& newVersion = std::string(
"unspecified"));
213 std::string softwareVersion()
const;
221 [[deprecated(
"Set the version with the second argument of setSoftware()")]]
222 SeriesInterface& setSoftwareVersion(std::string
const& softwareVersion);
228 std::string date()
const;
240 std::string softwareDependencies()
const;
246 SeriesInterface& setSoftwareDependencies(std::string
const& newSoftwareDependencies);
252 std::string machine()
const;
277 std::string iterationFormat()
const;
288 SeriesInterface& setIterationFormat(std::string
const& iterationFormat);
293 std::string name()
const;
308 std::string backend()
const;
315 static constexpr
char const *
const BASEPATH =
"/data/%T/";
318 using iterations_t = decltype(internal::SeriesData::iterations);
319 using iterations_iterator = iterations_t::iterator;
331 throw std::runtime_error(
332 "[Series] Cannot use default-constructed Series." );
344 throw std::runtime_error(
345 "[Series] Cannot use default-constructed Series." );
348 std::unique_ptr< ParsedInput > parseInput(std::string);
349 void init(std::shared_ptr< AbstractIOHandler >, std::unique_ptr< ParsedInput >);
362 std::future< void > flush_impl(
363 iterations_iterator begin,
364 iterations_iterator end,
366 bool flushIOHandler =
true );
367 void flushFileBased( iterations_iterator begin, iterations_iterator end );
375 void flushGorVBased( iterations_iterator begin, iterations_iterator end );
376 void flushMeshesPath();
377 void flushParticlesPath();
378 void readFileBased( );
379 void readOneIterationFileBased( std::string
const & filePath );
385 void readGorVBased(
bool init =
true );
387 std::string iterationFilename( uint64_t i );
389 enum class IterationOpened : bool
400 IterationOpened openIterationIfDirty( uint64_t index,
Iteration iteration );
407 void openIteration( uint64_t index,
Iteration iteration );
435 iterations_iterator it,
443 friend struct SeriesShared;
451 std::string
const & filepath,
454 std::string
const & options =
"{}" );
458 std::string
const & filepath,
460 std::string
const & options =
"{}" );
479 std::shared_ptr< internal::SeriesInternal > m_series;
486 std::string
const & filepath,
489 std::string
const & options =
"{}" );
502 std::string
const & filepath,
504 std::string
const & options =
"{}" );
506 virtual ~
Series() =
default;
516 operator bool()
const;
548 #include "openPMD/ReadIterations.hpp" Access
File access mode to use during IO.
Definition: Access.hpp:28
Definition: Series.hpp:441
Format
File format to use during IO.
Definition: Format.hpp:30
Logical compilation of data from one snapshot (e.g.
Definition: Iteration.hpp:39
StepStatus m_stepStatus
Whether a step is currently active for this iteration.
Definition: Series.hpp:97
StepStatus
Used in step-based mode (i.e.
Definition: Streaming.hpp:44
FlushLevel
Determine what items should be flushed upon Series::flush()
Definition: AbstractIOHandler.hpp:63
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:47
Reading side of the streaming API.
Definition: ReadIterations.hpp:92
Root level of the openPMD hierarchy.
Definition: Series.hpp:476
Simple Option type based on variantSrc::variant.
Definition: Option.hpp:47
Public definitions of openPMD-api.
Definition: Date.cpp:29
Layer to mirror structure of logical data and persistent data in file.
Definition: Writable.hpp:64
Layer to manage storage of attributes associated with file objects.
Definition: Attributable.hpp:115
Data members for Series.
Definition: Series.hpp:67
Definition: Attributable.hpp:68
Definition: ReadIterations.hpp:50
Implementation for the root level of the openPMD hierarchy.
Definition: Series.hpp:112
IterationEncoding
Encoding scheme of an Iterations Series'.
Definition: IterationEncoding.hpp:32