From 4cece76e1cd6a0b9e8e0483412b3e083904e6295 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 24 Jan 2023 20:35:47 -0800 Subject: [PATCH] ircd::m::room::aliases: Add has_server() optimized count(server)>0 to interface. --- include/ircd/m/room/aliases.h | 1 + matrix/room_aliases.cc | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/include/ircd/m/room/aliases.h b/include/ircd/m/room/aliases.h index a0dd15e36..27d93fe5d 100644 --- a/include/ircd/m/room/aliases.h +++ b/include/ircd/m/room/aliases.h @@ -30,6 +30,7 @@ struct ircd::m::room::aliases public: bool for_each(const string_view &server, const closure_bool &) const; bool for_each(const closure_bool &) const; + bool has_server(const string_view &) const; bool has(const alias &) const; size_t count(const string_view &server) const; size_t count() const; diff --git a/matrix/room_aliases.cc b/matrix/room_aliases.cc index 813ec91bd..dc5e0938f 100644 --- a/matrix/room_aliases.cc +++ b/matrix/room_aliases.cc @@ -66,6 +66,17 @@ const }); } +bool +ircd::m::room::aliases::has_server(const string_view &server) +const +{ + return !for_each(server, [] + (const id::room_alias &a) noexcept + { + return false; + }); +} + bool ircd::m::room::aliases::for_each(const closure_bool &closure) const