/** * @return \Luracast\Restler\Data\Response\Response */ protected function respond() { $this->dispatch('respond'); //handle throttling if (Defaults::$throttle) { $elapsed = time() - $this->startTime; if (Defaults::$throttle / 1000.0 > $elapsed) { usleep(1000000.0 * (Defaults::$throttle / 1000.0 - $elapsed)); } } if ($this->responseCode == 401) { $authString = count($this->authClasses) ? Scope::get($this->authClasses[0])->__getWWWAuthenticateString() : 'Unknown'; $this->headerData->set(new HeaderKey('WWW-Authenticate', $authString), false); } $this->dispatch('complete'); $errorException = null; if (!is_null($this->exception)) { $e = $this->exception; if ($e->getCode() >= 500) { if ($e->getMessage() == '') { if (!is_null($this->exception->getPrevious())) { $e = $this->exception->getPrevious(); } } $errorException = $e; } } return new \Luracast\Restler\Data\Response\Response($this->responseData, $this->headerData, $errorException); }