#pragma once #include #include // strong typing for contacts enum class Contact3 : uint32_t {}; using Contact3Registry = entt::basic_registry; using Contact3Handle = entt::basic_handle; struct ContactModel3I { virtual ~ContactModel3I(void) {} // eg friends, confs, groups //virtual std::vector getBigContacts(void) = 0; // eg, all clients in a group //virtual std::vector getSubContacts(const Contact3& c) = 0; //virtual Contact3Handle toSelfStrong(void) = 0; //virtual Contact3Handle toBig(void) = 0; //virtual Contact3Handle toPersistent(void) = 0; //virtual Contact3Handle toEphemeral(void) = 0; // accept incoming request virtual void acceptRequest(Contact3 c, std::string_view self_name, std::string_view password) { (void)c,(void)self_name,(void)password; } };