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>>,
impl<E, EP, EPR> GrpcSourceProvider<E, EP>where EP: Fn() -> EPR, EPR: Future<Output = Result<Channel, Error>>,
sourcepub fn new(event_producer_channel: EP, stream_id: StreamId) -> Self
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.
sourcepub fn with_slice_range(
event_producer_channel: EP,
stream_id: StreamId,
slice_range: Range<u32>
) -> Self
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.
sourcepub fn with_initial_consumer_filters(
self,
consumer_filters: Vec<FilterCriteria>
) -> Self
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.
sourcepub fn consumer_filters(&mut self) -> Option<Sender<Vec<FilterCriteria>>>
pub fn consumer_filters(&mut self) -> Option<Sender<Vec<FilterCriteria>>>
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,
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,
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,
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,
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request