| 168 | } |
| 169 | |
| 170 | THandleRef ScheduleRequest(const TMessage& msg, IOnRecv* fallback, TServiceStatRef& ss) override { |
| 171 | TInprocHandleRef hndl(new TInprocHandle(msg, fallback, !ss ? nullptr : new TStatCollector(ss))); |
| 172 | try { |
| 173 | TAutoPtr<TRequest> req(new TRequest(hndl)); |
| 174 | |
| 175 | if (IOnRequest* cb = Find(req->Location)) { |
| 176 | cb->OnRequest(req.Release()); |
| 177 | } else { |
| 178 | throw yexception() << TStringBuf("not found inproc location"); |
| 179 | } |
| 180 | } catch (...) { |
| 181 | hndl->Disable(); |
| 182 | throw; |
| 183 | } |
| 184 | |
| 185 | return THandleRef(hndl.Get()); |
| 186 | } |
| 187 | |
| 188 | TStringBuf Scheme() const noexcept override { |
| 189 | return TStringBuf("inproc"); |