Enum rotor_stream::Accept [] [src]

pub enum Accept<M, A: TryAccept + Sized> where A::Output: StreamSocket, M: Accepted<Socket=A::Output> {
    Server(A, M::Seed),
    Connection(M),
}

Socket acceptor State Machine

TODO(tailhook) Currently this panics when there is no slab space when accepting a connection. This may be fixed by sleeping and retrying

Variants

Server(A, M::Seed)Connection(M)

Methods

impl<M, A> Accept<M, A> where A: TryAccept<Output=M::Socket> + Evented + Any, M: Accepted
[src]

fn new<S: GenericScope>(sock: A, seed: M::Seed, scope: &mut S) -> Response<Self, Void>

Trait Implementations

impl<M, A> Machine for Accept<M, A> where A: TryAccept<Output=M::Socket> + Evented + Any, M: Accepted
[src]

type Context = M::Context

Context type for the state machine Read more

type Seed = (A::Output, M::Seed)

Seed is piece of data that is needed to initialize the machine Read more

fn create((sock, seed): Self::Seed, scope: &mut Scope<Self::Context>) -> Response<Self, Void>

Create a machine from some data Read more

fn ready(self, events: EventSet, scope: &mut Scope<Self::Context>) -> Response<Self, Self::Seed>

Socket readiness notification

fn spawned(self, _scope: &mut Scope<Self::Context>) -> Response<Self, Self::Seed>

Called after spawn event Read more

fn timeout(self, scope: &mut Scope<Self::Context>) -> Response<Self, Self::Seed>

Timeout happened

fn wakeup(self, scope: &mut Scope<Self::Context>) -> Response<Self, Self::Seed>

Message received Read more

fn spawn_error(self, _scope: &mut Scope<Self::Context>, error: SpawnError<Self::Seed>) -> Response<Self, Self::Seed>

Called instead of spawned, if there is no slab space Read more