X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fqueuemanager.php;h=74e653e72e61ce575bde0ee692a5d6afbe6832e1;hb=722ff4d9c0cc47b5dda181136e03166eae712e87;hp=bc18e1fc56fe9e39ca6a769c8eec9dcdd46ff599;hpb=220b51d8be61e9bd316567f3ad03fffdbc4b7526;p=quix0rs-gnu-social.git diff --git a/lib/queuemanager.php b/lib/queuemanager.php index bc18e1fc56..74e653e72e 100644 --- a/lib/queuemanager.php +++ b/lib/queuemanager.php @@ -43,6 +43,7 @@ abstract class QueueManager extends IoManager protected $handlers = array(); protected $groups = array(); protected $activeGroups = array(); + protected $ignoredTransports = array(); /** * Factory function to pull the appropriate QueueManager object @@ -181,7 +182,10 @@ abstract class QueueManager extends IoManager // If it is a string, we really store a JSON object in there // except if it begins with '<', because then it is XML. - if (is_string($object) && substr($object, 0, 1) != '<') { + if (is_string($object) && + substr($object, 0, 1) != '<' && + !is_numeric($object)) + { $json = json_decode($object); if ($json === null) { throw new Exception('Bad frame in queue item'); @@ -230,10 +234,8 @@ abstract class QueueManager extends IoManager } else { $this->_log(LOG_ERR, "Nonexistent handler class '$class' for queue '$queue'"); } - } else { - $this->_log(LOG_ERR, "Requested handler for unkown queue '$queue'"); } - return null; + throw new NoQueueHandlerException($queue); } /** @@ -254,6 +256,17 @@ abstract class QueueManager extends IoManager return array_keys($queues); } + function getIgnoredTransports() + { + return array_keys($this->ignoredTransports); + } + + function ignoreTransport($transport) + { + // key is used for uniqueness, value doesn't mean anything + $this->ignoredTransports[$transport] = true; + } + /** * Initialize the list of queue handlers for the current site. *