namespace ceph::net {
-enum class custom_bp_t {
+enum class custom_bp_t : uint8_t {
BANNER_WRITE = 0,
BANNER_READ,
BANNER_PAYLOAD_READ,
SOCKET_ACCEPTED
};
inline const char* get_bp_name(custom_bp_t bp) {
+ uint8_t index = static_cast<uint8_t>(bp);
static const char *const bp_names[] = {"BANNER_WRITE",
"BANNER_READ",
"BANNER_PAYLOAD_READ",
"SOCKET_CONNECTING",
"SOCKET_ACCEPTED"};
- assert(static_cast<int>(bp) < std::size(bp_names));
- return bp_names[static_cast<int>(bp)];
+ assert(index < std::size(bp_names));
+ return bp_names[index];
}
enum class bp_type_t {
protected:
// write_state is changed with state atomically, indicating the write
// behavior of the according state.
- enum class write_state_t {
+ enum class write_state_t : uint8_t {
none,
delay,
open,
};
static const char* get_state_name(write_state_t state) {
+ uint8_t index = static_cast<uint8_t>(state);
static const char *const state_names[] = {"none",
"delay",
"open",
"drop"};
- assert(static_cast<int>(state) < std::size(state_names));
- return state_names[static_cast<int>(state)];
+ assert(index < std::size(state_names));
+ return state_names[index];
}
void set_write_state(const write_state_t& state) {