1#ifndef included_AMP_RestartManager
2#define included_AMP_RestartManager
5#include "AMP/utils/TypeTraits.h"
76 std::shared_ptr<TYPE>
getData(
const std::string &name );
101 std::shared_ptr<TYPE>
getData( uint64_t hash );
144 virtual void write(
hid_t fid,
const std::string &name )
const = 0;
158 void write(
hid_t fid,
const std::string &name )
const override;
159 virtual std::shared_ptr<TYPE>
176 void write(
hid_t fid,
const std::string &name )
const override;
177 std::shared_ptr<TYPE>
202#include "AMP/IO/RestartManager.hpp"
Provides C++ wrapper around MPI routines.
Class to store a single object to write/read.
std::shared_ptr< const TYPE > d_data
DataStoreType(hid_t fid, uint64_t hash, RestartManager *manager)
DataStoreType(std::shared_ptr< const TYPE >, RestartManager *)
virtual ~DataStoreType()=default
virtual std::shared_ptr< TYPE > read(hid_t fid, const std::string &name, RestartManager *) const
void write(hid_t fid, const std::string &name) const override
Base class for writing an object.
virtual ~DataStore()=default
virtual void write(hid_t fid, const std::string &name) const =0
std::shared_ptr< TYPE > read(hid_t fid, const std::string &name, RestartManager *) const override
SAMRAIDataStore(hid_t fid, uint64_t hash, RestartManager *manager)
void write(hid_t fid, const std::string &name) const override
SAMRAIDataStore(std::shared_ptr< const TYPE >, RestartManager *)
virtual ~SAMRAIDataStore()=default
Class to manage reading/writing restart data.
RestartManager(const std::string &filename)
Create a reader for restart data.
std::shared_ptr< TYPE > getData(uint64_t hash)
Get data from the restart manager.
std::shared_ptr< TYPE > getData(const std::string &name)
Get data from the restart manager.
bool isRegistered(uint64_t hash)
Check if an object is registered.
void load(const std::string &filename)
Read a restart file.
uint64_t registerObject(const TYPE &data)
Register data with the restart manager.
std::shared_ptr< TYPE > getSAMRAIData(uint64_t hash)
Get SAMRAI data from the restart manager.
AMP_MPI getComm(uint64_t hash)
Get the communicator from the restart manager.
RestartManager & operator=(RestartManager &&)
Move assignment.
void readCommData(const std::string &file)
std::map< uint64_t, AMP_MPI > d_comms
std::map< std::string, uint64_t > d_names
static std::string hash2String(uint64_t)
~RestartManager()
Destructor.
void writeCommData(const std::string &file, Compression compress)
void reset()
Reset internal data.
RestartManager(const RestartManager &)=delete
Copy constructor.
uint64_t registerSAMRAIData(std::shared_ptr< const TYPE & > data)
Register SAMRAI data with the restart manager.
RestartManager(RestartManager &&)
Move operator.
RestartManager & operator=(const RestartManager &)=delete
Assignment operator.
std::shared_ptr< DataStore > DataStorePtr
RestartManager()
Create a writer for restart data.
void registerData(const TYPE &data, const std::string &name)
Register data with the restart manager.
uint64_t registerComm(const AMP::AMP_MPI &comm)
Register a communicator with the restart manager.
RestartManager::DataStorePtr create(std::shared_ptr< const TYPE >)
void write(const std::string &filename, Compression compress=Compression::None)
Write the data.
std::map< uint64_t, DataStorePtr > d_data
std::string filename(const std::string &filename)
Return the filename (strip the path)