Struct transaction_pool::Pool[][src]

pub struct Pool<T: VerifiedTransaction, S: Scoring<T>, L = NoopListener> { /* fields omitted */ }

A transaction pool.

Methods

impl<T: VerifiedTransaction, S: Scoring<T> + Default> Pool<T, S>
[src]

Creates a new Pool with given options and default Scoring and Listener.

impl<T: VerifiedTransaction, S: Scoring<T>> Pool<T, S>
[src]

Creates a new Pool with given Scoring and options.

impl<T, S, L> Pool<T, S, L> where
    T: VerifiedTransaction,
    S: Scoring<T>,
    L: Listener<T>, 
[src]

Creates new Pool with given Scoring, Listener and options.

Attempts to import new transaction to the pool, returns a Arc<T> or an Error.

NOTE: Since Readyness is separate from the pool it's possible to import stalled transactions. It's the caller responsibility to make sure that's not the case.

NOTE: The transaction may push out some other transactions from the pool either because of limits (see Options) or because Scoring decides that the transaction replaces an existing transaction from that sender. If any limit is reached the transaction with the lowest Score is evicted to make room.

The Listener will be informed on any drops or rejections.

Clears pool from all transactions. This causes a listener notification that all transactions were dropped. NOTE: the drop-notification order will be arbitrary.

Removes single transaction from the pool. Depending on the is_invalid flag the listener will either get a cancelled or invalid notification.

Removes all stalled transactions from given sender list (or from all senders).

Returns a transaction if it's part of the pool or None otherwise.

Returns worst transaction in the queue (if any).

Returns true if the pool is at it's capacity.

Returns senders ordered by priority of their transactions.

Important traits for PendingIterator<'a, T, R, S, L>

Returns an iterator of pending (ready) transactions.

Important traits for PendingIterator<'a, T, R, S, L>

Returns pending (ready) transactions from given sender.

Important traits for UnorderedIterator<'a, T, R, S>

Returns unprioritized list of ready transactions.

Update score of transactions of a particular sender.

Computes the full status of the pool (including readiness).

Returns light status of the pool.

Returns current pool options.

Important traits for &'a mut R

Borrows listener instance.

Important traits for &'a mut R

Borrows scoring instance.

Important traits for &'a mut R

Borrows listener mutably.

Trait Implementations

impl<T: Debug + VerifiedTransaction, S: Debug + Scoring<T>, L: Debug> Debug for Pool<T, S, L> where
    T::Sender: Debug,
    T::Hash: Debug,
    S::Score: Debug
[src]

Formats the value using the given formatter. Read more

impl<T: VerifiedTransaction, S: Scoring<T> + Default> Default for Pool<T, S>
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl<T, S, L> Send for Pool<T, S, L> where
    L: Send,
    S: Send,
    T: Send + Sync,
    <T as VerifiedTransaction>::Hash: Send,
    <S as Scoring<T>>::Score: Send,
    <T as VerifiedTransaction>::Sender: Send

impl<T, S, L> Sync for Pool<T, S, L> where
    L: Sync,
    S: Sync,
    T: Send + Sync,
    <T as VerifiedTransaction>::Hash: Sync,
    <S as Scoring<T>>::Score: Sync,
    <T as VerifiedTransaction>::Sender: Sync