1#if PROTOCOL_VERSION > 759
9#if PROTOCOL_VERSION > 760
25#if PROTOCOL_VERSION < 761
26 const std::vector<unsigned char>& LastSeenMessagesTracker::GetLastSignature()
const
28 return last_signature_sent;
31 void LastSeenMessagesTracker::SetLastSignature(
const std::vector<unsigned char>& last_signature_sent_)
33 last_signature_sent = last_signature_sent_;
38 std::scoped_lock<std::mutex> lock_messages(
mutex);
41 entry.SetLastSignature(signature);
42 entry.SetProfileId(sender);
46 while (index < last_seen.size())
48 if (last_seen[index].GetProfileId() == sender)
50 last_seen.erase(last_seen.begin() + index);
59 last_seen.push_front(entry);
62 while (last_seen.size() > 5)
71 last_seen_messages_update.SetLastSeen({ last_seen.begin(), last_seen.begin() + std::min(
static_cast<int>(last_seen.size()), 5) });
72 return last_seen_messages_update;
77 std::scoped_lock<std::mutex> lock_messages(
mutex);
82 std::bitset<20> bitset;
93 output.second.SetAcknowledged(bitset);
112 const int current_offset =
offset;
114 return current_offset;
std::array< std::vector< unsigned char >, 20 > last_seen_signatures
Circular buffer to store previously seen message signatures.
void AddSeenMessage(const std::vector< unsigned char > &signature)
std::pair< std::vector< std::vector< unsigned char > >, ProtocolCraft::LastSeenMessagesUpdate > GetLastSeenMessagesUpdate()
Get both a vector of previous messages signatures and the LastSeenMessagesUpdate object.
~LastSeenMessagesTracker()
LastSeenMessagesTracker()
std::array< unsigned char, 16 > UUID