CCF
Loading...
Searching...
No Matches
retired_nodes_cleanup.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
6#include "node_client.h"
7
8namespace ccf
9{
11 {
12 private:
13 std::shared_ptr<NodeClient> node_client;
14
15 public:
16 RetiredNodeCleanup(const std::shared_ptr<NodeClient>& node_client_) :
17 node_client(node_client_)
18 {}
19
21 {
22 ::http::Request request(
23 fmt::format(
24 "/{}/{}",
26 "network/nodes/set_retired_committed"),
27 HTTP_POST);
28 request.set_header(http::headers::CONTENT_LENGTH, fmt::format("{}", 0));
29
30 node_client->make_request(request);
31 }
32
39
40 void cleanup()
41 {
42 auto cleanup_msg =
43 std::make_unique<::threading::Tmsg<RetiredNodeCleanupMsg>>(
44 [](std::unique_ptr<::threading::Tmsg<RetiredNodeCleanupMsg>> msg) {
45 msg->data.self.send_cleanup_retired_nodes();
46 },
47 *this);
48
50 ccf::threading::get_current_thread_id(), std::move(cleanup_msg));
51 }
52 };
53}
Definition retired_nodes_cleanup.h:11
void send_cleanup_retired_nodes()
Definition retired_nodes_cleanup.h:20
RetiredNodeCleanup(const std::shared_ptr< NodeClient > &node_client_)
Definition retired_nodes_cleanup.h:16
void cleanup()
Definition retired_nodes_cleanup.h:40
void set_header(std::string k, const std::string &v)
Definition http_builder.h:45
Definition http_builder.h:118
static ThreadMessaging & instance()
Definition thread_messaging.h:283
void add_task(uint16_t tid, std::unique_ptr< Tmsg< Payload > > msg)
Definition thread_messaging.h:318
uint16_t get_current_thread_id()
Definition thread_local.cpp:15
Definition app_interface.h:14
constexpr auto get_actor_prefix(ActorsType at)
Definition actors.h:31
Definition retired_nodes_cleanup.h:34
RetiredNodeCleanupMsg(RetiredNodeCleanup &self_)
Definition retired_nodes_cleanup.h:35
RetiredNodeCleanup & self
Definition retired_nodes_cleanup.h:37