Documentation

Horde_Imap_Client_Cache_Backend_Hashtable extends Horde_Imap_Client_Cache_Backend
in package

A Horde_HashTable implementation for caching IMAP/POP data.

Requires the Horde_HashTable and Horde_Pack packages.

Tags
author

Michael Slusarz slusarz@horde.org

category

Horde

copyright

2013-2017 Horde LLC

license

http://www.horde.org/licenses/lgpl21 LGPL 2.1

since
2.17.0

Table of Contents

CID_SEPARATOR  = '|'
Separator for CID between mailbox and UID.
$_data  : array<string|int, mixed>
The working data for the current pageload. All changes take place to this data.
$_hash  : Horde_HashTable
HashTable object.
$_mbox  : array<string|int, mixed>
Mailbox level data.
$_pack  : Horde_Pack
Horde_Pack singleton object.
$_params  : array<string|int, mixed>
Configuration paramters.
$_update  : array<string|int, mixed>
List of mailbox/UIDs to update.
__construct()  : mixed
Constructor.
__serialize()  : array<string|int, mixed>
__unserialize()  : mixed
clear()  : mixed
Clear the cache.
deleteMailbox()  : mixed
Delete a mailbox from the cache.
deleteMsgs()  : mixed
Delete messages in the cache.
get()  : array<string|int, mixed>
Get information from the cache for a set of UIDs.
getCachedUids()  : array<string|int, mixed>
Get the list of cached UIDs.
getMetaData()  : array<string|int, mixed>
Get metadata information for a mailbox.
save()  : mixed
Updates the cache.
serialize()  : mixed
set()  : mixed
Store data in cache.
setMetaData()  : mixed
Set metadata information for a mailbox.
setParams()  : mixed
Add configuration parameters.
unserialize()  : mixed
_getCid()  : string
Create the unique ID used to store the mailbox data in the cache.
_getMsgCids()  : array<string|int, mixed>
Return a list of cache IDs for mailbox/UID pairs.
_initOb()  : mixed
Initialization tasks.
_loadMailbox()  : mixed
Loads basic mailbox information.
_loadUids()  : mixed
Load UIDs by regenerating from the cache.

Constants

CID_SEPARATOR

Separator for CID between mailbox and UID.

public mixed CID_SEPARATOR = '|'

Properties

$_data

The working data for the current pageload. All changes take place to this data.

protected array<string|int, mixed> $_data = array()

$_hash

HashTable object.

protected Horde_HashTable $_hash

$_mbox

Mailbox level data.

protected array<string|int, mixed> $_mbox = array()

$_pack

Horde_Pack singleton object.

protected Horde_Pack $_pack

$_params

Configuration paramters.

protected array<string|int, mixed> $_params = array()

Values set by the base Cache object: hostspec, port, username

$_update

List of mailbox/UIDs to update.

protected array<string|int, mixed> $_update = array()

Keys are mailboxes. Values are arrays with three possible keys:

  - d: UIDs to delete
  - m: Was metadata updated?
  - u: UIDs to update

Methods

__construct()

Constructor.

public __construct([array<string|int, mixed> $params = array() ]) : mixed
Parameters
$params : array<string|int, mixed> = array()

Configuration parameters:

  - REQUIRED parameters:
    - hashtable: (Horde_HashTable) A HashTable object.

  - Optional Parameters:
    - lifetime: (integer) The lifetime of the cache data (in seconds).
                DEFAULT: 604800 seconds (1 week) [@since 2.19.0]
Return values
mixed

__serialize()

public __serialize() : array<string|int, mixed>
Return values
array<string|int, mixed>

__unserialize()

public __unserialize(array<string|int, mixed> $data) : mixed
Parameters
$data : array<string|int, mixed>
Return values
mixed

clear()

Clear the cache.

public clear(mixed $lifetime) : mixed
Parameters
$lifetime : mixed

Only delete entries older than this (in seconds). If null, deletes all entries.

Return values
mixed

deleteMailbox()

Delete a mailbox from the cache.

public deleteMailbox(mixed $mailbox) : mixed
Parameters
$mailbox : mixed

The mailbox to delete.

Return values
mixed

deleteMsgs()

Delete messages in the cache.

