diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2019-11-17 20:45:02 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2019-11-17 20:45:02 +0100 |
commit | 8df3db566a3a937b45ebf11adb90d265e6f5e2d4 (patch) | |
tree | 4d541098d751d5a9acf8c12f6fb9f308ace066ac /vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php | |
download | flyspray-8df3db566a3a937b45ebf11adb90d265e6f5e2d4.tar.xz |
initial checking of customized version 1.0rc9
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php')
-rw-r--r-- | vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php new file mode 100644 index 0000000..9cbf1ab --- /dev/null +++ b/vendor/guzzle/guzzle/src/Guzzle/Batch/BatchClosureTransfer.php @@ -0,0 +1,40 @@ +<?php + +namespace Guzzle\Batch; + +use Guzzle\Common\Exception\InvalidArgumentException; + +/** + * Batch transfer strategy where transfer logic can be defined via a Closure. + * This class is to be used with {@see Guzzle\Batch\BatchInterface} + */ +class BatchClosureTransfer implements BatchTransferInterface +{ + /** @var callable A closure that performs the transfer */ + protected $callable; + + /** @var mixed $context Context passed to the callable */ + protected $context; + + /** + * @param mixed $callable Callable that performs the transfer. This function should accept two arguments: + * (array $batch, mixed $context). + * @param mixed $context Optional context to pass to the batch divisor + * + * @throws InvalidArgumentException + */ + public function __construct($callable, $context = null) + { + if (!is_callable($callable)) { + throw new InvalidArgumentException('Argument must be callable'); + } + + $this->callable = $callable; + $this->context = $context; + } + + public function transfer(array $batch) + { + return empty($batch) ? null : call_user_func($this->callable, $batch, $this->context); + } +} |