SeqAn3
3.4.0
The Modern C++ library for sequence analysis.
Toggle main menu visibility
Loading...
Searching...
No Matches
safe_filesystem_entry.hpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
2
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
3
// SPDX-License-Identifier: BSD-3-Clause
4
9
10
#pragma once
11
12
#include <
cassert
>
13
#include <
filesystem
>
14
#include <
system_error
>
15
16
#include <
seqan3/core/platform.hpp
>
17
18
namespace
seqan3::detail
19
{
20
34
class
safe_filesystem_entry
35
{
36
public
:
40
safe_filesystem_entry() =
delete
;
41
safe_filesystem_entry(safe_filesystem_entry
const
&) =
delete
;
42
safe_filesystem_entry(safe_filesystem_entry &&) =
default
;
43
safe_filesystem_entry & operator=(safe_filesystem_entry
const
&) =
delete
;
44
safe_filesystem_entry & operator=(safe_filesystem_entry &&) =
default
;
45
49
safe_filesystem_entry(std::filesystem::path p) : entry(std::move(p))
50
{}
51
53
~safe_filesystem_entry()
54
{
55
std::error_code ec;
56
std::filesystem::remove_all
(entry, ec);
57
58
assert(!
static_cast<
bool
>
(ec));
59
}
61
70
bool
remove()
71
{
72
return
std::filesystem::remove
(entry);
73
}
74
76
bool
remove_no_throw() const noexcept
77
{
78
std::error_code ec;
79
return
std::filesystem::remove
(entry, ec);
80
}
81
91
std::uintmax_t remove_all()
92
{
93
return
std::filesystem::remove_all
(entry);
94
}
95
96
private
:
98
std::filesystem::path entry;
99
};
100
101
}
// namespace seqan3::detail
cassert
filesystem
platform.hpp
Provides platform and dependency checks.
std::filesystem::remove_all
T remove_all(T... args)
system_error
Hide me
Version:
seqan3
io
detail
safe_filesystem_entry.hpp
Generated on
for SeqAn3 by
1.17.0