OGS
Dump.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <filesystem>
7#include <iosfwd>
8#include <string>
9#include <vector>
10
11#include "BaseLib/Error.h"
12
13namespace ChemistryLib
14{
15namespace PhreeqcIOData
16{
17extern std::string specifyFileName(std::string const& project_file_name,
18 std::string const& file_extension);
19
20struct Dump
21{
22 Dump() = default;
23
24 explicit Dump(std::string const& project_file_name)
25 : dump_file(specifyFileName(project_file_name, ".dmp"))
26 {
27 try
28 {
29 if (std::filesystem::remove(dump_file))
30 {
31 INFO("Deleted the redundant phreeqc dump file {:s}\n",
32 dump_file);
33 }
34 }
35 catch (std::filesystem::filesystem_error const& e)
36 {
37 ERR("filesystem error: {:s}\n", e.what());
38 }
39 }
40
41 void print(std::ostream& os, std::size_t const num_chemical_systems) const;
42
43 void readDumpFile(std::istream& in, std::size_t const num_chemical_systems);
44
45 void readDumpFromString(std::string_view dump_content,
46 std::size_t const num_chemical_systems);
47
51 void readDumpFromStringForSystem(std::string_view dump_content,
52 std::size_t const chemical_system_id,
53 std::size_t const num_chemical_systems);
54
55 std::string dump_file;
56 std::vector<std::string> aqueous_solutions_prev;
57};
58} // namespace PhreeqcIOData
59} // namespace ChemistryLib
void INFO(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:28
void ERR(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:40
std::string specifyFileName(std::string const &project_file_name, std::string const &file_extension)
void readDumpFromString(std::string_view dump_content, std::size_t const num_chemical_systems)
Definition Dump.cpp:78
void readDumpFile(std::istream &in, std::size_t const num_chemical_systems)
Definition Dump.cpp:72
Dump(std::string const &project_file_name)
Definition Dump.h:24
void readDumpFromStringForSystem(std::string_view dump_content, std::size_t const chemical_system_id, std::size_t const num_chemical_systems)
Definition Dump.cpp:85
void print(std::ostream &os, std::size_t const num_chemical_systems) const
Definition Dump.cpp:60
std::vector< std::string > aqueous_solutions_prev
Definition Dump.h:56