Struct momento_protos::cache_client::pubsub::pubsub_server::PubsubServer
source · pub struct PubsubServer<T: Pubsub> { /* private fields */ }
Expand description
For working with topics in a cache. Momento topics are conceptually located on a cache. They are best-effort multicast. To use them, create a cache then start subscribing and publishing!
Momento topic subscriptions try to give you information about the quality of the stream you are receiving. For example, you might miss messages if your network is slow, or if some intermediate switch fails, or due to rate limiting. It is also possible, though we try to avoid it, that messages could briefly come out of order between subscribers. We try to tell you when things like this happen via a Discontinuity in your subscription stream. If you do not care about occasional discontinuities then don’t bother handling them! You might still want to log them just in case ;-)
Implementations§
source§impl<T: Pubsub> PubsubServer<T>
impl<T: Pubsub> PubsubServer<T>
pub fn new(inner: T) -> Self
pub fn from_arc(inner: Arc<T>) -> Self
pub fn with_interceptor<F>( inner: T, interceptor: F ) -> InterceptedService<Self, F>where F: Interceptor,
sourcepub fn accept_compressed(self, encoding: CompressionEncoding) -> Self
pub fn accept_compressed(self, encoding: CompressionEncoding) -> Self
Enable decompressing requests with the given encoding.
sourcepub fn send_compressed(self, encoding: CompressionEncoding) -> Self
pub fn send_compressed(self, encoding: CompressionEncoding) -> Self
Compress responses with the given encoding, if the client supports it.
sourcepub fn max_decoding_message_size(self, limit: usize) -> Self
pub fn max_decoding_message_size(self, limit: usize) -> Self
Limits the maximum size of a decoded message.
Default: 4MB
sourcepub fn max_encoding_message_size(self, limit: usize) -> Self
pub fn max_encoding_message_size(self, limit: usize) -> Self
Limits the maximum size of an encoded message.
Default: usize::MAX
Trait Implementations§
source§impl<T: Pubsub> Clone for PubsubServer<T>
impl<T: Pubsub> Clone for PubsubServer<T>
source§impl<T: Pubsub> NamedService for PubsubServer<T>
impl<T: Pubsub> NamedService for PubsubServer<T>
source§impl<T, B> Service<Request<B>> for PubsubServer<T>where
T: Pubsub,
B: Body + Send + 'static,
B::Error: Into<StdError> + Send + 'static,
impl<T, B> Service<Request<B>> for PubsubServer<T>where T: Pubsub, B: Body + Send + 'static, B::Error: Into<StdError> + Send + 'static,
§type Response = Response<UnsyncBoxBody<Bytes, Status>>
type Response = Response<UnsyncBoxBody<Bytes, Status>>
§type Error = Infallible
type Error = Infallible
§type Future = Pin<Box<dyn Future<Output = Result<<PubsubServer<T> as Service<Request<B>>>::Response, <PubsubServer<T> as Service<Request<B>>>::Error>> + Send, Global>>
type Future = Pin<Box<dyn Future<Output = Result<<PubsubServer<T> as Service<Request<B>>>::Response, <PubsubServer<T> as Service<Request<B>>>::Error>> + Send, Global>>
Auto Trait Implementations§
impl<T> RefUnwindSafe for PubsubServer<T>where T: RefUnwindSafe,
impl<T> Send for PubsubServer<T>
impl<T> Sync for PubsubServer<T>
impl<T> Unpin for PubsubServer<T>
impl<T> UnwindSafe for PubsubServer<T>where T: RefUnwindSafe,
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
source§impl<T, ReqBody, ResBody> GrpcService<ReqBody> for Twhere
T: Service<Request<ReqBody>, Response = Response<ResBody>>,
<T as Service<Request<ReqBody>>>::Error: Into<Box<dyn Error + Send + Sync, Global>>,
ResBody: Body,
<ResBody as Body>::Error: Into<Box<dyn Error + Send + Sync, Global>>,
impl<T, ReqBody, ResBody> GrpcService<ReqBody> for Twhere T: Service<Request<ReqBody>, Response = Response<ResBody>>, <T as Service<Request<ReqBody>>>::Error: Into<Box<dyn Error + Send + Sync, Global>>, ResBody: Body, <ResBody as Body>::Error: Into<Box<dyn Error + Send + Sync, Global>>,
§type ResponseBody = ResBody
type ResponseBody = ResBody
source§fn poll_ready(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<(), <T as GrpcService<ReqBody>>::Error>>
fn poll_ready( &mut self, cx: &mut Context<'_> ) -> Poll<Result<(), <T as GrpcService<ReqBody>>::Error>>
Ready
when the service is able to process requests. Read moresource§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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>
T
in a tonic::Request
§impl<S, R> ServiceExt<R> for Swhere
S: Service<R>,
impl<S, R> ServiceExt<R> for Swhere S: Service<R>,
§fn into_make_service(self) -> IntoMakeService<S>
fn into_make_service(self) -> IntoMakeService<S>
MakeService
, that is a [Service
] whose
response is another service. Read more§impl<T, Request> ServiceExt<Request> for Twhere
T: Service<Request> + ?Sized,
impl<T, Request> ServiceExt<Request> for Twhere T: Service<Request> + ?Sized,
§fn ready(&mut self) -> Ready<'_, Self, Request>where
Self: Sized,
fn ready(&mut self) -> Ready<'_, Self, Request>where Self: Sized,
§fn ready_and(&mut self) -> Ready<'_, Self, Request>where
Self: Sized,
fn ready_and(&mut self) -> Ready<'_, Self, Request>where Self: Sized,
ServiceExt::ready
method instead§fn ready_oneshot(self) -> ReadyOneshot<Self, Request>where
Self: Sized,
fn ready_oneshot(self) -> ReadyOneshot<Self, Request>where Self: Sized,
§fn oneshot(self, req: Request) -> Oneshot<Self, Request>where
Self: Sized,
fn oneshot(self, req: Request) -> Oneshot<Self, Request>where Self: Sized,
Service
, calling with the providing request once it is ready.§fn call_all<S>(self, reqs: S) -> CallAll<Self, S>where
Self: Sized,
Self::Error: Into<Box<dyn Error + Send + Sync, Global>>,
S: Stream<Item = Request>,
fn call_all<S>(self, reqs: S) -> CallAll<Self, S>where Self: Sized, Self::Error: Into<Box<dyn Error + Send + Sync, Global>>, S: Stream<Item = Request>,
§fn and_then<F>(self, f: F) -> AndThen<Self, F>where
Self: Sized,
F: Clone,
fn and_then<F>(self, f: F) -> AndThen<Self, F>where Self: Sized, F: Clone,
poll_ready
method. Read more§fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>where
Self: Sized,
F: FnOnce(Self::Response) -> Response + Clone,
fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>where Self: Sized, F: FnOnce(Self::Response) -> Response + Clone,
poll_ready
method. Read more§fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>where
Self: Sized,
F: FnOnce(Self::Error) -> Error + Clone,
fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>where Self: Sized, F: FnOnce(Self::Error) -> Error + Clone,
poll_ready
method. Read more§fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>where
Self: Sized,
Error: From<Self::Error>,
F: FnOnce(Result<Self::Response, Self::Error>) -> Result<Response, Error> + Clone,
fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>where Self: Sized, Error: From<Self::Error>, F: FnOnce(Result<Self::Response, Self::Error>) -> Result<Response, Error> + Clone,
Result<Self::Response, Self::Error>
)
to a different value, regardless of whether the future succeeds or
fails. Read more