forked from LiveCarta/LiveCartaWP
67 lines
2.2 KiB
PHP
67 lines
2.2 KiB
PHP
<?php
|
|
|
|
use Duplicator\Libs\DupArchive\States\DupArchiveCreateState;
|
|
|
|
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
|
|
|
class DUP_DupArchive_Create_State extends DupArchiveCreateState
|
|
{
|
|
/**
|
|
* Class constructor
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->throttleDelayInUs = 10;
|
|
}
|
|
|
|
// Only one active package so straightforward
|
|
// public static function createFromPackage(&$package)
|
|
public static function get_instance()
|
|
{
|
|
$instance = new DUP_DupArchive_Create_State();
|
|
$data = DUP_Settings::Get('duparchive_create_state');
|
|
DUP_Util::objectCopy($data, $instance);
|
|
$instance->startTimestamp = time();
|
|
DUP_Log::TraceObject("retrieving create state", $instance);
|
|
return $instance;
|
|
}
|
|
|
|
public static function createNew($archivePath, $basePath, $timeSliceInSecs, $isCompressed, $setArchiveOffsetToEndOfArchive)
|
|
{
|
|
$instance = new DUP_DupArchive_Create_State();
|
|
if ($setArchiveOffsetToEndOfArchive) {
|
|
$instance->archiveOffset = filesize($archivePath);
|
|
} else {
|
|
$instance->archiveOffset = 0;
|
|
}
|
|
|
|
$instance->archivePath = $archivePath;
|
|
$instance->basePath = $basePath;
|
|
$instance->currentDirectoryIndex = 0;
|
|
$instance->currentFileOffset = 0;
|
|
$instance->currentFileIndex = 0;
|
|
$instance->failures = array();
|
|
$instance->globSize = DupArchiveCreateState::DEFAULT_GLOB_SIZE;
|
|
$instance->isCompressed = $isCompressed;
|
|
$instance->timeSliceInSecs = $timeSliceInSecs;
|
|
$instance->working = true;
|
|
$instance->skippedDirectoryCount = 0;
|
|
$instance->skippedFileCount = 0;
|
|
$instance->startTimestamp = time();
|
|
return $instance;
|
|
}
|
|
|
|
public function addFailure($type, $subject, $description, $isCritical = false)
|
|
{
|
|
parent::addFailure($type, $subject, $description, $isCritical);
|
|
}
|
|
|
|
public function save()
|
|
{
|
|
DUP_Log::TraceObject("Saving create state", $this);
|
|
DUP_Settings::Set('duparchive_create_state', $this);
|
|
DUP_Settings::Save();
|
|
}
|
|
}
|