blob: 4c445348d301216962dcd5350a96868a040dd181 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab
#pragma once
#include <string_view>
#include <ostream>
class OSDMap;
class OSDState {
enum class State {
INITIALIZING,
PREBOOT,
BOOTING,
ACTIVE,
STOPPING,
WAITING_FOR_HEALTHY,
};
State state = State::INITIALIZING;
public:
bool is_initializing() const {
return state == State::INITIALIZING;
}
bool is_preboot() const {
return state == State::PREBOOT;
}
bool is_booting() const {
return state == State::BOOTING;
}
bool is_active() const {
return state == State::ACTIVE;
}
bool is_stopping() const {
return state == State::STOPPING;
}
bool is_waiting_for_healthy() const {
return state == State::WAITING_FOR_HEALTHY;
}
void set_preboot() {
state = State::PREBOOT;
}
void set_booting() {
state = State::BOOTING;
}
void set_active() {
state = State::ACTIVE;
}
void set_stopping() {
state = State::STOPPING;
}
std::string_view to_string() const {
switch (state) {
case State::INITIALIZING: return "initializing";
case State::PREBOOT: return "preboot";
case State::BOOTING: return "booting";
case State::ACTIVE: return "active";
case State::STOPPING: return "stopping";
case State::WAITING_FOR_HEALTHY: return "waiting_for_healthy";
default: return "???";
}
}
};
inline std::ostream&
operator<<(std::ostream& os, const OSDState& s) {
return os << s.to_string();
}
|