/** * {@inheritdoc} */ public function call(Identity $identity, Request $request) { $this->dispatcher->dispatch(CallEvent::NAME, new CallEvent($identity, $request)); $promise = $this->driver->call($identity, $request); return new Promise(function ($timeout) use($identity, $request, $promise) { $response = $promise->resolve($timeout); $this->dispatcher->dispatch(ReplyEvent::NAME, new ReplyEvent($identity, $request, $response)); return $response; }); }
/** * {@inheritdoc} */ public function call(Identity $identity, Request $request) { $this->logger->debug('Call "%method%" to service "%service%"', ['service' => $identity->getName(), 'request_method' => $request->getMethod(), 'request_arguments' => $request->getArguments(), 'request_headers' => $request->getHeaders(), 'driver' => get_class($this->driver)]); $promise = $this->driver->call($identity, $request); return new Promise(function ($timeout) use($identity, $request, $promise) { $response = $promise->resolve($timeout); $this->logger->debug('Response from "%service%"', ['service' => $identity->getName(), 'request_method' => $request->getMethod(), 'response_value' => $response->getValue(), 'response_headers' => $response->getHeaders(), 'driver' => get_class($this->driver)]); return $response; }); }
/** * {@inheritdoc} */ public function call(RequestInterface $request) { return $this->driver->call($this->identity, Request::cast($request)); }
/** * {@inheritdoc} */ public function call(Identity $identity, Request $request) { return $this->syncDriver->call($identity, $request); }