Skip to main content

Module delayed_events

Module delayed_events 

Source
Expand description

Delayed events (MSC4140): scheduling, management and lookup.

Scheduling applies the policy an ordinary send would at the time of the request, then checks the event against room auth without storing it. The service sends it once due through the ordinary append path.

Re-exportsΒ§

use std::time::Duration; πŸ”’
use axum::extract::MatchedPath; πŸ”’
use futures::future::OptionFuture; πŸ”’
use ruma::DeviceId; πŸ”’
use ruma::MilliSecondsSinceUnixEpoch; πŸ”’
use ruma::RoomId; πŸ”’
use ruma::TransactionId; πŸ”’
use ruma::UserId; πŸ”’
use ruma::events::AnyMessageLikeEventContent; πŸ”’
use ruma::events::AnyStateEventContent; πŸ”’
use ruma::events::MessageLikeEventType; πŸ”’
use ruma::events::StateEventType; πŸ”’
use ruma::events::TimelineEventType; πŸ”’
use ruma::serde::Raw; πŸ”’
use serde_json::from_str; πŸ”’
use serde_json::value::RawValue as RawJsonValue; πŸ”’
use tuwunel_core::Err; πŸ”’
use tuwunel_core::Result; πŸ”’
use tuwunel_core::err; πŸ”’
use tuwunel_core::implement; πŸ”’
use tuwunel_core::utils::time::millis; πŸ”’
use tuwunel_core::utils::time::now_millis; πŸ”’
use tuwunel_matrix::pdu::PduBuilder; πŸ”’
use tuwunel_service::Services; πŸ”’
use tuwunel_service::delayed_events::DelayId; πŸ”’
use tuwunel_service::delayed_events::Event; πŸ”’
use tuwunel_service::delayed_events::Limits; πŸ”’
use tuwunel_service::rooms::timeline::RoomMutexGuard; πŸ”’
use tuwunel_service::transaction_ids::RoomTxn; πŸ”’
pub(crate) use self::delay_query::send_message_event_or_delayed_route; πŸ”’
pub(crate) use self::delay_query::send_state_event_or_delayed_route; πŸ”’
pub(crate) use self::get_delayed_event::get_delayed_event_route; πŸ”’
pub(crate) use self::get_delayed_events::get_delayed_events_route; πŸ”’
pub(crate) use self::send_delayed_event::send_delayed_event_route; πŸ”’
pub(crate) use self::update_delayed_event::update_delayed_event_by_body_route; πŸ”’
pub(crate) use self::update_delayed_event::update_delayed_event_route; πŸ”’
use crate::send::check_send_content; πŸ”’
use crate::send::check_send_policy; πŸ”’
use crate::state::allowed_to_send_state_event; πŸ”’
use crate::state::check_member_content_size; πŸ”’

ModulesΒ§

delay_query πŸ”’
get_delayed_event πŸ”’
get_delayed_events πŸ”’
send_delayed_event πŸ”’
update_delayed_event πŸ”’

StructsΒ§

Schedule πŸ”’

EnumsΒ§

Kind πŸ”’

FunctionsΒ§

check_delay πŸ”’
Returns the delay in milliseconds once it is positive and within limits.
check_room_auth πŸ”’
Builds and signs the event against the room’s current state without storing it, refusing one room auth would reject now.
is_stable πŸ”’
schedule πŸ”’
Schedules an event and returns its delay_id.