49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
//
|
|
// 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;
|
|
}
|
|
}
|