diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-16 10:04:05 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-16 10:04:05 +0100 |
commit | bbaf97ca43e9a9a95f924b0bdf15e975bc0b0eb0 (patch) | |
tree | 0eed1794b5db8270b59126e930d06ab967986811 /lib | |
parent | 69277736483ad3352f82ba882977e3767884ac49 (diff) | |
parent | 4ffca58bc4d10ce2d7b63790813ab448c198c23f (diff) | |
download | nextcloud-server-bbaf97ca43e9a9a95f924b0bdf15e975bc0b0eb0.tar.gz nextcloud-server-bbaf97ca43e9a9a95f924b0bdf15e975bc0b0eb0.zip |
Merge pull request #14644 from owncloud/trash-expire-command
Expire files from the trash in the background
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/command/queuebus.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/private/command/queuebus.php b/lib/private/command/queuebus.php new file mode 100644 index 00000000000..29c769e0107 --- /dev/null +++ b/lib/private/command/queuebus.php @@ -0,0 +1,53 @@ +<?php +/** + * Copyright (c) 2015 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Command; + +use OCP\Command\IBus; +use OCP\Command\ICommand; + +class QueueBus implements IBus { + /** + * @var (ICommand|callable)[] + */ + private $queue; + + /** + * Schedule a command to be fired + * + * @param \OCP\Command\ICommand | callable $command + */ + public function push($command) { + $this->queue[] = $command; + } + + /** + * Require all commands using a trait to be run synchronous + * + * @param string $trait + */ + public function requireSync($trait) { + } + + /** + * @param \OCP\Command\ICommand | callable $command + */ + private function runCommand($command) { + if ($command instanceof ICommand) { + $command->handle(); + } else { + $command(); + } + } + + public function run() { + while ($command = array_shift($this->queue)) { + $this->runCommand($command); + } + } +} |