diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Multipart/UploadState.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/Multipart/UploadState.php | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Multipart/UploadState.php b/vendor/aws/aws-sdk-php/src/Multipart/UploadState.php new file mode 100644 index 0000000..4108c4f --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Multipart/UploadState.php @@ -0,0 +1,145 @@ +<?php +namespace Aws\Multipart; + +/** + * Representation of the multipart upload. + * + * This object keeps track of the state of the upload, including the status and + * which parts have been uploaded. + */ +class UploadState +{ + const CREATED = 0; + const INITIATED = 1; + const COMPLETED = 2; + + /** @var array Params used to identity the upload. */ + private $id; + + /** @var int Part size being used by the upload. */ + private $partSize; + + /** @var array Parts that have been uploaded. */ + private $uploadedParts = []; + + /** @var int Identifies the status the upload. */ + private $status = self::CREATED; + + /** + * @param array $id Params used to identity the upload. + */ + public function __construct(array $id) + { + $this->id = $id; + } + + /** + * Get the upload's ID, which is a tuple of parameters that can uniquely + * identify the upload. + * + * @return array + */ + public function getId() + { + return $this->id; + } + + /** + * Set's the "upload_id", or 3rd part of the upload's ID. This typically + * only needs to be done after initiating an upload. + * + * @param string $key The param key of the upload_id. + * @param string $value The param value of the upload_id. + */ + public function setUploadId($key, $value) + { + $this->id[$key] = $value; + } + + /** + * Get the part size. + * + * @return int + */ + public function getPartSize() + { + return $this->partSize; + } + + /** + * Set the part size. + * + * @param $partSize int Size of upload parts. + */ + public function setPartSize($partSize) + { + $this->partSize = $partSize; + } + + /** + * Marks a part as being uploaded. + * + * @param int $partNumber The part number. + * @param array $partData Data from the upload operation that needs to be + * recalled during the complete operation. + */ + public function markPartAsUploaded($partNumber, array $partData = []) + { + $this->uploadedParts[$partNumber] = $partData; + } + + /** + * Returns whether a part has been uploaded. + * + * @param int $partNumber The part number. + * + * @return bool + */ + public function hasPartBeenUploaded($partNumber) + { + return isset($this->uploadedParts[$partNumber]); + } + + /** + * Returns a sorted list of all the uploaded parts. + * + * @return array + */ + public function getUploadedParts() + { + ksort($this->uploadedParts); + + return $this->uploadedParts; + } + + /** + * Set the status of the upload. + * + * @param int $status Status is an integer code defined by the constants + * CREATED, INITIATED, and COMPLETED on this class. + */ + public function setStatus($status) + { + $this->status = $status; + } + + /** + * Determines whether the upload state is in the INITIATED status. + * + * @return bool + */ + public function isInitiated() + { + return $this->status === self::INITIATED; + } + + /** + * Determines whether the upload state is in the COMPLETED status. + * + * @return bool + */ + public function isCompleted() + { + return $this->status === self::COMPLETED; + } +} |