summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/Multipart/UploadState.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Multipart/UploadState.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/Multipart/UploadState.php145
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;
+ }
+}