Advanced Multi-Physics (AMP)
On-Line Documentation
Classes | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
AMP::IO::RestartManager Class Referencefinal

Class to manage reading/writing restart data. More...

#include <RestartManager.h>

Classes

class  DataStore
 Base class for writing an object. More...
 
class  DataStoreType
 Class to store a single object to write/read. More...
 
class  SAMRAIDataStore
 

Public Types

using DataStorePtr = std::shared_ptr< DataStore >
 

Public Member Functions

AMP_MPI getComm (uint64_t hash)
 Get the communicator from the restart manager.
 
template<class TYPE >
std::shared_ptr< TYPE > getData (const std::string &name)
 Get data from the restart manager.
 
template<class TYPE >
std::shared_ptr< TYPE > getData (uint64_t hash)
 Get data from the restart manager.
 
template<class TYPE >
std::shared_ptr< TYPE > getSAMRAIData (uint64_t hash)
 Get SAMRAI 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.
 
RestartManageroperator= (const RestartManager &)=delete
 Assignment operator.
 
RestartManageroperator= (RestartManager &&)
 Move assignment.
 
uint64_t registerComm (const AMP::AMP_MPI &comm)
 Register a communicator with the restart manager.
 
template<class TYPE >
void registerData (const TYPE &data, const std::string &name)
 Register data with the restart manager.
 
template<class TYPE >
uint64_t registerObject (const TYPE &data)
 Register data with the restart manager.
 
template<class TYPE >
uint64_t registerSAMRAIData (std::shared_ptr< const TYPE & > data)
 Register SAMRAI data with the restart manager.
 
void reset ()
 Reset internal data.
 
 RestartManager ()
 Create a writer for restart data.
 
 RestartManager (const RestartManager &)=delete
 Copy constructor.
 
 RestartManager (const std::string &filename)
 Create a reader for restart data.
 
 RestartManager (RestartManager &&)
 Move operator.
 
void write (const std::string &filename, Compression compress=Compression::None)
 Write the data.
 
 ~RestartManager ()
 Destructor.
 

Private Member Functions

template<class TYPE >
RestartManager::DataStorePtr create (std::shared_ptr< const TYPE >)
 
void readCommData (const std::string &file)
 
void writeCommData (const std::string &file, Compression compress)
 

Static Private Member Functions

static std::string hash2String (uint64_t)
 

Private Attributes

std::map< uint64_t, AMP_MPId_comms
 
std::map< uint64_t, DataStorePtrd_data
 
hid_t d_fid
 
std::map< std::string, uint64_t > d_names
 

Detailed Description

Class to manage reading/writing restart data.

Definition at line 15 of file RestartManager.h.

Member Typedef Documentation

◆ DataStorePtr

Definition at line 180 of file RestartManager.h.

Constructor & Destructor Documentation

◆ RestartManager() [1/4]

AMP::IO::RestartManager::RestartManager ( )

Create a writer for restart data.

◆ RestartManager() [2/4]

AMP::IO::RestartManager::RestartManager ( const std::string &  filename)

Create a reader for restart data.

◆ RestartManager() [3/4]

AMP::IO::RestartManager::RestartManager ( const RestartManager )
delete

Copy constructor.

◆ RestartManager() [4/4]

AMP::IO::RestartManager::RestartManager ( RestartManager &&  )

Move operator.

◆ ~RestartManager()

AMP::IO::RestartManager::~RestartManager ( )

Destructor.

Member Function Documentation

◆ create()

template<class TYPE >
RestartManager::DataStorePtr AMP::IO::RestartManager::create ( std::shared_ptr< const TYPE >  )
private

◆ getComm()

AMP_MPI AMP::IO::RestartManager::getComm ( uint64_t  hash)

Get the communicator from the restart manager.

This function will get a registered/loaded object from the restart manager

Parameters
[in]hashObject ID

◆ getData() [1/2]

template<class TYPE >
std::shared_ptr< TYPE > AMP::IO::RestartManager::getData ( const std::string &  name)

