// // Created by Kirill Zhukov on 20.04.2025. // #include "Command.h" namespace usub::core { Command::Command() { ready.store(0, std::memory_order_relaxed); response_ready.store(0, std::memory_order_relaxed); op = OperationType::PUT; key = utils::Hash128{}; value_size = 0; response_size = 0; } Command::Command(const Command& other) { ready.store(other.ready.load(std::memory_order_relaxed), std::memory_order_relaxed); op = other.op; key = other.key; value_size = other.value_size; std::memcpy(value, other.value, other.value_size); response_ready.store(other.response_ready.load(std::memory_order_relaxed), std::memory_order_relaxed); response_size = other.response_size; std::memcpy(response, other.response, other.response_size); } Command& Command::operator=(const Command& other) { if (this != &other) { ready.store(other.ready.load(std::memory_order_relaxed), std::memory_order_relaxed); op = other.op; key = other.key; value_size = other.value_size; std::memcpy(value, other.value, other.value_size); response_ready.store(other.response_ready.load(std::memory_order_relaxed), std::memory_order_relaxed); response_size = other.response_size; std::memcpy(response, other.response, other.response_size); } return *this; } }