From c0790984eeea45c2692680fd133e6048cbafe57c Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Fri, 5 Feb 2021 14:20:10 +0100 Subject: [PATCH] Some minor code refactors and fixed converter for 332bit builds --- src/converters/converter.cpp | 2 +- src/converters/converter.h | 4 ++-- src/protocol/AcknowledgeManager.cpp | 14 ++++++++------ src/protocol/AcknowledgeManager.h | 6 +++--- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/converters/converter.cpp b/src/converters/converter.cpp index 0000af9..bfa2381 100644 --- a/src/converters/converter.cpp +++ b/src/converters/converter.cpp @@ -34,7 +34,7 @@ CONVERTER_PRIMITIVE_ST(float, std::stof(std::string{str})); CONVERTER_PRIMITIVE_ST(double, std::stod(std::string{str})); CONVERTER_PRIMITIVE_ST(long_double, std::stold(std::string{str})); -CONVERTER_PRIMITIVE_ST(long_long_unsigned_int_t, std::stoull(std::string{str})); +//CONVERTER_PRIMITIVE_ST(long_long_unsigned_int_t, std::stoull(std::string{str})); CONVERTER_ST(std__string, return std::string{str};, return std::any_cast(value);); CONVERTER_ST(std__string_view, return str;, return std::string{std::any_cast(value)};); diff --git a/src/converters/converter.h b/src/converters/converter.h index 36db2e5..51333e4 100644 --- a/src/converters/converter.h +++ b/src/converters/converter.h @@ -22,7 +22,7 @@ namespace ts { static constexpr bool supported = true; \ \ static constexpr std::string(*to_string)(const std::any&) = encode; \ - static constexpr type(*from_string_view)(const std::string_view&) = decode; \ + static constexpr type(*from_string_view)(const std::string_view&) = decode; \ }; #define CONVERTER_METHOD_DECODE(type, name) type name(const std::string_view& str) @@ -53,7 +53,7 @@ namespace ts { CONVERTER_PRIMITIVE(int64_t); CONVERTER_PRIMITIVE(uint64_t); - CONVERTER_PRIMITIVE(long_long_unsigned_int_t); + //CONVERTER_PRIMITIVE(long_long_unsigned_int_t); typedef std::string std__string; typedef std::string_view std__string_view; diff --git a/src/protocol/AcknowledgeManager.cpp b/src/protocol/AcknowledgeManager.cpp index 33ce5b1..69e1afb 100644 --- a/src/protocol/AcknowledgeManager.cpp +++ b/src/protocol/AcknowledgeManager.cpp @@ -1,6 +1,5 @@ #include "AcknowledgeManager.h" #include -#include #include using namespace ts; @@ -21,10 +20,10 @@ void AcknowledgeManager::reset() { auto pending_entries = std::move(this->entries); lock.unlock(); - /* save because entries are not accessable anymore */ + /* save because entries are not accessible anymore */ for(const auto& entry : pending_entries) { if(entry->acknowledge_listener) { - entry->acknowledge_listener->executionFailed("reset"); + (*entry->acknowledge_listener)(false); } } } @@ -35,8 +34,9 @@ size_t AcknowledgeManager::awaiting_acknowledge() { return this->entries.size(); } -void AcknowledgeManager::process_packet(uint8_t type, uint32_t id, void *ptr, std::unique_ptr> ack) { +void AcknowledgeManager::process_packet(uint8_t type, uint32_t id, void *ptr, std::unique_ptr> ack) { std::shared_ptr entry{new Entry{}, [&](Entry* entry){ + assert(this->destroy_packet); this->destroy_packet(entry->packet_ptr); delete entry; }}; @@ -62,7 +62,7 @@ bool AcknowledgeManager::process_acknowledge(uint8_t packet_type, uint16_t targe PacketType target_type{packet_type == protocol::ACK_LOW ? PacketType::COMMAND_LOW : PacketType::COMMAND}; std::shared_ptr entry; - std::unique_ptr> ack_listener; + std::unique_ptr> ack_listener; { std::lock_guard lock{this->entry_lock}; for(auto it = this->entries.begin(); it != this->entries.end(); it++) { @@ -88,7 +88,9 @@ bool AcknowledgeManager::process_acknowledge(uint8_t packet_type, uint16_t targe } entry->acknowledged = true; - if(ack_listener) ack_listener->executionSucceed(true); + if(ack_listener) { + (*ack_listener)(true); + } return true; } diff --git a/src/protocol/AcknowledgeManager.h b/src/protocol/AcknowledgeManager.h index e407f5d..84bc7dd 100644 --- a/src/protocol/AcknowledgeManager.h +++ b/src/protocol/AcknowledgeManager.h @@ -19,7 +19,7 @@ namespace ts::connection { std::chrono::system_clock::time_point first_send; std::chrono::system_clock::time_point next_resend; - std::unique_ptr> acknowledge_listener; + std::unique_ptr> acknowledge_listener; void* packet_ptr; }; @@ -32,7 +32,7 @@ namespace ts::connection { size_t awaiting_acknowledge(); void reset(); - void process_packet(uint8_t /* packet type */, uint32_t /* full packet id */, void* /* packet ptr */, std::unique_ptr> /* ack listener */); + void process_packet(uint8_t /* packet type */, uint32_t /* full packet id */, void* /* packet ptr */, std::unique_ptr> /* ack listener */); bool process_acknowledge(uint8_t /* packet type */, uint16_t /* packet id */, std::string& /* error */); void execute_resend( @@ -45,7 +45,7 @@ namespace ts::connection { [[nodiscard]] inline auto current_srtt() const { return this->srtt; } [[nodiscard]] inline auto current_rttvar() const { return this->rttvar; } - void(*destroy_packet)(void* /* packet */); + void(*destroy_packet)(void* /* packet */){nullptr}; void* callback_data{nullptr}; callback_resend_failed_t callback_resend_failed{[](auto, auto){}}; /* must be valid all the time */