. * * @category Network * @package StatusNet * @author Brion Vibber * @copyright 2010 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } class Queued_XMPP extends XMPPHP_XMPP { /** * Reference to the XmppPlugin object we're hooked up to. */ public $plugin; /** * Constructor * * @param XmppPlugin $plugin * @param string $host * @param integer $port * @param string $user * @param string $password * @param string $resource * @param string $server * @param boolean $printlog * @param string $loglevel */ public function __construct($plugin, $host, $port, $user, $password, $resource, $server = null, $printlog = false, $loglevel = null) { $this->plugin = $plugin; parent::__construct($host, $port, $user, $password, $resource, $server, $printlog, $loglevel); // We use $host to connect, but $server to build JIDs if specified. // This seems to fix an upstream bug where $host was used to build // $this->basejid, never seen since it isn't actually used in the base // classes. if (!$server) { $server = $this->host; } $this->basejid = $this->user . '@' . $server; // Normally the fulljid is filled out by the server at resource binding // time, but we need to do it since we're not talking to a real server. $this->fulljid = "{$this->basejid}/{$this->resource}"; } /** * Send a formatted message to the outgoing queue for later forwarding * to a real XMPP connection. * * @param string $msg */ public function send($msg, $timeout=NULL) { $this->plugin->enqueueOutgoingRaw($msg); } //@{ /** * Stream i/o functions disabled; only do output */ public function connect($timeout = 30, $persistent = false, $sendinit = true) { throw new Exception("Can't connect to server from fake XMPP."); } public function disconnect() { throw new Exception("Can't connect to server from fake XMPP."); } public function process() { throw new Exception("Can't read stream from fake XMPP."); } public function processUntil($event, $timeout=-1) { throw new Exception("Can't read stream from fake XMPP."); } public function read() { throw new Exception("Can't read stream from fake XMPP."); } public function readyToProcess() { throw new Exception("Can't read stream from fake XMPP."); } //@} }