#include "./participation.hpp" #include "./contact_components.hpp" #include "./chunk_picker.hpp" #include bool addParticipation(Contact3Handle c, ObjectHandle o) { bool was_new {false}; assert(static_cast(o)); assert(static_cast(c)); if (static_cast(o)) { const auto [_, inserted] = o.get_or_emplace().participants.emplace(c); was_new = inserted; } if (static_cast(c)) { const auto [_, inserted] = c.get_or_emplace().participating.emplace(o); was_new = was_new || inserted; } std::cout << "added " << (was_new?"new ":"") << "participant\n"; return was_new; } void removeParticipation(Contact3Handle c, ObjectHandle o) { assert(static_cast(o)); assert(static_cast(c)); if (static_cast(o) && o.all_of()) { o.get().participants.erase(c); } if (static_cast(c)) { if (c.all_of()) { c.get().participating.erase(o); } if (c.all_of()) { c.get().participating_unfinished.erase(o); } } std::cout << "removed participant\n"; }