Skip to content
Snippets Groups Projects
Select Git revision
  • 2c903e7f44c97cb7efc6bd5f7bb0c35ab847c3d3
  • develop default protected
  • feature/variational-hydro
  • origin/stage/bouguettaia
  • feature/gmsh-reader
  • feature/reconstruction
  • save_clemence
  • feature/kinetic-schemes
  • feature/local-dt-fsi
  • feature/composite-scheme-sources
  • feature/composite-scheme-other-fluxes
  • feature/serraille
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • master protected
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

PastisUtils.cpp

Blame
  • CheckpointResumeRepository.cpp 2.30 KiB
    #include <language/utils/CheckpointResumeRepository.hpp>
    
    CheckpointResumeRepository* CheckpointResumeRepository::m_instance = nullptr;
    
    void
    CheckpointResumeRepository::checkpoint(const ASTNodeDataType& data_type,
                                           const std::string& symbol_name,
                                           const EmbeddedData& embedded_data,
                                           HighFive::File& file,
                                           HighFive::Group& checkpoint_group,
                                           HighFive::Group& symbol_table_group) const
    {
      std::string data_type_name = dataTypeName(data_type);
      if (auto i_dt_function = m_data_type_checkpointing.find(data_type_name);
          i_dt_function != m_data_type_checkpointing.end()) {
        const CheckpointFunction& function = i_dt_function->second;
        function(symbol_name, embedded_data, file, checkpoint_group, symbol_table_group);
      } else {
        // LCOV_EXCL_START
        std::ostringstream error_msg;
        error_msg << "cannot find checkpointing function for type '" << rang::fgB::yellow << data_type_name
                  << rang::fg::reset << "'";
        throw UnexpectedError(error_msg.str());
        // LCOV_EXCL_STOP
      }
    }
    
    EmbeddedData
    CheckpointResumeRepository::resume(const ASTNodeDataType& data_type,
                                       const std::string& symbol_name,
                                       const HighFive::Group& symbol_table_group) const
    {
      std::string data_type_name = dataTypeName(data_type);
      if (auto i_dt_function = m_data_type_resuming.find(data_type_name); i_dt_function != m_data_type_resuming.end()) {
        const ResumeFunction& function = i_dt_function->second;
        return function(symbol_name, symbol_table_group);
      } else {
        // LCOV_EXCL_START
        std::ostringstream error_msg;
        error_msg << "cannot find resuming function for type '" << rang::fgB::yellow << data_type_name << rang::fg::reset
                  << "'";
        throw UnexpectedError(error_msg.str());
        // LCOV_EXCL_STOP
      }
    }
    
    void
    CheckpointResumeRepository::create()
    {
      Assert(m_instance == nullptr, "CheckpointResumeRepository was already created");
      m_instance = new CheckpointResumeRepository;
    }
    
    void
    CheckpointResumeRepository::destroy()
    {
      Assert(m_instance != nullptr, "CheckpointResumeRepository was not created");
      delete m_instance;
      m_instance = nullptr;
    }