You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
synctv/synctv-realtime/src/sync/mod.rs

52 lines
1.6 KiB
Rust

mod backpressure;
mod connection_manager;
mod dedup;
mod events;
mod realtime_manager;
mod redis_pubsub;
mod room_hub;
mod runtime;
pub(crate) mod stream_id;
mod transport;
use std::sync::Arc;
use synctv_core::RedisCoordinationRuntime;
pub use backpressure::{BufferPressure, PublishBackpressure};
pub use connection_manager::{
ConnectionInfo, ConnectionLimits, ConnectionLimitsOptions, ConnectionManager,
ConnectionMetrics, DisconnectSignal, VoiceRtcJoinOutcome,
};
pub use dedup::{DedupKey, MessageDeduplicator};
pub use realtime_manager::{
BroadcastResult, RealtimeConfig, RealtimeManager, RealtimeManagerRuntime, RealtimeMetrics,
};
pub use redis_pubsub::{
is_sentinel_failover_error, PublishRequest, RedisPubSub, RedisPubSubConfig,
RedisRealtimeMessageTransportFactory,
};
pub use room_hub::{ConnectionId, RoomLifecycleEvent, RoomMessageHub, Subscriber};
pub use runtime::{
build_connection_manager, build_connection_runtime, build_room_message_runtime,
ConnectionRuntime, RoomMessageRuntime,
};
pub use synctv_core::models::{
CacheTarget, NotificationLevel, RealtimeDeliveryRoute, RealtimeEvent, WebRTCSignalKind,
};
pub use transport::{
RealtimeEventHandler, RealtimeMessageTransport, RealtimeMessageTransportConfig,
RealtimeMessageTransportFactory, RealtimeMessageTransportRuntime,
};
pub type SharedRealtimeEvent = Arc<RealtimeEvent>;
#[must_use]
pub fn build_realtime_message_transport_factory(
runtime: Arc<dyn RedisCoordinationRuntime>,
) -> Arc<dyn RealtimeMessageTransportFactory> {
Arc::new(redis_pubsub::RedisRealtimeMessageTransportFactory::new(
runtime,
))
}