Files
scylladb/node_ops/task_manager_module.hh
Aleksandra Martyniuk 91fbfbf98a node_ops: add task manager module and node_ops_virtual_task
Add task manager node ops module and node_ops_virtual_task.

Some methods will be implemented in later patches.
2024-07-23 13:35:01 +02:00

49 lines
1.4 KiB
C++

/*
* Copyright (C) 2024-present ScyllaDB
*/
/*
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#pragma once
#include "streaming/stream_reason.hh"
#include "tasks/task_manager.hh"
namespace service {
class storage_service;
}
namespace node_ops {
class node_ops_virtual_task : public tasks::task_manager::virtual_task::impl {
private:
service::storage_service& _ss;
public:
node_ops_virtual_task(tasks::task_manager::module_ptr module,
service::storage_service& ss)
: tasks::task_manager::virtual_task::impl(std::move(module))
, _ss(ss)
{}
virtual tasks::task_manager::task_group get_group() const noexcept override;
virtual future<std::set<tasks::task_id>> get_ids() const override;
virtual future<tasks::is_abortable> is_abortable() const override;
virtual future<std::optional<tasks::task_status>> get_status(tasks::task_id id) override;
virtual future<std::optional<tasks::task_status>> wait(tasks::task_id id) override;
virtual future<> abort(tasks::task_id id) noexcept override;
virtual future<std::vector<tasks::task_stats>> get_stats() override;
};
class task_manager_module : public tasks::task_manager::module {
private:
service::storage_service& _ss;
public:
task_manager_module(tasks::task_manager& tm, service::storage_service& ss) noexcept;
virtual std::set<gms::inet_address> get_nodes() const noexcept override;
};
}