/home/ivoiecob/email.hirewise-va.com/vendor/afterlogic/dav/lib/DAV/FS/File.php
<?php
/**
* This code is licensed under AGPLv3 license or Afterlogic Software License
* if commercial version of the product was purchased.
* For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files.
*/
namespace Afterlogic\DAV\FS;
/**
* @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0
* @license https://afterlogic.com/products/common-licensing Afterlogic Software License
* @copyright Copyright (c) 2019, Afterlogic Corp.
*/
class File extends \Sabre\DAV\FSExt\File implements \Sabre\DAVACL\IACL, \Afterlogic\DAV\FS\INode
{
use NodeTrait;
use PropertyStorageTrait;
use HistoryDirectoryTrait;
public function __construct($storage, $path)
{
$this->storage = $storage;
parent::__construct($path);
}
public function get()
{
return parent::get();
}
public function getDirectory()
{
list($dir) = \Sabre\Uri\split($this->path);
return new Directory($this->storage, $dir);
}
public function delete()
{
$result = parent::delete();
$this->deleteShares();
$this->deleteFavorites();
$this->deleteResourceData();
$this->deleteHistoryDirectory();
return $result;
}
public function getUrl($bWithContentDisposition = false)
{
return null;
}
public function patch($data, $rangeType, $offset = null)
{
switch ($rangeType) {
case 0:
$f = fopen($this->path, 'w');
break;
case 1:
$f = fopen($this->path, 'a');
break;
case 2:
$f = fopen($this->path, 'c');
fseek($f, $offset);
break;
case 3:
$f = fopen($this->path, 'c');
fseek($f, $offset, SEEK_END);
break;
}
if (is_string($data)) {
fwrite($f, $data);
} else {
stream_copy_to_stream($data, $f);
}
fclose($f);
clearstatcache(true, $this->path);
return $this->getETag();
}
}