openPMD-api
|
Interface for communicating between logical and physically persistent data. More...
#include <AbstractIOHandler.hpp>
Public Member Functions | |
AbstractIOHandler (std::string path, Access at, MPI_Comm) | |
AbstractIOHandler (std::string path, Access at) | |
virtual void | enqueue (IOTask const &iotask) |
Add provided task to queue according to FIFO. More... | |
virtual std::future< void > | flush ()=0 |
Process operations in queue according to FIFO. More... | |
virtual std::string | backendName () const =0 |
The currently used backend. | |
Public Attributes | |
const std::string | directory |
const Access | m_backendAccess |
const Access | m_frontendAccess |
std::queue< IOTask > | m_work |
FlushLevel | m_flushLevel = FlushLevel::InternalFlush |
Interface for communicating between logical and physically persistent data.
Input and output operations are channeled through a task queue that is managed by the concrete class implementing this handler. The queue of pending operations is only processed on demand. For certain scenarios it is therefore necessary to manually execute all operations by calling AbstractIOHandler::flush().
|
inlinevirtual |
Add provided task to queue according to FIFO.
iotask | Task to be executed after all previously enqueued IOTasks complete. |
Reimplemented in openPMD::ParallelADIOS1IOHandler, openPMD::ADIOS1IOHandler, and openPMD::DummyIOHandler.
|
pure virtual |
Process operations in queue according to FIFO.
Implemented in openPMD::ADIOS2IOHandler, openPMD::ParallelADIOS1IOHandler, openPMD::ADIOS1IOHandler, openPMD::ParallelHDF5IOHandler, openPMD::DummyIOHandler, openPMD::HDF5IOHandler, and openPMD::JSONIOHandler.