pub struct GrpcSourceProvider<E, EP> { /* private fields */ }
Expand description

Provides a source of gRPC events consumed from a remote producer.

Implementations§

source§

impl<E, EP, EPR> GrpcSourceProvider<E, EP>where EP: Fn() -> EPR, EPR: Future<Output = Result<Channel, Error>>,

source

pub fn new(event_producer_channel: EP, stream_id: StreamId) -> Self

Construct a new source with a closure that is able to construct connections in any way that is required e.g. a secure connection using TLS, or using UDP etc.

source

pub fn with_slice_range( event_producer_channel: EP, stream_id: StreamId, slice_range: Range<u32> ) -> Self

If more than one slice range is required then it can be conveyed here.

source

pub fn with_initial_consumer_filters( self, consumer_filters: Vec<FilterCriteria> ) -> Self

Provide an initial filter, or any empty Vec if none are required. If more filters are required to be sent then Self::consumer_filters can be used to obtain the means to do so.

source

pub fn consumer_filters(&mut self) -> Option<Sender<Vec<FilterCriteria>>>

Obtain the means to send filters dynamically. There can be only one sender, so calls subsequent to the first one will result in None being returned. Additionally, None is returned if no initial filters are declared.

Trait Implementations§

source§

impl<E, EP, EPR> SourceProvider for GrpcSourceProvider<E, EP>where E: Default + Message + Send + Sync, EP: Fn() -> EPR + Send + Sync, EPR: Future<Output = Result<Channel, Error>> + Send,

§

type Envelope = Envelope<E>

The envelope processed by the provider.
source§

fn source<'life0, 'async_trait, F, FR>( &'life0 self, offset: F ) -> Pin<Box<dyn Future<Output = Pin<Box<dyn Stream<Item = Self::Envelope> + Send + 'async_trait>>> + Send + 'async_trait>>where F: Fn() -> FR + Send + Sync + 'async_trait, FR: Future<Output = Option<LastOffset>> + Send + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

Given a closure that returns an offset, source envelopes.
source§

fn load_envelope<'life0, 'async_trait>( &'life0 self, persistence_id: PersistenceId, seq_nr: u64 ) -> Pin<Box<dyn Future<Output = Option<Self::Envelope>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Load a single event on demand. A None is returned if the event for the given persistence_id and seq_nr doesn’t exist.

Auto Trait Implementations§

§

impl<E, EP> !RefUnwindSafe for GrpcSourceProvider<E, EP>

§

impl<E, EP> Send for GrpcSourceProvider<E, EP>where E: Send, EP: Send,

§

impl<E, EP> Sync for GrpcSourceProvider<E, EP>where E: Sync, EP: Sync,

§

impl<E, EP> Unpin for GrpcSourceProvider<E, EP>where E: Unpin, EP: Unpin,

§

impl<E, EP> !UnwindSafe for GrpcSourceProvider<E, EP>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more