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
34
35
36
mod dispatcher;
mod kernel;
mod kernel_ref;
mod mailbox;
mod provider;
mod queue;

use std::sync::mpsc::Sender;

use futures::{Future, Never};

pub use self::kernel_ref::KernelRef;
pub use self::kernel::{Kernel, ActorDock, SysActors};
pub use self::dispatcher::Dispatcher;
pub use self::mailbox::{mailbox, run_mailbox, flush_to_deadletters};
pub use self::mailbox::{Mailbox, MailboxSender, MailboxSchedule, MailboxConfig};
pub use self::provider::{BigBang, create_actor_ref};
pub use self::queue::{queue, QueueWriter, QueueReader};

use protocol::Message;
use actor::{ActorRef, ActorId, BoxActor, BoxActorProd, CreateError};
use system::ActorSystem;

#[allow(dead_code)]
pub enum KernelMsg<Msg: Message> {
    Initialize(ActorSystem<Msg>),

    CreateActor(BoxActorProd<Msg>, String, ActorRef<Msg>, Sender<Result<ActorRef<Msg>, CreateError>>),
    TerminateActor(ActorId),
    RestartActor(ActorId),
    ParkActor(ActorId, Option<BoxActor<Msg>>),
    UnparkActor(ActorId),
    RunFuture(Box<Future<Item=(), Error=Never> + Send>),

    Stop,
}