Gpf_Rpc_MultiRequest::send PHP Method

send() public method

public send ( )
        public function send()
        {
            $request = new Gpf_Rpc_Request($this->serverClassName, Gpf_Rpc_Server::RUN_METHOD);
            if ($this->useNewStyleRequestsEncoding) {
                $request->addParam(Gpf_Rpc_Server::REQUESTS_SHORT, $this->requests);
            } else {
                $request->addParam(Gpf_Rpc_Server::REQUESTS, $this->requests);
            }
            if ($this->sessionId != null) {
                $request->addParam("S", $this->sessionId);
            }
            $requestBody = $this->json->encodeResponse($request);
            $responseText = $this->sendRequest($requestBody);
            if ($this->debugRequests) {
                echo "REQUEST: " . $requestBody . "<br/>";
                echo "RESPONSE: " . $responseText . "<br/><br/>";
            }
            $responseArray = $this->json->decode($responseText);
            if (!is_array($responseArray)) {
                throw new Gpf_Exception("Response decoding failed: not array. Received text: {$responseText}");
            }
            if (count($responseArray) != $this->requests->getCount()) {
                throw new Gpf_Exception("Response decoding failed: Number of responses is not same as number of requests");
            }
            $exception = false;
            foreach ($responseArray as $index => $response) {
                if (is_object($response) && isset($response->e)) {
                    $exception = true;
                    $this->requests->get($index)->setResponseError($response->e);
                } else {
                    $this->requests->get($index)->setResponse($response);
                }
            }
            if ($exception) {
                $messages = '';
                foreach ($this->requests as $request) {
                    $messages .= $request->getResponseError() . "|";
                }
            }
            $this->requests = new Gpf_Rpc_Array();
            if ($exception) {
                throw new Gpf_Rpc_ExecutionException($messages);
            }
        }