these unused includes were identifier by clang-include-cleaner. after auditing these source files, all of the reports have been confirmed. please note, because quite a few source files relied on `utils/to_string.hh` to pull in the specialization of `fmt::formatter<std::optional<T>>`, after removing `#include <fmt/std.h>` from `utils/to_string.hh`, we have to include `fmt/std.h` directly. Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
/*
|
|
* Copyright (C) 2019-present ScyllaDB
|
|
*/
|
|
|
|
/*
|
|
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <set>
|
|
#include <vector>
|
|
#include <seastar/core/future.hh>
|
|
#include <seastar/util/bool_class.hh>
|
|
#include "utils/file_lock.hh"
|
|
|
|
using namespace seastar;
|
|
|
|
namespace db {
|
|
class config;
|
|
}
|
|
|
|
namespace utils {
|
|
|
|
class directories {
|
|
public:
|
|
class set {
|
|
public:
|
|
void add(fs::path path);
|
|
void add(sstring path);
|
|
void add(std::vector<sstring> path);
|
|
void add_sharded(sstring path);
|
|
|
|
const std::set<fs::path> get_paths() const {
|
|
return _paths;
|
|
}
|
|
|
|
private:
|
|
std::set<fs::path> _paths;
|
|
};
|
|
|
|
using recursive = bool_class<struct recursive_tag>;
|
|
|
|
directories(bool developer_mode);
|
|
future<> create_and_verify(set dir_set, recursive recursive = recursive::yes);
|
|
static future<> verify_owner_and_mode(std::filesystem::path path, recursive recursive = recursive::yes);
|
|
static future<> verify_owner_and_mode_of_data_dir(set dir_set);
|
|
private:
|
|
bool _developer_mode;
|
|
std::vector<file_lock> _locks;
|
|
|
|
static future<> do_verify_owner_and_mode(std::filesystem::path path, recursive, int level, std::function<bool(const fs::path&)> do_verify_subpath = {});
|
|
};
|
|
|
|
} // namespace utils
|