summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/src/Guzzle/Batch/NotifyingBatch.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Batch/NotifyingBatch.php')
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Batch/NotifyingBatch.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Batch/NotifyingBatch.php b/vendor/guzzle/guzzle/src/Guzzle/Batch/NotifyingBatch.php
new file mode 100644
index 0000000..96d04da
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Batch/NotifyingBatch.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Guzzle\Batch;
+
+use Guzzle\Common\Exception\InvalidArgumentException;
+
+/**
+ * BatchInterface decorator used to call a method each time flush is called
+ */
+class NotifyingBatch extends AbstractBatchDecorator
+{
+ /** @var mixed Callable to call */
+ protected $callable;
+
+ /**
+ * @param BatchInterface $decoratedBatch Batch object to decorate
+ * @param mixed $callable Callable to call
+ *
+ * @throws InvalidArgumentException
+ */
+ public function __construct(BatchInterface $decoratedBatch, $callable)
+ {
+ if (!is_callable($callable)) {
+ throw new InvalidArgumentException('The passed argument is not callable');
+ }
+
+ $this->callable = $callable;
+ parent::__construct($decoratedBatch);
+ }
+
+ public function flush()
+ {
+ $items = $this->decoratedBatch->flush();
+ call_user_func($this->callable, $items);
+
+ return $items;
+ }
+}