Skip to main content

feox_server/pubsub/
mod.rs

1mod handler;
2mod manager;
3mod message;
4mod pattern;
5mod registry;
6
7pub use handler::handle_pubsub_operation;
8pub use manager::ThreadLocalPubSub;
9pub use message::{BroadcastMsg, PubSubMessage};
10pub use pattern::PatternTrie;
11pub use registry::GlobalRegistry;
12
13use std::sync::atomic::AtomicUsize;
14
15pub type ThreadId = usize;
16pub type ConnectionId = usize;
17
18#[derive(Debug, Clone)]
19pub enum SubscriptionType {
20    Channel,
21    Pattern,
22}
23
24pub struct PubSubStats {
25    pub total_channels: AtomicUsize,
26    pub total_patterns: AtomicUsize,
27    pub total_messages: AtomicUsize,
28}
29
30impl PubSubStats {
31    pub fn new() -> Self {
32        Self {
33            total_channels: AtomicUsize::new(0),
34            total_patterns: AtomicUsize::new(0),
35            total_messages: AtomicUsize::new(0),
36        }
37    }
38}
39
40impl Default for PubSubStats {
41    fn default() -> Self {
42        Self::new()
43    }
44}