public function renderRequest(Connection_Request_Interface $request) { $result = array(); $result["method"] = $request->getMethod(); if (!$request->isScalarParameter()) { $result["param"] = $this->prepareFieldNames($request->getParameters()); } else { $result["param"] = $request->getScalarParameter(); } $result = array_merge($result, $request->getHeaders()); return $this->renderMap($result); }
public function invoke(Connection_Request_Interface $request) { if ($this->state != Connection_State::$established) { $this->connect(); } if (!$request->isValid()) { throw new Entities_Validator_Exception(sprintf("Request %s validation failed!", get_class($request))); } if ($request->isAuthRequired()) { $request->setHeader(Connection_Request_Headers::$login, $this->_login); $request->setHeader(Connection_Request_Headers::$authToken, $this->_authToken); $request->setHeader(Connection_Request_Headers::$applicationId, $this->_applicationId); } $data = $this->prepareRequest($request); Utils::log(sprintf("Sending data on gateway: %s", $data)); $status = fwrite($this->_socket, $data . "\n"); if (!$status) { throw new Connection_Exception(sprintf("Method %s invocation failed!", $request->getMethod())); } $responseBody = fread($this->_socket, 4096); Utils::log(sprintf("Received response body: \n %s", $responseBody)); $this->disconnect(); return $this->getProtocol()->hydrateResponse($request, $responseBody); }