public deleteMsgs(mixed $mailbox, mixed $uids) : mixed
Parameters
$mailbox : mixed

An IMAP mailbox string.

$uids : mixed

The list of message UIDs to delete.

Return values
mixed

get()

Get information from the cache for a set of UIDs.

public get(mixed $mailbox, mixed $uids, mixed $fields, mixed $uidvalid) : array<string|int, mixed>
Parameters
$mailbox : mixed

An IMAP mailbox string.

$uids : mixed

The list of message UIDs to retrieve information for.

$fields : mixed

An array of fields to retrieve. If empty, returns all cached fields.

$uidvalid : mixed

The IMAP uidvalidity value of the mailbox.

Return values
array<string|int, mixed>

An array of arrays with the UID of the message as the key (if found) and the fields as values (will be undefined if not found).

getCachedUids()

Get the list of cached UIDs.

public getCachedUids(mixed $mailbox, mixed $uidvalid) : array<string|int, mixed>
Parameters
$mailbox : mixed

An IMAP mailbox string.

$uidvalid : mixed

The IMAP uidvalidity value of the mailbox.

Return values
array<string|int, mixed>

The (unsorted) list of cached UIDs.

getMetaData()

Get metadata information for a mailbox.

public getMetaData(mixed $mailbox, mixed $uidvalid, mixed $entries) : array<string|int, mixed>
Parameters
$mailbox : mixed

An IMAP mailbox string.

$uidvalid : mixed

The IMAP uidvalidity value of the mailbox.

$entries : mixed

An array of entries to return. If empty, returns all metadata.

Return values
array<string|int, mixed>

The requested metadata. Requested entries that do not exist will be undefined. The following entries are defaults and always present:

  • uidvalid: (integer) The UIDVALIDITY of the mailbox.

save()

Updates the cache.

public save() : mixed
Return values
mixed

serialize()

public serialize() : mixed
Return values
mixed

set()

Store data in cache.

public set(mixed $mailbox, mixed $data, mixed $uidvalid) : mixed
Parameters
$mailbox : mixed

An IMAP mailbox string.

$data : mixed

The list of data to save. The keys are the UIDs, the values are an array of information to save.

$uidvalid : mixed

The IMAP uidvalidity value of the mailbox.

Return values
mixed

setMetaData()

Set metadata information for a mailbox.

public setMetaData(mixed $mailbox, mixed $data) : mixed
Parameters
$mailbox : mixed

An IMAP mailbox string.

$data : mixed

The list of data to save. The keys are the metadata IDs, the values are the associated data. (If present, uidvalidity appears as the 'uidvalid' key in $data.)

Return values
mixed

setParams()

Add configuration parameters.

public setParams([array<string|int, mixed> $params = array() ]) : mixed
Parameters
$params : array<string|int, mixed> = array()

Configuration parameters.

Return values
mixed

unserialize()

public unserialize(mixed $data) : mixed
Parameters
$data : mixed
Return values
mixed

_getCid()

Create the unique ID used to store the mailbox data in the cache.

protected _getCid(string $mailbox) : string
Parameters
$mailbox : string

The mailbox to cache.

Return values
string

The cache ID.

_getMsgCids()

Return a list of cache IDs for mailbox/UID pairs.

protected _getMsgCids(string $mailbox, array<string|int, mixed> $ids) : array<string|int, mixed>
Parameters
$mailbox : string

The mailbox to cache.

$ids : array<string|int, mixed>

The UID list.

Return values
array<string|int, mixed>

List of UIDs => cache IDs.

_initOb()

Initialization tasks.

protected _initOb() : mixed
Return values
mixed

_loadMailbox()

Loads basic mailbox information.

protected _loadMailbox(string $mailbox[, int $uidvalid = null ]) : mixed
Parameters
$mailbox : string

The mailbox to load.

$uidvalid : int = null

The IMAP uidvalidity value of the mailbox.

Return values
mixed

_loadUids()

Load UIDs by regenerating from the cache.

protected _loadUids(string $mailbox, array<string|int, mixed> $uids[, int $uidvalid = null ]) : mixed
Parameters
$mailbox : string

The mailbox to load.

$uids : array<string|int, mixed>

The UIDs to load.

$uidvalid : int = null

The IMAP uidvalidity value of the mailbox.

Return values
mixed

Search results