Source for file LinkedCacheSet.php
Documentation is available at LinkedCacheSet.php
* Data Structures for PHP similar to Java's HashSet and LinkedHashSet. Uses
* memcached as a storage mechanism for persisting set data beyond the scope of
* Requires: {@link http://www.php.net/ PHP 5},
* {@link http://www.danga.com/memcached/ memcached} and
* {@link http://pecl.php.net/memcache pecl_memcache}
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* @category HighPerformance
* @copyright Coypright (c) 2008 Jeff Trudeau
* @license http://www.opensource.org/licenses/mit-license.php MIT License
require_once(dirname(__FILE__
) .
'/CacheSet.php');
* Quasi-equivalent (superior in some repects) to Java's LinkedHashSet. Uses
* memcached as a storage mechanism for persisting set data beyond the scope of
* Adds the specified element to the end of the set. The internal pointer
* is updated to the position of the element (last in the set).
public function add($value) {
* Returns the element referenced by the internal pointer, or null if there
* is no element at the current position.
* Deletes and returns the specified element from the set, or returns null
* if the element does not exist. The internal pointer is updated to the
* first element in the set.
public function delete($key) {
$value =
parent::delete($key);
* Updates the internal pointer to the first element in the set and returns
* that element, or false if the set is empty.
public function first() {
* Updates the internal pointer to the last element in the set and returns
* that element, or false if the set is empty.
* Moves the internal pointer by a magnitude of $delta. The default is to
* move the pointer in a forward direction.
* @param boolean $forward = true
protected function move($delta, $forward =
true) {
for ($i =
0; $i <
$delta; $i++
) {
* Updates the internal pointer to the next element in the set and returns
* that element, or false if there is no element at that location.
* Updates the internal pointer to the previous element in the set and
* returns that element, or false if there is no element at that location.
* Updates the internal pointer to the specified element in the set and
* returns that element, or returns false if key does not exist.
public function seek($key) {
if ($index <
$keyIndex) {
$this->move($keyIndex -
$index);
else if ($index >
$keyIndex) {
$this->move($index -
$keyIndex, false);
* Updates the specified element's value within the set. The internal
* pointer is updated to the position of the element.
public function set($key, $value) {
parent::set($key, $value);
Documentation generated on Thu, 14 Feb 2008 09:14:28 -0500 by phpDocumentor 1.4.1