HM3
Hierarchical Multi-physics Multi-scale Methods
 All Classes Namespaces Functions Variables Typedefs Enumerations Pages
hm3::io::session Struct Reference

Description

Manages io from interdependent multiple sources.

The sources might depend on each other, e.g., a grid and multiple solvers as well as moving geometry.

Public Member Functions

string file_name () const
 File name of the session.
 
string file_path () const
 File path to the session files.
 
string const & dir_path () const
 Path to the working directory.
 
 session (create_t, string const &path, mpi::comm comm)
 Create a new session.
 
 session (restart_t, string const &path, mpi::comm comm)
 Restart from an already existing session.
 
bool has (string const &file_group_name) const
 Has the session the file group.
 
file_group operator[] (string const &file_group_name)
 Get the file group.
 
auto size () const
 Number of file groups.
 
void push_group (string const &file_group_name, string const &file_group_type, string const &dependency=string{})
 Appends a file group to the io::session.
 
void write (file &f)
 

Static Public Member Functions

static string extension ()
 File extension of a session file.
 
static bool is_file (string const &name)
 Is a session file.
 
static bool remove (string path, mpi::comm const &c)
 Removes the session file for a session with name or path path.
 

Member Function Documentation

void hm3::io::session::write ( file f)

Write binary data

Push the modifications into the session and write the session to a file TODO: this should be guarded by a mutex

References hm3::io::file::dependency_group_name(), hm3::io::file::dependency_index(), hm3::io::file::group_name(), and hm3::io::file::index().

Referenced by hm3::io::client::write().