Example #1
0
 /**
  * @param RequestInterface $request
  *
  * @return PromiseInterface
  */
 public function sendRequest(RequestInterface $request)
 {
     if (isset($this->promises[$request->getRequestId()])) {
         return promise\reject(new ClientException("ID {$request->getRequestId()} already in use"));
     }
     $this->responseBuilders[$request->getRequestId()] = new ResponseParser($request->getRequestId());
     $this->promises[$request->getRequestId()] = new Deferred();
     foreach ($request->toRecords() as $record) {
         $this->connector->write($record->encode());
     }
     return $this->promises[$request->getRequestId()]->promise();
 }