feox_server/pubsub/
mod.rs1mod 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}