#include #include namespace DB { std::vector PartUUIDs::add(const std::vector & new_uuids) { std::lock_guard lock(mutex); std::vector intersection; /// First check any presence of uuids in a uuids, return duplicates back if any for (const auto & uuid : new_uuids) { if (uuids.find(uuid) != uuids.end()) intersection.emplace_back(uuid); } if (intersection.empty()) { for (const auto & uuid : new_uuids) uuids.emplace(uuid); } return intersection; } std::vector PartUUIDs::get() const { std::lock_guard lock(mutex); return std::vector(uuids.begin(), uuids.end()); } bool PartUUIDs::has(const UUID & uuid) const { std::lock_guard lock(mutex); return uuids.find(uuid) != uuids.end(); } }