<?php
/**
- * Laconica, the distributed open-source microblogging tool
+ * StatusNet, the distributed open-source microblogging tool
*
* Abstract class for queue managers
*
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category QueueManager
- * @package Laconica
- * @author Evan Prodromou <evan@controlyourself.ca>
- * @author Sarven Capadisli <csarven@controlyourself.ca>
- * @copyright 2009 Control Yourself, Inc.
+ * @package StatusNet
+ * @author Evan Prodromou <evan@status.net>
+ * @author Sarven Capadisli <csarven@status.net>
+ * @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://laconi.ca/
+ * @link http://status.net/
*/
class QueueManager
{
if (empty(self::$qm)) {
- if (Event::handle('StartNewQueueManager', self::$qm)) {
+ if (Event::handle('StartNewQueueManager', array(&self::$qm))) {
- $type = common_config('queue', 'sub');
+ $enabled = common_config('queue', 'enabled');
+ $type = common_config('queue', 'subsystem');
- switch ($type) {
- case 'db':
- self::$qm = new DBQueueManager();
- break;
- case 'stomp':
- self::$qm = new StompQueueManager();
- break;
- default:
- throw new ServerException("No queue manager class for type '$type'");
+ if (!$enabled) {
+ // does everything immediately
+ self::$qm = new UnQueueManager();
+ } else {
+ switch ($type) {
+ case 'db':
+ self::$qm = new DBQueueManager();
+ break;
+ case 'stomp':
+ self::$qm = new StompQueueManager();
+ break;
+ default:
+ throw new ServerException("No queue manager class for type '$type'");
+ }
}
}
-
- return self::$qm;
}
+
+ return self::$qm;
}
function enqueue($object, $queue)
throw ServerException("Unimplemented function 'enqueue' called");
}
- function peek($queue)
- {
- throw ServerException("Unimplemented function 'peek' called");
- }
-
- function nextItem($queue, $timeout=null)
- {
- throw ServerException("Unimplemented function 'nextItem' called");
- }
-
- function done($object, $queue)
+ function service($queue, $handler)
{
- throw ServerException("Unimplemented function 'done' called");
+ throw ServerException("Unimplemented function 'service' called");
}
}