summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
Diffstat (limited to 'program')
-rw-r--r--program/lib/Roundcube/rcube_result_set.php47
1 files changed, 35 insertions, 12 deletions
diff --git a/program/lib/Roundcube/rcube_result_set.php b/program/lib/Roundcube/rcube_result_set.php
index 1391e5e4b..a4b070e28 100644
--- a/program/lib/Roundcube/rcube_result_set.php
+++ b/program/lib/Roundcube/rcube_result_set.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2011, The Roundcube Dev Team |
+ | Copyright (C) 2006-2013, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -17,20 +17,22 @@
*/
/**
- * Roundcube result set class.
+ * Roundcube result set class
+ *
* Representing an address directory result set.
+ * Implenets Iterator and thus be used in foreach() loops.
*
* @package Framework
* @subpackage Addressbook
*/
-class rcube_result_set
+class rcube_result_set implements Iterator
{
- var $count = 0;
- var $first = 0;
- var $current = 0;
- var $searchonly = false;
- var $records = array();
+ public $count = 0;
+ public $first = 0;
+ public $searchonly = false;
+ public $records = array();
+ private $current = 0;
function __construct($c=0, $f=0)
{
@@ -51,18 +53,39 @@ class rcube_result_set
function first()
{
$this->current = 0;
- return $this->records[$this->current++];
+ return $this->records[$this->current];
+ }
+
+ function seek($i)
+ {
+ $this->current = $i;
+ }
+
+ /*** PHP 5 Iterator interface ***/
+
+ function rewind()
+ {
+ $this->current = 0;
+ }
+
+ function current()
+ {
+ return $this->records[$this->current];
+ }
+
+ function key()
+ {
+ return $this->current;
}
- // alias for iterate()
function next()
{
return $this->iterate();
}
- function seek($i)
+ function valid()
{
- $this->current = $i;
+ return isset($this->records[$this->current]);
}
}