Struct batch_system::BatchSystem[][src]

pub struct BatchSystem<N: Fsm, C: Fsm> {
    name_prefix: Option<String>,
    router: BatchRouter<N, C>,
    receiver: Receiver<FsmTypes<N, C>>,
    low_receiver: Receiver<FsmTypes<N, C>>,
    pool_size: usize,
    max_batch_size: usize,
    workers: Vec<JoinHandle<()>>,
    reschedule_duration: Duration,
    low_priority_pool_size: usize,
}

A system that can poll FSMs concurrently and in batch.

To use the system, two type of FSMs and their PollHandlers need to be defined: Normal and Control. Normal FSM handles the general task while Control FSM creates normal FSM instances.

Fields

name_prefix: Option<String>router: BatchRouter<N, C>receiver: Receiver<FsmTypes<N, C>>low_receiver: Receiver<FsmTypes<N, C>>pool_size: usizemax_batch_size: usizeworkers: Vec<JoinHandle<()>>reschedule_duration: Durationlow_priority_pool_size: usize

Implementations

impl<N, C> BatchSystem<N, C> where
    N: Fsm + Send + 'static,
    C: Fsm + Send + 'static, 
[src]

pub fn router(&self) -> &BatchRouter<N, C>[src]

fn start_poller<B>(&mut self, name: String, priority: Priority, builder: &mut B) where
    B: HandlerBuilder<N, C>,
    B::Handler: Send + 'static, 
[src]

pub fn spawn<B>(&mut self, name_prefix: String, builder: B) where
    B: HandlerBuilder<N, C>,
    B::Handler: Send + 'static, 
[src]

Start the batch system.

pub fn shutdown(&mut self)[src]

Shutdown the batch system and wait till all background threads exit.

Auto Trait Implementations

impl<N, C> !RefUnwindSafe for BatchSystem<N, C>

impl<N, C> Send for BatchSystem<N, C> where
    C: Send,
    N: Send

impl<N, C> !Sync for BatchSystem<N, C>

impl<N, C> Unpin for BatchSystem<N, C>

impl<N, C> !UnwindSafe for BatchSystem<N, C>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]