MediaWiki  REL1_22
FileJournal Class Reference

Class for handling file operation journaling. More...

Inheritance diagram for FileJournal:

List of all members.

Public Member Functions

 getChangeEntries ($start=null, $limit=0, &$next=null)
 Get an array of file change log entries.
 getCurrentPosition ()
 Get the position ID of the latest journal entry.
 getPositionAtTime ($time)
 Get the position ID of the latest journal entry at some point in time.
 getTimestampedUUID ()
 Get a statistically unique ID string.
 logChangeBatch (array $entries, $batchId)
 Log changes made by a batch file operation.
 purgeOldLogs ()
 Purge any old log entries.

Static Public Member Functions

static factory (array $config, $backend)
 Create an appropriate FileJournal object from config.

Protected Member Functions

 __construct (array $config)
 Construct a new instance from configuration.
 doGetChangeEntries ($start, $limit)
 doGetCurrentPosition ()
 doGetPositionAtTime ($time)
 doLogChangeBatch (array $entries, $batchId)
 doPurgeOldLogs ()

Protected Attributes

 $backend
 $ttlDays

Detailed Description

Class for handling file operation journaling.

Subclasses should avoid throwing exceptions at all costs.

Since:
1.20

Definition at line 38 of file FileJournal.php.


Constructor & Destructor Documentation

FileJournal::__construct ( array config) [protected]

Construct a new instance from configuration.

$config includes: 'ttlDays' : days to keep log entries around (false means "forever")

Parameters:
$configArray

Reimplemented in DBFileJournal.

Definition at line 49 of file FileJournal.php.


Member Function Documentation

FileJournal::doGetChangeEntries ( start,
limit 
) [abstract, protected]
See also:
FileJournal::getChangeEntries()
Returns:
Array

Reimplemented in NullFileJournal, and DBFileJournal.

Referenced by getChangeEntries().

FileJournal::doGetCurrentPosition ( ) [abstract, protected]
See also:
FileJournal::getCurrentPosition()
Returns:
integer|false

Reimplemented in NullFileJournal, and DBFileJournal.

Referenced by getCurrentPosition().

FileJournal::doGetPositionAtTime ( time) [abstract, protected]
See also:
FileJournal::getPositionAtTime()
Parameters:
$timeinteger|string timestamp
Returns:
integer|false

Reimplemented in NullFileJournal, and DBFileJournal.

Referenced by getPositionAtTime().

FileJournal::doLogChangeBatch ( array entries,
batchId 
) [abstract, protected]
See also:
FileJournal::logChangeBatch()
Parameters:
array$entriesList of file operations (each an array of parameters)
string$batchIdUUID string that identifies the operation batch
Returns:
Status

Reimplemented in NullFileJournal, and DBFileJournal.

Referenced by logChangeBatch().

FileJournal::doPurgeOldLogs ( ) [abstract, protected]
See also:
FileJournal::purgeOldLogs()
Returns:
Status

Reimplemented in NullFileJournal, and DBFileJournal.

Referenced by purgeOldLogs().

static FileJournal::factory ( array config,
backend 
) [static, final]

Create an appropriate FileJournal object from config.

Parameters:
$configArray
string$backendA registered file backend name
Exceptions:
MWException
Returns:
FileJournal

Definition at line 61 of file FileJournal.php.

References $backend.

FileJournal::getChangeEntries ( start = null,
limit = 0,
&$  next = null 
) [final]

Get an array of file change log entries.

A starting change ID and/or limit can be specified.

The result as a list of associative arrays, each having: id : unique, monotonic, ID for this change batch_uuid : UUID for an operation batch backend : the backend name op : primitive operation (create,update,delete,null) path : affected storage path new_sha1 : base 36 sha1 of the new file had the operation succeeded timestamp : TS_MW timestamp of the batch change

Also, $next is updated to the ID of the next entry.

Parameters:
$startinteger Starting change ID or null
$limitinteger Maximum number of items to return
&$nextstring
Returns:
Array

Definition at line 165 of file FileJournal.php.

References $last, $limit, and doGetChangeEntries().

Get the position ID of the latest journal entry.

Returns:
integer|false

Definition at line 118 of file FileJournal.php.

References doGetCurrentPosition().

FileJournal::getPositionAtTime ( time) [final]

Get the position ID of the latest journal entry at some point in time.

Parameters:
$timeinteger|string timestamp
Returns:
integer|false

Definition at line 134 of file FileJournal.php.

References $time, and doGetPositionAtTime().

Get a statistically unique ID string.

Returns:
string <9 char TS_MW timestamp in base 36><22 random base 36 chars>

Definition at line 76 of file FileJournal.php.

References $s, wfBaseConvert(), and wfTimestamp().

Referenced by FileOpBatch\attempt().

FileJournal::logChangeBatch ( array entries,
batchId 
) [final]

Log changes made by a batch file operation.

$entries is an array of log entries, each of which contains: op : Basic operation name (create, update, delete) path : The storage path of the file newSha1 : The final base 36 SHA-1 of the file Note that 'false' should be used as the SHA-1 for non-existing files.

Parameters:
array$entriesList of file operations (each an array of parameters)
string$batchIdUUID string that identifies the operation batch
Returns:
Status

Definition at line 97 of file FileJournal.php.

References doLogChangeBatch(), and Status\newGood().

Referenced by FileOpBatch\attempt().

Purge any old log entries.

Returns:
Status

Definition at line 187 of file FileJournal.php.

References doPurgeOldLogs().


Member Data Documentation

FileJournal::$backend [protected]

Definition at line 39 of file FileJournal.php.

Referenced by factory().

FileJournal::$ttlDays [protected]

Definition at line 40 of file FileJournal.php.


The documentation for this class was generated from the following file: