OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
CheckpointDirectory.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
11
12#pragma once
13#include <filesystem>
14
15namespace openswmm::io {
21bool checkpointNoReplaceAvailable() noexcept;
23
33void publishCheckpointNoReplace(const std::filesystem::path& staging,
34 const std::filesystem::path& destination);
38public:
48 explicit CheckpointDirectory(std::filesystem::path destination);
62 const std::filesystem::path& staging() const { return staging_; }
70 void publish();
71
72private:
73 std::filesystem::path destination_, staging_;
74 bool owned_ = false;
75};
76}
const std::filesystem::path & staging() const
Expose the reserved private directory for writing bundle contents.
Definition CheckpointDirectory.hpp:62
CheckpointDirectory(const CheckpointDirectory &)=delete
CheckpointDirectory(std::filesystem::path destination)
Reserve an exclusive sibling directory for a checkpoint bundle.
Definition CheckpointDirectory.cpp:40
CheckpointDirectory & operator=(const CheckpointDirectory &)=delete
Definition AtomicOutputFile.hpp:25
void publishCheckpointNoReplace(const std::filesystem::path &staging, const std::filesystem::path &destination)
Atomically publish a private file/directory without replacing any destination.
Definition CheckpointDirectory.cpp:74
bool checkpointNoReplaceAvailable() noexcept
Report compile-time support for exclusive checkpoint publication.
Definition CheckpointDirectory.cpp:32