Get data from the restart manager.

This function will get a registered/loaded object from the restart manager

Parameters
[in]nameName to use for object

◆ getData() [2/2]

template<class TYPE >
std::shared_ptr< TYPE > AMP::IO::RestartManager::getData ( uint64_t  hash)

Get data from the restart manager.

This function will get a registered/loaded object from the restart manager

Parameters
[in]hashObject ID

◆ getSAMRAIData()

template<class TYPE >
std::shared_ptr< TYPE > AMP::IO::RestartManager::getSAMRAIData ( uint64_t  hash)

Get SAMRAI data from the restart manager.

This function will get a registered/loaded SAMRAI object from the restart manager

Parameters
[in]hashObject ID

◆ hash2String()

static std::string AMP::IO::RestartManager::hash2String ( uint64_t  )
staticprivate

◆ isRegistered()

bool AMP::IO::RestartManager::isRegistered ( uint64_t  hash)

Check if an object is registered.

This function will check if data with the give id has already been registered

Parameters
[in]hashObject ID

◆ load()

void AMP::IO::RestartManager::load ( const std::string &  filename)

Read a restart file.

This will open a restart file for reading. Note: this will delete all internal data (see reset()) before opening the file. Note: the restart file will remain open (and locked) until reset() is called or this object goes out of scope.

Parameters
[in]filenameFilename to use

◆ operator=() [1/2]

RestartManager & AMP::IO::RestartManager::operator= ( const RestartManager )
delete

Assignment operator.

◆ operator=() [2/2]

RestartManager & AMP::IO::RestartManager::operator= ( RestartManager &&  )

Move assignment.

◆ readCommData()

void AMP::IO::RestartManager::readCommData ( const std::string &  file)
private

◆ registerComm()

uint64_t AMP::IO::RestartManager::registerComm ( const AMP::AMP_MPI comm)

Register a communicator with the restart manager.

This function registers a communicator (based on ranks) with the restart manager

Parameters
[in]commCommunicator to register

◆ registerData()

template<class TYPE >
void AMP::IO::RestartManager::registerData ( const TYPE &  data,
const std::string &  name 
)

Register data with the restart manager.

This function registers an object with the restart manager

Parameters
[in]nameName to use for object
[in]dataData to register

◆ registerObject()

template<class TYPE >
uint64_t AMP::IO::RestartManager::registerObject ( const TYPE &  data)

Register data with the restart manager.

This function registers an object with the restart manager

Parameters
[in]dataData to register

◆ registerSAMRAIData()

template<class TYPE >
uint64_t AMP::IO::RestartManager::registerSAMRAIData ( std::shared_ptr< const TYPE & >  data)

Register SAMRAI data with the restart manager.

This function registers a SAMRAI object with the restart manager

Parameters
[in]dataData to register

◆ reset()

void AMP::IO::RestartManager::reset ( )

Reset internal data.

◆ write()

void AMP::IO::RestartManager::write ( const std::string &  filename,
Compression  compress = Compression::None 
)

Write the data.

Write all of the data currently registered with the manager to the disk and close file

Parameters
[in]filenameFilename to use
[in]compressCompression method to use

◆ writeCommData()

void AMP::IO::RestartManager::writeCommData ( const std::string &  file,
Compression  compress 
)
private

Member Data Documentation

◆ d_comms

std::map<uint64_t, AMP_MPI> AMP::IO::RestartManager::d_comms
private

Definition at line 195 of file RestartManager.h.

◆ d_data

std::map<uint64_t, DataStorePtr> AMP::IO::RestartManager::d_data
private

Definition at line 193 of file RestartManager.h.

◆ d_fid

hid_t AMP::IO::RestartManager::d_fid
private

Definition at line 192 of file RestartManager.h.

◆ d_names

std::map<std::string, uint64_t> AMP::IO::RestartManager::d_names
private

Definition at line 194 of file RestartManager.h.


The documentation for this class was generated from the following file:



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:42.
Comments on this page