summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlberto Sartori <alberto.sartori@huawei.com>2023-12-15 17:43:40 +0100
committerAlberto Sartori <alberto.sartori@huawei.com>2023-12-21 10:11:11 +0100
commit9f4b58cc8189cfdf6e7ddedc7df2e5dd9625c00f (patch)
tree806b1116588ef4624466bf3ff3282afdf9a712b6 /src
parent450bac21b48d70d95865db3874da0b760f1eb93f (diff)
downloadjustbuild-9f4b58cc8189cfdf6e7ddedc7df2e5dd9625c00f.tar.gz
remote/client_common.hpp: add utility functions for logging status of rpc calls
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/common/remote/client_common.hpp42
1 files changed, 24 insertions, 18 deletions
diff --git a/src/buildtool/common/remote/client_common.hpp b/src/buildtool/common/remote/client_common.hpp
index cf06831d..6a13de34 100644
--- a/src/buildtool/common/remote/client_common.hpp
+++ b/src/buildtool/common/remote/client_common.hpp
@@ -45,32 +45,38 @@
return grpc::CreateChannel(address, creds);
}
-[[maybe_unused]] static inline void LogStatus(Logger const* logger,
- LogLevel level,
- grpc::Status const& s) noexcept {
- if (logger == nullptr) {
- Logger::Log(level,
- "{}: {}",
- static_cast<int>(s.error_code()),
- s.error_message());
- }
- else {
- logger->Emit(level,
- "{}: {}",
- static_cast<int>(s.error_code()),
- s.error_message());
- }
+[[nodiscard]] static inline auto StatusString(
+ grpc::Status const& s,
+ std::optional<std::string> const& prefix = std::nullopt) noexcept
+ -> std::string {
+ return fmt::format("{}{}: {}",
+ (prefix.has_value() ? fmt::format("{}: ", *prefix) : ""),
+ static_cast<int>(s.error_code()),
+ s.error_message());
+}
+
+[[nodiscard]] static inline auto StatusString(
+ google::rpc::Status const& s,
+ std::optional<std::string> const& prefix = std::nullopt) noexcept
+ -> std::string {
+ return fmt::format("{}{}: {}",
+ (prefix.has_value() ? fmt::format("{}: ", *prefix) : ""),
+ static_cast<int>(s.code()),
+ s.message());
}
+template <typename T_Status>
[[maybe_unused]] static inline void LogStatus(
Logger const* logger,
LogLevel level,
- google::rpc::Status const& s) noexcept {
+ T_Status const& s,
+ std::optional<std::string> const& prefix = std::nullopt) noexcept {
+ auto msg = [&s, &prefix]() { return StatusString(s, prefix); };
if (logger == nullptr) {
- Logger::Log(level, "{}: {}", static_cast<int>(s.code()), s.message());
+ Logger::Log(level, msg);
}
else {
- logger->Emit(level, "{}: {}", static_cast<int>(s.code()), s.message());
+ logger->Emit(level, msg);
}
}