summaryrefslogtreecommitdiff
path: root/_darcs/pristine/extlib/XMPPHP/Roster.php
diff options
context:
space:
mode:
Diffstat (limited to '_darcs/pristine/extlib/XMPPHP/Roster.php')
-rw-r--r--_darcs/pristine/extlib/XMPPHP/Roster.php163
1 files changed, 0 insertions, 163 deletions
diff --git a/_darcs/pristine/extlib/XMPPHP/Roster.php b/_darcs/pristine/extlib/XMPPHP/Roster.php
deleted file mode 100644
index 2e459e2a2..000000000
--- a/_darcs/pristine/extlib/XMPPHP/Roster.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/**
- * XMPPHP: The PHP XMPP Library
- * Copyright (C) 2008 Nathanael C. Fritz
- * This file is part of SleekXMPP.
- *
- * XMPPHP is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * XMPPHP is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XMPPHP; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * @category xmpphp
- * @package XMPPHP
- * @author Nathanael C. Fritz <JID: fritzy@netflint.net>
- * @author Stephan Wentz <JID: stephan@jabber.wentz.it>
- * @author Michael Garvin <JID: gar@netflint.net>
- * @copyright 2008 Nathanael C. Fritz
- */
-
-/**
- * XMPPHP Roster Object
- *
- * @category xmpphp
- * @package XMPPHP
- * @author Nathanael C. Fritz <JID: fritzy@netflint.net>
- * @author Stephan Wentz <JID: stephan@jabber.wentz.it>
- * @author Michael Garvin <JID: gar@netflint.net>
- * @copyright 2008 Nathanael C. Fritz
- * @version $Id$
- */
-
-class Roster {
- /**
- * Roster array, handles contacts and presence. Indexed by jid.
- * Contains array with potentially two indexes 'contact' and 'presence'
- * @var array
- */
- protected $roster_array = array();
- /**
- * Constructor
- *
- */
- public function __construct($roster_array = array()) {
- if ($this->verifyRoster($roster_array)) {
- $this->roster_array = $roster_array; //Allow for prepopulation with existing roster
- } else {
- $this->roster_array = array();
- }
- }
-
- /**
- *
- * Check that a given roster array is of a valid structure (empty is still valid)
- *
- * @param array $roster_array
- */
- protected function verifyRoster($roster_array) {
- #TODO once we know *what* a valid roster array looks like
- return True;
- }
-
- /**
- *
- * Add given contact to roster
- *
- * @param string $jid
- * @param string $subscription
- * @param string $name
- * @param array $groups
- */
- public function addContact($jid, $subscription, $name='', $groups=array()) {
- $contact = array('jid' => $jid, 'subscription' => $subscription, 'name' => $name, 'groups' => $groups);
- if ($this->isContact($jid)) {
- $this->roster_array[$jid]['contact'] = $contact;
- } else {
- $this->roster_array[$jid] = array('contact' => $contact);
- }
- }
-
- /**
- *
- * Retrieve contact via jid
- *
- * @param string $jid
- */
- public function getContact($jid) {
- if ($this->isContact($jid)) {
- return $this->roster_array[$jid]['contact'];
- }
- }
-
- /**
- *
- * Discover if a contact exists in the roster via jid
- *
- * @param string $jid
- */
- public function isContact($jid) {
- return (array_key_exists($jid, $this->roster_array));
- }
-
- /**
- *
- * Set presence
- *
- * @param string $presence
- * @param integer $priority
- * @param string $show
- * @param string $status
- */
- public function setPresence($presence, $priority, $show, $status) {
- list($jid, $resource) = split("/", $presence);
- if ($show != 'unavailable') {
- if (!$this->isContact($jid)) {
- $this->addContact($jid, 'not-in-roster');
- }
- $resource = $resource ? $resource : '';
- $this->roster_array[$jid]['presence'][$resource] = array('priority' => $priority, 'show' => $show, 'status' => $status);
- } else { //Nuke unavailable resources to save memory
- unset($this->roster_array[$jid]['resource'][$resource]);
- }
- }
-
- /*
- *
- * Return best presence for jid
- *
- * @param string $jid
- */
- public function getPresence($jid) {
- $split = split("/", $jid);
- $jid = $split[0];
- if($this->isContact($jid)) {
- $current = array('resource' => '', 'active' => '', 'priority' => -129, 'show' => '', 'status' => ''); //Priorities can only be -128 = 127
- foreach($this->roster_array[$jid]['presence'] as $resource => $presence) {
- //Highest available priority or just highest priority
- if ($presence['priority'] > $current['priority'] and (($presence['show'] == "chat" or $presence['show'] == "available") or ($current['show'] != "chat" or $current['show'] != "available"))) {
- $current = $presence;
- $current['resource'] = $resource;
- }
- }
- return $current;
- }
- }
- /**
- *
- * Get roster
- *
- */
- public function getRoster() {
- return $this->roster_array;
- }
-}
-?>