diff --git a/src/btop.cpp b/src/btop.cpp index 4d9df00..11858cb 100644 --- a/src/btop.cpp +++ b/src/btop.cpp @@ -400,6 +400,13 @@ int main(int argc, char **argv){ exit(0); } + if (false) { + string first = "Test number 1 OF 45, or?"; + cout << str_to_lower(first) << endl; + cout << str_to_upper(first) << endl; + exit(0); + } + if (false) { Draw::Meter kmeter; @@ -420,7 +427,7 @@ int main(int argc, char **argv){ exit(0); } - if (true) { + if (false) { vector mydata; for (long long i = 0; i <= 100; i++) mydata.push_back(i); diff --git a/src/btop_linux.cpp b/src/btop_linux.cpp index 3646721..c1056f6 100644 --- a/src/btop_linux.cpp +++ b/src/btop_linux.cpp @@ -168,9 +168,9 @@ namespace Proc { //* Iterate over all pids in /proc for (auto& d: fs::directory_iterator(proc_path)){ if (pread.is_open()) pread.close(); - if (stop.load()) { - collecting.store(false); - stop.store(false); + if (stop) { + collecting = false; + stop = false; return current_procs; } @@ -377,7 +377,7 @@ namespace Proc { old_cputimes = cputimes; current_procs.swap(procs); numpids = npids; - collecting.store(false); + collecting = false; return current_procs; } diff --git a/src/btop_shared b/src/btop_shared new file mode 100644 index 0000000..152aa8d Binary files /dev/null and b/src/btop_shared differ diff --git a/src/btop_tools.cpp b/src/btop_tools.cpp index 86d1ce1..5d2fff7 100644 --- a/src/btop_tools.cpp +++ b/src/btop_tools.cpp @@ -168,12 +168,6 @@ namespace Term { namespace Tools { - namespace { - //? Units for floating_humanizer function - const array Units_bit = {"bit", "Kib", "Mib", "Gib", "Tib", "Pib", "Eib", "Zib", "Yib", "Bib", "GEb"}; - const array Units_byte = {"Byte", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB", "BiB", "GEB"}; - } - size_t ulen(string str, const bool escape){ if (escape) str = std::regex_replace(str, Fx::escape_regex, ""); return rng::count_if(str, [](char c) { return (static_cast(c) & 0xC0) != 0x80; } ); @@ -193,6 +187,18 @@ namespace Tools { return str; } + string str_to_upper(const string& str){ + string out = str; + rng::for_each(out, [](auto& c){ c = ::toupper(c); } ); + return out; + } + + string str_to_lower(const string& str){ + string out = str; + rng::for_each(out, [](char& c){ c = ::tolower(c); } ); + return out; + } + uint64_t time_s(){ return std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); } @@ -306,6 +312,8 @@ namespace Tools { string floating_humanizer(uint64_t value, bool shorten, uint start, bool bit, bool per_second){ string out; uint mult = (bit) ? 8 : 1; + static const array Units_bit = {"bit", "Kib", "Mib", "Gib", "Tib", "Pib", "Eib", "Zib", "Yib", "Bib", "GEb"}; + static const array Units_byte = {"Byte", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB", "BiB", "GEB"}; auto& units = (bit) ? Units_bit : Units_byte; value *= 100 * mult; @@ -338,7 +346,7 @@ namespace Tools { std::string operator*(string str, size_t n){ string out; out.reserve(str.size() * n); - while (n-- > 0) out += str; + while (n-- > 0) out.append(str); return out; } @@ -360,13 +368,13 @@ namespace Tools { #else //* Crude implementation of atomic wait for GCC 10 void atomic_wait(atomic& atom, bool val){ - while (atom.load() == val) sleep_ms(1); + while (atom == val) std::this_thread::sleep_for(std::chrono::microseconds(1)); } #endif void atomic_wait_set(atomic& atom, bool val){ atomic_wait(atom, val); - atom.store(val); + atom = val; } } @@ -411,7 +419,7 @@ namespace Logger { lwrite.close(); } else logfile.clear(); - busy.store(false); + busy = false; } void error(string msg){ diff --git a/src/btop_tools.hpp b/src/btop_tools.hpp index 6448804..d3da274 100644 --- a/src/btop_tools.hpp +++ b/src/btop_tools.hpp @@ -149,6 +149,12 @@ namespace Tools { //* Resize a string consisting of UTF8 characters (only reduces size) string uresize(string str, const size_t len); + //* Return with only uppercase characters + string str_to_upper(const string& str); + + //* Return with only lowercase characters + string str_to_lower(const string& str); + //* Check if vector contains value template bool v_contains(const vector& vec, const T find_val) { @@ -223,7 +229,7 @@ namespace Tools { //* Waits for to not be and then sets it to again void atomic_wait_set(std::atomic& atom, bool val=true); - + } //* Simple logging implementation