From 30d7c11db792cd63a4745b0128783bf66112d839 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 28 Dec 2020 18:35:08 -0800 Subject: [PATCH] ircd::m::presence: Add prefetch() to interface. --- include/ircd/m/presence.h | 1 + matrix/presence.cc | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/ircd/m/presence.h b/include/ircd/m/presence.h index 70966f63a..6ed331b8e 100644 --- a/include/ircd/m/presence.h +++ b/include/ircd/m/presence.h @@ -38,6 +38,7 @@ struct ircd::m::presence static bool valid_state(const string_view &state); + static bool prefetch(const user &); static event::idx get(std::nothrow_t, const user &); static event::idx get(const user &); diff --git a/matrix/presence.cc b/matrix/presence.cc index 863fdabb8..98b19c467 100644 --- a/matrix/presence.cc +++ b/matrix/presence.cc @@ -148,6 +148,22 @@ ircd::m::presence::get(const std::nothrow_t, return state.get(std::nothrow, "ircd.presence", ""); } +bool +ircd::m::presence::prefetch(const m::user &user) +{ + const m::user::room user_room + { + user + }; + + const m::room::state state + { + user_room + }; + + return state.prefetch("ircd.presence", ""); +} + ircd::m::event::id::buf ircd::m::presence::set(const m::presence &content) {