Skip to content
Snippets Groups Projects
Commit 13ef6dcb authored by Jason Volk's avatar Jason Volk
Browse files

add standalone getters for shortid service


Signed-off-by: default avatarJason Volk <jason@zemos.net>
parent 27966221
No related branches found
No related tags found
4 merge requests!610docs: add note about the nixos service defaulting to sqlite,!614fix incorrect user id for non-admin invites checking,!609Fix thread pagination,!608Final async database (overall heavy performance improvement), misc bug fixes, `/search` filters, remove legacy mentions (MSC4210) and dependency updates
......@@ -52,13 +52,7 @@ fn name(&self) -> &str { crate::service::make_name(std::module_path!()) }
pub async fn get_or_create_shorteventid(&self, event_id: &EventId) -> ShortEventId {
const BUFSIZE: usize = size_of::<ShortEventId>();
if let Ok(shorteventid) = self
.db
.eventid_shorteventid
.get(event_id)
.await
.deserialized()
{
if let Ok(shorteventid) = self.get_shorteventid(event_id).await {
return shorteventid;
}
......@@ -105,11 +99,10 @@ pub async fn multi_get_or_create_shorteventid(&self, event_ids: &[&EventId]) ->
}
#[implement(Service)]
pub async fn get_shortstatekey(&self, event_type: &StateEventType, state_key: &str) -> Result<ShortStateKey> {
let key = (event_type, state_key);
pub async fn get_shorteventid(&self, event_id: &EventId) -> Result<ShortEventId> {
self.db
.statekey_shortstatekey
.qry(&key)
.eventid_shorteventid
.get(event_id)
.await
.deserialized()
}
......@@ -118,17 +111,11 @@ pub async fn get_shortstatekey(&self, event_type: &StateEventType, state_key: &s
pub async fn get_or_create_shortstatekey(&self, event_type: &StateEventType, state_key: &str) -> ShortStateKey {
const BUFSIZE: usize = size_of::<ShortStateKey>();
let key = (event_type, state_key);
if let Ok(shortstatekey) = self
.db
.statekey_shortstatekey
.qry(&key)
.await
.deserialized()
{
if let Ok(shortstatekey) = self.get_shortstatekey(event_type, state_key).await {
return shortstatekey;
}
let key = (event_type, state_key);
let shortstatekey = self.services.globals.next_count().unwrap();
debug_assert!(size_of_val(&shortstatekey) == BUFSIZE, "buffer requirement changed");
......@@ -143,6 +130,16 @@ pub async fn get_or_create_shortstatekey(&self, event_type: &StateEventType, sta
shortstatekey
}
#[implement(Service)]
pub async fn get_shortstatekey(&self, event_type: &StateEventType, state_key: &str) -> Result<ShortStateKey> {
let key = (event_type, state_key);
self.db
.statekey_shortstatekey
.qry(&key)
.await
.deserialized()
}
#[implement(Service)]
pub async fn get_eventid_from_short(&self, shorteventid: ShortEventId) -> Result<Arc<EventId>> {
const BUFSIZE: usize = size_of::<ShortEventId>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment