diff options
Diffstat (limited to 'vendor/sabre/dav/lib/DAV/IMoveTarget.php')
-rw-r--r-- | vendor/sabre/dav/lib/DAV/IMoveTarget.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/vendor/sabre/dav/lib/DAV/IMoveTarget.php b/vendor/sabre/dav/lib/DAV/IMoveTarget.php new file mode 100644 index 000000000..f0f67bc26 --- /dev/null +++ b/vendor/sabre/dav/lib/DAV/IMoveTarget.php @@ -0,0 +1,44 @@ +<?php + +namespace Sabre\DAV; + +/** + * By implementing this interface, a collection can effectively say "other + * nodes may be moved into this collection". + * + * The benefit of this, is that sabre/dav will by default perform a move, by + * tranfersing an entire directory tree, copying every collection, and deleting + * every item. + * + * If a backend supports a better optimized move operation, this can trigger + * some huge speed gains. + * + * @copyright Copyright (C) fruux GmbH (https://fruux.com/) + * @author Evert Pot (http://evertpot.com/) + * @license http://sabre.io/license/ Modified BSD License + */ +interface IMoveTarget extends ICollection { + + /** + * Moves a node into this collection. + * + * It is up to the implementors to: + * 1. Create the new resource. + * 2. Remove the old resource. + * 3. Transfer any properties or other data. + * + * Generally you should make very sure that your collection can easily move + * the move. + * + * If you don't, just return false, which will trigger sabre/dav to handle + * the move itself. If you return true from this function, the assumption + * is that the move was successful. + * + * @param string $targetName New local file/collection name. + * @param string $sourcePath Full path to source node + * @param INode $sourceNode Source node itself + * @return bool + */ + function moveInto($targetName, $sourcePath, INode $sourceNode); + +} |