summaryrefslogtreecommitdiff
path: root/osdep
diff options
context:
space:
mode:
authorGrant Limberg <[email protected]>2023-05-03 13:43:45 -0700
committerGitHub <[email protected]>2023-05-03 13:43:45 -0700
commit925599cab0600ec99dd56dabb08c4dd889f2cfd5 (patch)
tree86a9d9324310b09f2652923cee3b422c5e37564b /osdep
parenta43048a1ad205ab3dd3d7973eb0f7d4488e1d973 (diff)
Network-metrics (#1994)
* Add a couple quick functions for converting a uint64_t network ID/node ID into std::string * Network metrics
Diffstat (limited to 'osdep')
-rw-r--r--osdep/OSUtils.cpp13
-rw-r--r--osdep/OSUtils.hpp16
2 files changed, 29 insertions, 0 deletions
diff --git a/osdep/OSUtils.cpp b/osdep/OSUtils.cpp
index e237325c..67536c56 100644
--- a/osdep/OSUtils.cpp
+++ b/osdep/OSUtils.cpp
@@ -17,6 +17,7 @@
#include <stdarg.h>
#include <sys/stat.h>
#include <stdlib.h>
+#include <inttypes.h>
#include "../node/Constants.hpp"
#include "../node/Utils.hpp"
@@ -66,6 +67,18 @@ unsigned int OSUtils::ztsnprintf(char *buf,unsigned int len,const char *fmt,...)
return (unsigned int)n;
}
+std::string OSUtils::networkIDStr(const uint64_t nwid) {
+ char tmp[32] = {};
+ ztsnprintf(tmp, sizeof(tmp), "%.16" PRIx64, nwid);
+ return std::string(tmp);
+}
+
+std::string OSUtils::nodeIDStr(const uint64_t nid) {
+ char tmp[32] = {};
+ ztsnprintf(tmp, sizeof(tmp), "%.10" PRIx64, nid);
+ return std::string(tmp);
+}
+
#ifdef __UNIX_LIKE__
bool OSUtils::redirectUnixOutputs(const char *stdoutPath,const char *stderrPath)
throw()
diff --git a/osdep/OSUtils.hpp b/osdep/OSUtils.hpp
index 021b3876..43df98cb 100644
--- a/osdep/OSUtils.hpp
+++ b/osdep/OSUtils.hpp
@@ -68,6 +68,22 @@ public:
*/
static unsigned int ztsnprintf(char *buf,unsigned int len,const char *fmt,...);
+ /**
+ * Converts a uint64_t network ID into a string
+ *
+ * @param nwid network ID
+ * @throws std::length_error buf[] too short (buf[] will still be left null-terminated)
+ */
+ static std::string networkIDStr(const uint64_t nwid);
+
+ /**
+ * Converts a uint64_t node ID into a string
+ *
+ * @param nid node ID
+ * @throws std::length_error buf[] too short (buf[] will still be left null-terminated)
+ */
+ static std::string nodeIDStr(const uint64_t nid);
+
#ifdef __UNIX_LIKE__
/**
* Close STDOUT_FILENO and STDERR_FILENO and replace them with output to given path