28 template <
typename Req,
typename Resp = Req>
37 void read(Context* ctx,
Req in)
override {
38 auto resp = (*service_)(
std::move(in)).
get();
51 template <
typename Req,
typename Resp = Req>
61 auto requestId = requestId_++;
62 (*service_)(
std::move(in)).then([requestId,
this](Resp& resp){
63 responses_[requestId] = resp;
69 auto search = responses_.find(lastWrittenId_+1);
70 while (search != responses_.end()) {
72 responses_.erase(search->first);
75 search = responses_.find(lastWrittenId_+1);
93 template <
typename Req,
typename Resp = Req>
103 (*service_)(
std::move(in)).thenValue([ctx](Resp resp) {
MultiplexServerDispatcher(Service< Req, Resp > *service)
std::unordered_map< uint32_t, Resp > responses_
virtual folly::Future< folly::Unit > fireWrite(Out msg)=0
constexpr detail::Map< Move > move
PipelinedServerDispatcher(Service< Req, Resp > *service)
void read(Context *ctx, Req in) override
void read(Context *ctx, Req in) override
void read(Context *, Req in) override
HandlerContext< Req, Resp > * getContext()
HandlerAdapter< Req, Resp >::Context Context
Service< Req, Resp > * service_
HandlerAdapter< Req, Resp >::Context Context
SerialServerDispatcher(Service< Req, Resp > *service)
Service< Req, Resp > * service_
HandlerAdapter< Req, Resp >::Context Context
Service< Req, Resp > * service_