From ab5bc1adb658bacf230df1f2a5efe7c0fca101ee Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Sun, 6 Oct 2024 06:16:14 -0500 Subject: [PATCH] [ox/std] Remove oxRequireT and oxRequireMT --- deps/ox/ox-docs.md | 10 ++-------- deps/ox/src/ox/logconn/logconn.cpp | 28 ++++++++++++++++++---------- deps/ox/src/ox/std/def.hpp | 4 ---- deps/ox/src/ox/std/trace.cpp | 24 +++++++++++------------- deps/ox/src/ox/std/uuid.hpp | 4 ++-- 5 files changed, 33 insertions(+), 37 deletions(-) diff --git a/deps/ox/ox-docs.md b/deps/ox/ox-docs.md index 3762c291..84792e3a 100644 --- a/deps/ox/ox-docs.md +++ b/deps/ox/ox-docs.md @@ -176,14 +176,8 @@ ox::Result f2() noexcept { ``` ```oxRequire``` is not quite as versatile, but it should still cleanup a lot of otherwise less ideal code. -```oxRequire``` also has variants for throwing the error and for making to value non-const: - -* ```oxRequireM``` - oxRequire Mutable -* ```oxRequireT``` - oxRequire Throw -* ```oxRequireMT``` - oxRequire Mutable Throw - -The throw variants of ```oxRequire``` are generally legacy code. -```ox::Result::unwrapThrow``` is generally preferred now. +```oxRequire``` by default creates a const, but there is also an ```oxRequireM``` (oxRequire Mutable) +variant for creating a non-const value. ### Logging and Output diff --git a/deps/ox/src/ox/logconn/logconn.cpp b/deps/ox/src/ox/logconn/logconn.cpp index f5a398ff..dfe91a47 100644 --- a/deps/ox/src/ox/logconn/logconn.cpp +++ b/deps/ox/src/ox/logconn/logconn.cpp @@ -9,8 +9,8 @@ #ifdef OX_USE_STDLIB #include -#include #ifndef _WIN32 +#include #include #include #include @@ -25,15 +25,22 @@ #include "logconn.hpp" -#include namespace ox { +#ifdef _WIN32 +using Socket = SOCKET; +using LenType = int; +#else +using Socket = int; +using LenType = size_t; +#endif + using namespace trace; -void closeSock(auto s) noexcept { +static void closeSock(auto s) noexcept { #ifdef _WIN32 - closesocket(s); + closesocket(static_cast(s)); #else close(s); #endif @@ -56,8 +63,8 @@ ox::Error LoggerConn::initConn(ox::StringViewCR appName) noexcept { addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); addr.sin_port = htons(5590); - m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - oxReturnError(OxError(static_cast(connect(m_socket, reinterpret_cast(&addr), sizeof(addr))))); + m_socket = static_cast(socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)); + oxReturnError(OxError(static_cast(connect(static_cast(m_socket), reinterpret_cast(&addr), sizeof(addr))))); return sendInit({.appName = ox::BasicString<128>(appName)}); } @@ -65,9 +72,9 @@ ox::Error LoggerConn::send(const char *buff, std::size_t len) const noexcept { std::size_t totalSent = 0; while (totalSent < len) { //std::fprintf(stdout, "Sending %lu/%lu bytes on socket %d\n", len, totalSent, m_socket); - const auto sent = ::send(m_socket, buff, len, 0); + const auto sent = ::send(static_cast(m_socket), buff, static_cast(len), 0); if (sent < 0) { - std::fprintf(stderr, "Could not send msg\n"); + std::ignore = std::fprintf(stderr, "Could not send msg\n"); return OxError(1, "Could not send msg"); } totalSent += static_cast(sent); @@ -90,13 +97,14 @@ void LoggerConn::msgSend() noexcept { if (!m_running) { break; } - std::lock_guard buffLk(m_buffMut); + std::lock_guard const buffLk(m_buffMut); while (true) { - ox::Array tmp; + Array tmp; const auto read = m_buff.read(tmp.data(), tmp.size()); if (!read) { break; } + oxAssert(read <= tmp.size(), "logger trying to read too much data"); //std::printf("LoggerConn: sending %lu bytes\n", read); std::ignore = send(tmp.data(), read); } diff --git a/deps/ox/src/ox/std/def.hpp b/deps/ox/src/ox/std/def.hpp index 790b0057..4cad13e2 100644 --- a/deps/ox/src/ox/std/def.hpp +++ b/deps/ox/src/ox/std/def.hpp @@ -44,10 +44,6 @@ // oxRequire Mutable #define oxRequireM(out, x) auto [out, oxConcat(oxRequire_err_, __LINE__)] = x; oxReturnError(oxConcat(oxRequire_err_, __LINE__)) #define oxRequire(out, x) const oxRequireM(out, x) -// oxRequire Mutable Throw -#define oxRequireMT(out, x) auto [out, oxConcat(oxRequire_err_, __LINE__)] = x; oxThrowError(oxConcat(oxRequire_err_, __LINE__)) -// oxRequire Throw -#define oxRequireT(out, x) const oxRequireMT(out, x) // Asserts diff --git a/deps/ox/src/ox/std/trace.cpp b/deps/ox/src/ox/std/trace.cpp index 472c594e..0267c5df 100644 --- a/deps/ox/src/ox/std/trace.cpp +++ b/deps/ox/src/ox/std/trace.cpp @@ -10,6 +10,17 @@ namespace ox::trace { +static class: public Logger { + public: + ox::Error send(const TraceMsg&) noexcept final { + return {}; + } + ox::Error sendInit(const InitTraceMsg&) noexcept final { + return {}; + } +} defaultLogger; +static Logger *logger = &defaultLogger; + void init() { oxTraceInitHook(); } @@ -19,19 +30,6 @@ void init(Logger *logger) { setLogger(logger); } -class NullLogger: public Logger { - public: - ox::Error send(const TraceMsg&) noexcept final { - return {}; - } - ox::Error sendInit(const InitTraceMsg&) noexcept final { - return {}; - } -}; - -static NullLogger defaultLogger; -static Logger *logger = &defaultLogger; - void setLogger(Logger *logger) noexcept { trace::logger = logger; } diff --git a/deps/ox/src/ox/std/uuid.hpp b/deps/ox/src/ox/std/uuid.hpp index 5e55925b..a22cd1a9 100644 --- a/deps/ox/src/ox/std/uuid.hpp +++ b/deps/ox/src/ox/std/uuid.hpp @@ -107,12 +107,12 @@ class UUID { static ox::Result generate() noexcept; [[nodiscard]] - constexpr auto const&value() const noexcept { + constexpr ox::Array const&value() const noexcept { return m_value; } [[nodiscard]] - constexpr auto isNull() const noexcept { + constexpr bool isNull() const noexcept { if (std::is_constant_evaluated()) { if (ox::all_of(m_value.begin(), m_value.end(), [](auto v) { return v == 0; })) { return true;