$successfulRequests
$successfulRequests :
Exception thrown when transferring commands in parallel
addSuccessfulRequest(\Guzzle\Http\Message\RequestInterface $request) : self
Add to the array of successful requests
\Guzzle\Http\Message\RequestInterface | $request | Successful request |
addFailedRequest(\Guzzle\Http\Message\RequestInterface $request) : self
Add to the array of failed requests
\Guzzle\Http\Message\RequestInterface | $request | Failed request |
addFailedRequestWithException(\Guzzle\Http\Message\RequestInterface $request, \Exception $exception) : self
Add to the array of failed requests and associate with exceptions
\Guzzle\Http\Message\RequestInterface | $request | Failed request |
\Exception | $exception | Exception to add and associate with |
getExceptionForFailedRequest(\Guzzle\Http\Message\RequestInterface $request) : \Exception|null
Get the Exception that caused the given $request to fail
\Guzzle\Http\Message\RequestInterface | $request | Failed command |
containsRequest(\Guzzle\Http\Message\RequestInterface $request) : boolean
Check if the exception object contains a request
\Guzzle\Http\Message\RequestInterface | $request | Request to check |
add(\Guzzle\Common\Exception\ExceptionCollection|\Exception $e) : \Guzzle\Common\Exception\ExceptionCollection;
Add exceptions to the collection
\Guzzle\Common\Exception\ExceptionCollection|\Exception | $e | Exception to add |
fromMultiTransferException(\Guzzle\Http\Exception\MultiTransferException $e) : self
Creates a new CommandTransferException from a MultiTransferException
\Guzzle\Http\Exception\MultiTransferException | $e | Exception to base a new exception on |
addSuccessfulCommand(\Guzzle\Service\Command\CommandInterface $command) : self
Add to the array of successful commands
\Guzzle\Service\Command\CommandInterface | $command | Successful command |
addFailedCommand(\Guzzle\Service\Command\CommandInterface $command) : self
Add to the array of failed commands
\Guzzle\Service\Command\CommandInterface | $command | Failed command |
getExceptionForFailedCommand(\Guzzle\Service\Command\CommandInterface $command) : \Exception|null
Get the Exception that caused the given $command to fail
\Guzzle\Service\Command\CommandInterface | $command | Failed command |
<?php
namespace Guzzle\Service\Exception;
use Guzzle\Http\Exception\MultiTransferException;
use Guzzle\Service\Command\CommandInterface;
/**
* Exception thrown when transferring commands in parallel
*/
class CommandTransferException extends MultiTransferException
{
protected $successfulCommands = array();
protected $failedCommands = array();
/**
* Creates a new CommandTransferException from a MultiTransferException
*
* @param MultiTransferException $e Exception to base a new exception on
*
* @return self
*/
public static function fromMultiTransferException(MultiTransferException $e)
{
$ce = new self($e->getMessage(), $e->getCode(), $e->getPrevious());
$ce->setSuccessfulRequests($e->getSuccessfulRequests());
$alreadyAddedExceptions = array();
foreach ($e->getFailedRequests() as $request) {
if ($re = $e->getExceptionForFailedRequest($request)) {
$alreadyAddedExceptions[] = $re;
$ce->addFailedRequestWithException($request, $re);
} else {
$ce->addFailedRequest($request);
}
}
// Add any exceptions that did not map to a request
if (count($alreadyAddedExceptions) < count($e)) {
foreach ($e as $ex) {
if (!in_array($ex, $alreadyAddedExceptions)) {
$ce->add($ex);
}
}
}
return $ce;
}
/**
* Get all of the commands in the transfer
*
* @return array
*/
public function getAllCommands()
{
return array_merge($this->successfulCommands, $this->failedCommands);
}
/**
* Add to the array of successful commands
*
* @param CommandInterface $command Successful command
*
* @return self
*/
public function addSuccessfulCommand(CommandInterface $command)
{
$this->successfulCommands[] = $command;
return $this;
}
/**
* Add to the array of failed commands
*
* @param CommandInterface $command Failed command
*
* @return self
*/
public function addFailedCommand(CommandInterface $command)
{
$this->failedCommands[] = $command;
return $this;
}
/**
* Get an array of successful commands
*
* @return array
*/
public function getSuccessfulCommands()
{
return $this->successfulCommands;
}
/**
* Get an array of failed commands
*
* @return array
*/
public function getFailedCommands()
{
return $this->failedCommands;
}
/**
* Get the Exception that caused the given $command to fail
*
* @param CommandInterface $command Failed command
*
* @return \Exception|null
*/
public function getExceptionForFailedCommand(CommandInterface $command)
{
return $this->getExceptionForFailedRequest($command->getRequest());
}
}