We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 23c0d663 authored by Craig Andrews's avatar Craig Andrews

Allow for instances as well as class names to be passed as queue handlers and iomanagers.

parent 845f051c
......@@ -102,7 +102,7 @@ abstract class IoMaster
*/
protected function instantiate($class)
{
if (isset($this->singletons[$class])) {
if (is_string($class) && isset($this->singletons[$class])) {
// Already instantiated a multi-site-capable handler.
// Just let it know it should listen to this site too!
$this->singletons[$class]->addSite(common_config('site', 'server'));
......@@ -129,7 +129,11 @@ abstract class IoMaster
protected function getManager($class)
{
return call_user_func(array($class, 'get'));
if(is_object($class)){
return $class;
} else {
return call_user_func(array($class, 'get'));
}
}
/**
......@@ -347,7 +351,7 @@ abstract class IoMaster
* for per-queue and per-site records.
*
* @param string $key counter name
* @param array $owners list of owner keys like 'queue:jabber' or 'site:stat01'
* @param array $owners list of owner keys like 'queue:xmpp' or 'site:stat01'
*/
public function stats($key, $owners=array())
{
......
......@@ -181,7 +181,9 @@ abstract class QueueManager extends IoManager
{
if (isset($this->handlers[$queue])) {
$class = $this->handlers[$queue];
if (class_exists($class)) {
if(is_object($class)) {
return $class;
} else if (class_exists($class)) {
return new $class();
} else {
common_log(LOG_ERR, "Nonexistent handler class '$class' for queue '$queue'");
......@@ -242,7 +244,7 @@ abstract class QueueManager extends IoManager
* Only registered transports will be reliably picked up!
*
* @param string $transport
* @param string $class
* @param string $class class name or object instance
* @param string $group
*/
public function connect($transport, $class, $group='queuedaemon')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment