rcube_imap_cache

Interface class for accessing Roundcube messages cache

package

Framework

subpackage

Storage

author

Thomas Bruederli roundcube@gmail.com

author

Aleksander Machniak alec@alec.pl

Methods

Object constructor.

__construct(\rcube_db $db, \rcube_imap $imap, integer $userid, boolean $skip_deleted, string $ttl, integer $threshold) 

Arguments

$db

\rcube_db

DB handler

$imap

\rcube_imap

IMAP handler

$userid

integer

User identifier

$skip_deleted

boolean

skip_deleted flag

$ttl

string

Expiration time of memcache/apc items

$threshold

integer

Maximum cached message size

Saves index data into database

add_index_row( $mailbox,  $sort_field,  $data,  $mbox_data = array(),  $exists = false,  $modseq = null) 

Arguments

$mailbox

$sort_field

$data

$mbox_data

$exists

$modseq

Saves the message in cache.

add_message(string $mailbox, \rcube_message_header $message, boolean $force = false) 

Arguments

$mailbox

string

Folder name

$message

\rcube_message_header

Message data

$force

boolean

Skips message in-cache existance check

Saves thread data into database

add_thread_row( $mailbox,  $data,  $mbox_data = array(),  $exists = false) 

Arguments

$mailbox

$data

$mbox_data

$exists

Converts cache row into message object.

build_message(array $sql_arr) : \rcube_message_header

Arguments

$sql_arr

array

Message row data

Response

\rcube_message_header

Message object

Sets the flag for specified message.

change_flag(string $mailbox, array $uids, string $flag, boolean $enabled = false) 

Arguments

$mailbox

string

Folder name

$uids

array

Message UIDs or null to change flag of all messages in a folder

$flag

string

The name of the flag

$enabled

boolean

Flag state

Clears the cache.

clear(string $mailbox = null, array $uids = null) 

Arguments

$mailbox

string

Folder name

$uids

array

Message UIDs, NULL removes all messages in a folder

Cleanup actions (on shutdown).

close() 

Delete expired cache entries

gc() 
static

Return (sorted) messages index (UIDs).

get_index(string $mailbox, string $sort_field = null, string $sort_order = null,  $existing = false) : array

If index doesn't exist or is invalid, will be updated.

Arguments

$mailbox

string

Folder name

$sort_field

string

Sorting column

$sort_order

string

Sorting order (ASC|DESC)

$existing

Response

array

Messages index

Fetches index data from IMAP server

get_index_data( $mailbox,  $sort_field,  $sort_order,  $mbox_data = array()) 

Arguments

$mailbox

$sort_field

$sort_order

$mbox_data

Fetches index data from database

get_index_row( $mailbox) 

Arguments

$mailbox

Returns message data.

get_message(string $mailbox, integer $uid, boolean $update = true,  $cache = true) : \rcube_message_header

Arguments

$mailbox

string

Folder name

$uid

integer

Message UID

$update

boolean

If message doesn't exists in cache it will be fetched from IMAP server

$cache

Response

\rcube_message_header

Message data

Returns list of messages (headers). See rcube_imap::fetch_headers().

get_messages(string $mailbox, array $msgs = array()) : array

Arguments

$mailbox

string

Folder name

$msgs

array

Message UIDs

Response

array

The list of messages (rcube_message_header) indexed by UID

Return messages thread.

get_thread(string $mailbox) : array

If threaded index doesn't exist or is invalid, will be updated.

Arguments

$mailbox

string

Folder name

Response

array

Messages threaded index

Fetches thread data from IMAP server

get_thread_data( $mailbox,  $mbox_data = array()) 

Arguments

$mailbox

$mbox_data

Fetches thread data from database

get_thread_row( $mailbox) 

Arguments

$mailbox

Prepares message object to be stored in database.

message_object_prepare( &$msg,  &$size) 

Arguments

$msg

$size

Clears index cache.

remove_index(string $mailbox = null, boolean $remove = false) 

Arguments

$mailbox

string

Folder name

$remove

boolean

Enable to remove the DB row

Removes message(s) from cache.

remove_message(string $mailbox = null, array $uids = null) 

Arguments

$mailbox

string

Folder name

$uids

array

Message UIDs, NULL removes all messages

Clears thread cache.

remove_thread(string $mailbox = null) 

Arguments

$mailbox

string

Folder name

Saves message stored in internal cache

save_icache() 

Set cache mode

set_mode(integer $mode) 

Arguments

$mode

integer

Cache mode

Synchronizes the mailbox.

synchronize(string $mailbox) 

Arguments

$mailbox

string

Folder name

Checks index/thread validity

validate( $mailbox,  $index,  &$exists = true) 

Arguments

$mailbox

$index

$exists

Constants

MODE_INDEX

MODE_INDEX

MODE_MESSAGE

MODE_MESSAGE

Properties

Instance of rcube_imap

imap : \rcube_imap
var

Type(s)

\rcube_imap

Instance of rcube_db

db : \rcube_db
var

Type(s)

\rcube_db

User ID

userid : integer
var

Type(s)

integer

Expiration time in seconds

ttl : integer
var

Type(s)

integer

Maximum cached message size

threshold : integer
var

Type(s)

integer

Internal (in-memory) cache

icache : array
var

Type(s)

array

skip_deleted

skip_deleted : 

Type(s)

mode

mode : 

Type(s)

List of known flags. Thanks to this we can handle flag changes with good performance. Bad thing is we need to know used flags.

flags : 

Type(s)