Example #1
0
 /**
  * {@inheritdoc}
  */
 public function execute(IConnection $connection, &$commands)
 {
     $sizeofPipe = count($commands);
     $values = array();
     foreach ($commands as $command) {
         try {
             $connection->writeCommand($command);
         } catch (CommunicationException $exception) {
             return array_fill(0, $sizeofPipe, $exception);
         }
     }
     for ($i = 0; $i < $sizeofPipe; $i++) {
         $command = $commands[$i];
         unset($commands[$i]);
         try {
             $response = $connection->readResponse($command);
             $values[] = $response instanceof \Iterator ? iterator_to_array($response) : $response;
         } catch (ServerException $exception) {
             $values[] = $exception->toResponseError();
         } catch (CommunicationException $exception) {
             $toAdd = count($commands) - count($values);
             $values = array_merge($values, array_fill(0, $toAdd, $exception));
             break;
         }
     }
     return $values;
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function execute(IConnection $connection, &$commands)
 {
     $sizeofPipe = count($commands);
     $values = array();
     foreach ($commands as $command) {
         $connection->writeCommand($command);
     }
     try {
         for ($i = 0; $i < $sizeofPipe; $i++) {
             $response = $connection->readResponse($commands[$i]);
             $values[] = $response instanceof \Iterator ? iterator_to_array($response) : $response;
             unset($commands[$i]);
         }
     } catch (ServerException $exception) {
         // Force disconnection to prevent protocol desynchronization.
         $connection->disconnect();
         throw $exception;
     }
     return $values;
 }