# Class AbstractTransfer

Contains abstract functionality for transfer objects.

#### Direct known subclasses

OpenCloud\ObjectStore\Upload\ConcurrentTransfer, OpenCloud\ObjectStore\Upload\ConsecutiveTransfer
Namespace: OpenCloud\ObjectStore\Upload
Located at OpenCloud/ObjectStore/Upload/AbstractTransfer.php

Methods summary
`public static static` | # `newInstance( )` #### Returns `static`
`public mixed` | # `setClient( `OpenCloud\Common\Http\Client` $client )` #### Parameters $client ``OpenCloud\Common\Http\Client`` $client #### Returns `mixed` $this
`public mixed` | # `setEntityBody( Guzzle\Http\EntityBody $entityBody )` #### Parameters $entityBody `Guzzle\Http\EntityBody` $entityBody #### Returns `mixed` $this
`public mixed` | # `setTransferState( `OpenCloud\ObjectStore\Upload\TransferState` $transferState )` #### Parameters $transferState ``OpenCloud\ObjectStore\Upload\TransferState`` $transferState #### Returns `mixed` $this
`public array` | # `getOptions( )` #### Returns `array`
`public mixed` | # `setOptions( mixed $options )` #### Parameters $options `mixed` $options #### Returns `mixed` $this
`public mixed` | # `setOption( mixed $option, mixed $value )` #### Parameters $option `mixed` $option The key being updated $value `mixed` $value The option's value #### Returns `mixed` $this
`public` | # `getPartSize( )`
`public mixed` | # `setup( )` #### Returns `mixed` $this
`protected mixed` | # `validatePartSize( )` Make sure the part size falls within a valid range Make sure the part size falls within a valid range #### Returns `mixed`
`public Guzzle\Http\Message\Response` | # `upload( )` Initiates the upload procedure. Initiates the upload procedure. #### Returns `Guzzle\Http\Message\Response` #### Throws ``OpenCloud\Common\Exceptions\RuntimeException`` If the transfer is not in a "running" state ``OpenCloud\ObjectStore\Exception\UploadException`` If any errors occur during the upload #### CodeCoverageIgnore

Constants summary
`integer` | `MIN_PART_SIZE` | `1048576` | # Minimum chunk size is 1MB. Minimum chunk size is 1MB.
`integer` | `MAX_PART_SIZE` | `5368709120` | # Maximum chunk size is 5GB. Maximum chunk size is 5GB.
`integer` | `DEFAULT_PART_SIZE` | `1073741824` | # Default chunk size is 1GB. Default chunk size is 1GB.

Properties summary
`protected `OpenCloud\Common\Http\Client`` | $client | `` | # The client object which handles all HTTP interactions The client object which handles all HTTP interactions
`protected Guzzle\Http\EntityBody` | $entityBody | `` | # The payload being transferred The payload being transferred
`protected `OpenCloud\ObjectStore\Upload\TransferState`` | $transferState | `` | # The current state of the transfer responsible for, among other things, holding an itinerary of uploaded parts The current state of the transfer responsible for, among other things, holding an itinerary of uploaded parts
`protected array` | $options | `` | # User-defined key/pair options User-defined key/pair options
`protected integer` | $partSize | `` | #
`protected array` | $defaultOptions | `array( 'concurrency' => true, 'partSize' => self::DEFAULT_PART_SIZE, 'prefix' => 'segment', 'doPartChecksum' => true )` | # Defaults that will always override user-defined options Defaults that will always override user-defined options