#include "knx_device_broker.h" #include namespace gateway { KnxResponseDeduplicator::KnxResponseDeduplicator(const uint8_t* original, size_t len) { if (original != nullptr && len > 0) { original_.assign(original, original + len); } } bool KnxResponseDeduplicator::remember(const uint8_t* data, size_t len) { if (data == nullptr || len == 0) { ++suppressed_count_; return false; } return remember(std::vector(data, data + len)); } bool KnxResponseDeduplicator::remember(const std::vector& data) { if (data.empty() || (!original_.empty() && data == original_) || std::find(sent_.begin(), sent_.end(), data) != sent_.end()) { ++suppressed_count_; return false; } sent_.push_back(data); return true; } size_t KnxResponseDeduplicator::suppressedCount() const { return suppressed_count_; } } // namespace gateway