1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use crate::actors::actor_ref_factory::ActorRefFactory;
use crate::actors::abstract_actor_ref::ActorRef;
use crate::actors::watcher::WatchingEvents;
use crate::actors::scheduler::Scheduler;
use crate::actors::dispatcher::Dispatcher;
use crate::common::tsafe::TSafe;
use crate::executors::executor::Executor;
pub trait AbstractActorSystem: ActorRefFactory {
fn get_scheduler(&self) -> TSafe<Scheduler>;
fn register_watch_event(&self, from: &ActorRef, event: WatchingEvents);
fn terminate(&mut self);
fn add_dispatcher(&mut self, name: &str, dispatcher: TSafe<Dispatcher + Send>);
fn get_dispatcher(&self, name: &str) -> TSafe<Dispatcher + Send>;
fn get_executor(&self, name: &str) -> TSafe<Executor + Send>;
}