mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-28 15:40:28 +01:00
89 lines
2.9 KiB
PHP
89 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace Sabre\DAV\Sync;
|
|
|
|
use Sabre\DAV;
|
|
|
|
/**
|
|
* If a class extends ISyncCollection, it supports WebDAV-sync.
|
|
*
|
|
* You are responsible for maintaining a changelist for this collection. This
|
|
* means that if any child nodes in this collection was created, modified or
|
|
* deleted in any way, you should maintain an updated changelist.
|
|
*
|
|
* @copyright Copyright (C) fruux GmbH (https://fruux.com/)
|
|
* @author Evert Pot (http://evertpot.com/)
|
|
* @license http://sabre.io/license/ Modified BSD License
|
|
*/
|
|
interface ISyncCollection extends DAV\ICollection {
|
|
|
|
/**
|
|
* This method returns the current sync-token for this collection.
|
|
* This can be any string.
|
|
*
|
|
* If null is returned from this function, the plugin assumes there's no
|
|
* sync information available.
|
|
*
|
|
* @return string|null
|
|
*/
|
|
function getSyncToken();
|
|
|
|
/**
|
|
* The getChanges method returns all the changes that have happened, since
|
|
* the specified syncToken and the current collection.
|
|
*
|
|
* This function should return an array, such as the following:
|
|
*
|
|
* [
|
|
* 'syncToken' => 'The current synctoken',
|
|
* 'added' => [
|
|
* 'new.txt',
|
|
* ],
|
|
* 'modified' => [
|
|
* 'modified.txt',
|
|
* ],
|
|
* 'deleted' => array(
|
|
* 'foo.php.bak',
|
|
* 'old.txt'
|
|
* )
|
|
* ];
|
|
*
|
|
* The syncToken property should reflect the *current* syncToken of the
|
|
* collection, as reported getSyncToken(). This is needed here too, to
|
|
* ensure the operation is atomic.
|
|
*
|
|
* If the syncToken is specified as null, this is an initial sync, and all
|
|
* members should be reported.
|
|
*
|
|
* The modified property is an array of nodenames that have changed since
|
|
* the last token.
|
|
*
|
|
* The deleted property is an array with nodenames, that have been deleted
|
|
* from collection.
|
|
*
|
|
* The second argument is basically the 'depth' of the report. If it's 1,
|
|
* you only have to report changes that happened only directly in immediate
|
|
* descendants. If it's 2, it should also include changes from the nodes
|
|
* below the child collections. (grandchildren)
|
|
*
|
|
* The third (optional) argument allows a client to specify how many
|
|
* results should be returned at most. If the limit is not specified, it
|
|
* should be treated as infinite.
|
|
*
|
|
* If the limit (infinite or not) is higher than you're willing to return,
|
|
* you should throw a Sabre\DAV\Exception\TooMuchMatches() exception.
|
|
*
|
|
* If the syncToken is expired (due to data cleanup) or unknown, you must
|
|
* return null.
|
|
*
|
|
* The limit is 'suggestive'. You are free to ignore it.
|
|
*
|
|
* @param string $syncToken
|
|
* @param int $syncLevel
|
|
* @param int $limit
|
|
* @return array
|
|
*/
|
|
function getChanges($syncToken, $syncLevel, $limit = null);
|
|
|
|
}
|