diff options
| author | Grant Limberg <[email protected]> | 2023-05-03 13:43:45 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-05-03 13:43:45 -0700 |
| commit | 925599cab0600ec99dd56dabb08c4dd889f2cfd5 (patch) | |
| tree | 86a9d9324310b09f2652923cee3b422c5e37564b /osdep | |
| parent | a43048a1ad205ab3dd3d7973eb0f7d4488e1d973 (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.cpp | 13 | ||||
| -rw-r--r-- | osdep/OSUtils.hpp | 16 |
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 |
