]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/queuemanager.php
Merge branch 'master' into testing
[quix0rs-gnu-social.git] / lib / queuemanager.php
index 8f8c8f133ffcea17ad51f4f6c8229e5704779e49..1fa3417829a30edbd73aefff9b6b885c9e364e36 100644 (file)
@@ -156,21 +156,14 @@ abstract class QueueManager extends IoManager
     }
 
     /**
-     * Encode an object or variable for queued storage.
-     * Notice objects are currently stored as an id reference;
-     * other items are serialized.
+     * Encode an object for queued storage.
      *
      * @param mixed $item
      * @return string
      */
     protected function encode($item)
     {
-        if ($item instanceof Notice) {
-            // Backwards compat
-            return $item->id;
-        } else {
-            return serialize($item);
-        }
+        return serialize($item);
     }
 
     /**
@@ -182,25 +175,7 @@ abstract class QueueManager extends IoManager
      */
     protected function decode($frame)
     {
-        if (is_numeric($frame)) {
-            // Back-compat for notices...
-            return Notice::staticGet(intval($frame));
-        } elseif (substr($frame, 0, 1) == '<') {
-            // Back-compat for XML source
-            return $frame;
-        } else {
-            // Deserialize!
-            #$old = error_reporting();
-            #error_reporting($old & ~E_NOTICE);
-            $out = unserialize($frame);
-            #error_reporting($old);
-
-            if ($out === false && $frame !== 'b:0;') {
-                common_log(LOG_ERR, "Couldn't unserialize queued frame: $frame");
-                return false;
-            }
-            return $out;
-        }
+        return unserialize($frame);
     }
 
     /**
@@ -213,7 +188,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 {
                 $this->_log(LOG_ERR, "Nonexistent handler class '$class' for queue '$queue'");
@@ -262,15 +239,15 @@ abstract class QueueManager extends IoManager
                 $this->connect('sms', 'SmsQueueHandler');
             }
 
-            // XMPP output handlers...
-            if (common_config('xmpp', 'enabled')) {
-                // Delivery prep, read by queuedaemon.php:
-                $this->connect('jabber', 'JabberQueueHandler');
-                $this->connect('public', 'PublicQueueHandler');
+            // Background user management tasks...
+            $this->connect('deluser', 'DelUserQueueHandler');
+            $this->connect('feedimp', 'FeedImporter');
+            $this->connect('actimp', 'ActivityImporter');
+            $this->connect('acctmove', 'AccountMover');
+            $this->connect('actmove', 'ActivityMover');
 
-                // Raw output, read by xmppdaemon.php:
-                $this->connect('xmppout', 'XmppOutQueueHandler', 'xmpp');
-            }
+            // Broadcasting profile updates to OMB remote subscribers
+            $this->connect('profile', 'ProfileQueueHandler');
 
             // For compat with old plugins not registering their own handlers.
             $this->connect('plugin', 'PluginQueueHandler');
@@ -283,7 +260,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='main')