[−][src]Trait tower_grpc::codegen::server::tower::MakeService
Creates new Service
values.
Acts as a service factory. This is useful for cases where new Service
values must be produced. One case is a TCP servier listener. The listner
accepts new TCP streams, obtains a new Service
value using the
MakeService
trait, and uses that new Service
value to process inbound
requests on that new TCP stream.
This is essentially a trait alias for a Service
of Service
s.
Associated Types
type Response
Responses given by the service
type Error
Errors produced by the service
type Service: Service<Request>
The Service
value created by this factory
type MakeError
Errors produced while building a service.
type Future: Future
The future of the Service
instance.
Required methods
fn poll_ready(&mut self) -> Result<Async<()>, Self::MakeError>
Returns Ready
when the factory is able to process create more services.
If the service is at capacity, then NotReady
is returned and the task
is notified when the service becomes ready again. This function is
expected to be called while on a task.
This is a best effort implementation. False positives are permitted.
It is permitted for the service to return Ready
from a poll_ready
call and the next invocation of call
results in an error.
fn make_service(&mut self, target: Target) -> Self::Future
Create and return a new service value asynchronously.
Implementors
impl<M, S, Target, Request> MakeService<Target, Request> for M where
M: Service<Target, Response = S>,
S: Service<Request>,
[src]
M: Service<Target, Response = S>,
S: Service<Request>,
type Response = <S as Service<Request>>::Response
type Error = <S as Service<Request>>::Error
type Service = S
type MakeError = <M as Service<Target>>::Error
type Future = <M as Service<Target>>::Future
fn poll_ready(
&mut self
) -> Result<Async<()>, <M as MakeService<Target, Request>>::MakeError>
[src]
&mut self
) -> Result<Async<()>, <M as MakeService<Target, Request>>::MakeError>
fn make_service(
&mut self,
target: Target
) -> <M as MakeService<Target, Request>>::Future
[src]
&mut self,
target: Target
) -> <M as MakeService<Target, Request>>::Future