pub struct ChainedObserverFactory { /* private fields */ }Expand description
观察者链工厂
支持创建多个观察者,按顺序处理事件
§使用场景
- 需要多个观察者协同工作
- 需要按优先级处理事件
- 需要组合不同的观察者功能
§使用示例
ⓘ
use flare_core::server::events::factory::{ChainedObserverFactory, ServerMessageObserverFactory};
let factory1 = Arc::new(MyObserverFactory1::new());
let factory2 = Arc::new(MyObserverFactory2::new());
let chained = ChainedObserverFactory::new()
.add_factory(factory1)
.add_factory(factory2);Implementations§
Source§impl ChainedObserverFactory
impl ChainedObserverFactory
Sourcepub fn add_factory(self, factory: Arc<dyn ServerMessageObserverFactory>) -> Self
pub fn add_factory(self, factory: Arc<dyn ServerMessageObserverFactory>) -> Self
添加工厂到链中
Trait Implementations§
Source§impl Default for ChainedObserverFactory
impl Default for ChainedObserverFactory
Source§impl ServerMessageObserverFactory for ChainedObserverFactory
impl ServerMessageObserverFactory for ChainedObserverFactory
Source§fn create_observer(
&self,
manager: Arc<ConnectionManager>,
parser: MessageParser,
event_handler: Arc<dyn ServerEventHandler>,
connection_id: String,
core_ref: Arc<ServerCoreRef>,
core: Arc<ServerCore>,
) -> Arc<dyn ConnectionObserver> ⓘ
fn create_observer( &self, manager: Arc<ConnectionManager>, parser: MessageParser, event_handler: Arc<dyn ServerEventHandler>, connection_id: String, core_ref: Arc<ServerCoreRef>, core: Arc<ServerCore>, ) -> Arc<dyn ConnectionObserver> ⓘ
为指定连接创建观察者 Read more
Auto Trait Implementations§
impl !RefUnwindSafe for ChainedObserverFactory
impl !UnwindSafe for ChainedObserverFactory
impl Freeze for ChainedObserverFactory
impl Send for ChainedObserverFactory
impl Sync for ChainedObserverFactory
impl Unpin for ChainedObserverFactory
impl UnsafeUnpin for ChainedObserverFactory
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more