Skip to content

Commit

Permalink
refactor: make SEMToString / SEMFromString constexpr by using string_…
Browse files Browse the repository at this point in the history
…view
  • Loading branch information
PastaPastaPasta committed Dec 26, 2024
1 parent 2bd4703 commit 80f4537
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/rpc/net.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -688,9 +688,9 @@ static RPCHelpMan getnetworkinfo()
obj.pushKV("connections_mn", (int)node.connman->GetNodeCount(ConnectionDirection::Verified));
obj.pushKV("connections_mn_in", (int)node.connman->GetNodeCount(ConnectionDirection::VerifiedIn));
obj.pushKV("connections_mn_out", (int)node.connman->GetNodeCount(ConnectionDirection::VerifiedOut));
std::string sem_str = SEMToString(node.connman->GetSocketEventsMode());
std::string_view sem_str = SEMToString(node.connman->GetSocketEventsMode());
CHECK_NONFATAL(sem_str != "unknown");
obj.pushKV("socketevents", sem_str);
obj.pushKV("socketevents", std::string(sem_str));
}
obj.pushKV("networks", GetNetworksInfo());
obj.pushKV("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK()));
Expand Down
14 changes: 6 additions & 8 deletions src/util/sock.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@ enum class SocketEventsMode : int8_t {
};

/* Converts SocketEventsMode value to string with additional check to report modes not compiled for as unknown */
static std::string SEMToString(const SocketEventsMode val)
{
constexpr std::string_view SEMToString(const SocketEventsMode val) {
switch (val) {
case (SocketEventsMode::Select):
return "select";
Expand All @@ -52,19 +51,18 @@ static std::string SEMToString(const SocketEventsMode val)
}

/* Converts string to SocketEventsMode value with additional check to report modes not compiled for as unknown */
static SocketEventsMode SEMFromString(const std::string str)
{
constexpr SocketEventsMode SEMFromString(std::string_view str) {
if (str == "select") { return SocketEventsMode::Select; }
#ifdef USE_POLL
else if (str == "poll") { return SocketEventsMode::Poll; }
if (str == "poll") { return SocketEventsMode::Poll; }
#endif /* USE_POLL */
#ifdef USE_EPOLL
else if (str == "epoll") { return SocketEventsMode::EPoll; }
if (str == "epoll") { return SocketEventsMode::EPoll; }
#endif /* USE_EPOLL */
#ifdef USE_KQUEUE
else if (str == "kqueue") { return SocketEventsMode::KQueue; }
if (str == "kqueue") { return SocketEventsMode::KQueue; }
#endif /* USE_KQUEUE */
else { return SocketEventsMode::Unknown; }
return SocketEventsMode::Unknown;
}

/**
Expand Down

0 comments on commit 80f4537

Please sign in to comment.