Struct cdc::rate_limiter::RateLimiter[][src]

pub struct RateLimiter<E> {
    sink: Sender<E>,
    close_tx: AsyncSender<()>,
    state: Arc<State>,
    per_downstream_state: Option<Arc<PerDownstreamState>>,
}

Fields

sink: Sender<E>close_tx: AsyncSender<()>state: Arc<State>per_downstream_state: Option<Arc<PerDownstreamState>>

Implementations

impl<E> RateLimiter<E>[src]

fn new(
    sink: Sender<E>,
    state: Arc<State>,
    close_tx: AsyncSender<()>
) -> RateLimiter<E>
[src]

pub fn send_realtime_event(&self, event: E) -> Result<(), RateLimiterError>[src]

send_realtime_event is suitable for sending messages that cannot be delayed. This function is guaranteed to not block the current thread and returns as soon as possible.

pub async fn send_scan_event(&self, event: E) -> Result<(), RateLimiterError>[src]

send_scan_event is used to send an event from incremental scan. Note that this function is async and may block.

pub fn start_flush(&self)[src]

tells the drainer to flush the underlying sink. It is NOT guaranteed that the drainer will consume all data inside the RateLimiter, but only that the underlying rpc sink will be flushed at least once after the call.

Since we do not use a timer in the drainer, make sure that for any rpc connection, this function is called periodically.

pub fn with_region_id(self, region_id: u64) -> RateLimiter<E>[src]

pub fn close_with_error(&self, event: E) -> Result<(), RateLimiterError>[src]

Trait Implementations

impl<E> Clone for RateLimiter<E>[src]

impl<E> Drop for RateLimiter<E>[src]

Auto Trait Implementations

impl<E> !RefUnwindSafe for RateLimiter<E>

impl<E> Send for RateLimiter<E> where
    E: Send

impl<E> Sync for RateLimiter<E> where
    E: Send

impl<E> Unpin for RateLimiter<E>

impl<E> !UnwindSafe for RateLimiter<E>

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<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[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> 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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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]