Open Journal Systems  3.3.0
Guzzle\Http\Curl\CurlMulti Class Reference
Inheritance diagram for Guzzle\Http\Curl\CurlMulti:
Guzzle\Common\AbstractHasDispatcher Guzzle\Http\Curl\CurlMultiInterface Guzzle\Common\HasDispatcherInterface Guzzle\Common\HasDispatcherInterface Guzzle\Tests\Mock\MockMulti

Public Member Functions

 __construct ($selectTimeout=1.0)
 
 __destruct ()
 
 add (RequestInterface $request)
 
 all ()
 
 count ()
 
 remove (RequestInterface $request)
 
 reset ($hard=false)
 
 send ()
 
- Public Member Functions inherited from Guzzle\Common\AbstractHasDispatcher
 addSubscriber (EventSubscriberInterface $subscriber)
 
 dispatch ($eventName, array $context=array())
 
 getEventDispatcher ()
 
 setEventDispatcher (EventDispatcherInterface $eventDispatcher)
 

Protected Member Functions

 beforeSend (RequestInterface $request)
 
 createCurlHandle (RequestInterface $request)
 
 perform ()
 
 processResponse (RequestInterface $request, CurlHandle $handle, array $curl)
 
 removeErroredRequest (RequestInterface $request, \Exception $e=null)
 
 removeHandle (RequestInterface $request)
 
 throwMultiException (array $exceptions, array $successful)
 

Protected Attributes

 $exceptions = array()
 
 $handles
 
 $multiErrors
 
 $multiHandle
 
 $requests
 
 $resourceHash
 
 $selectTimeout
 
 $successful = array()
 
- Protected Attributes inherited from Guzzle\Common\AbstractHasDispatcher
 $eventDispatcher
 

Additional Inherited Members

- Static Public Member Functions inherited from Guzzle\Common\AbstractHasDispatcher
static getAllEvents ()
 
- Data Fields inherited from Guzzle\Http\Curl\CurlMultiInterface
const ADD_REQUEST = 'curl_multi.add_request'
 
const BLOCKING = 'curl_multi.blocking'
 
const MULTI_EXCEPTION = 'curl_multi.exception'
 
const POLLING_REQUEST = 'curl_multi.polling_request'
 
const REMOVE_REQUEST = 'curl_multi.remove_request'
 

Detailed Description

Send {

See also
RequestInterface} objects in parallel using curl_multi

Definition at line 16 of file CurlMulti.php.

Constructor & Destructor Documentation

◆ __construct()

Guzzle\Http\Curl\CurlMulti::__construct (   $selectTimeout = 1.0)

◆ __destruct()

Guzzle\Http\Curl\CurlMulti::__destruct ( )

Definition at line 83 of file CurlMulti.php.

Member Function Documentation

◆ add()

Guzzle\Http\Curl\CurlMulti::add ( RequestInterface  $request)

Add a request to the pool.

Parameters
RequestInterface$requestRequest to add
Returns
CurlMultiInterface

Implements Guzzle\Http\Curl\CurlMultiInterface.

Definition at line 90 of file CurlMulti.php.

References Guzzle\Http\Curl\CurlMulti\beforeSend(), and Guzzle\Common\AbstractHasDispatcher\dispatch().

◆ all()

Guzzle\Http\Curl\CurlMulti::all ( )

Get an array of attached {

See also
RequestInterface} objects
Returns
array

Implements Guzzle\Http\Curl\CurlMultiInterface.

Definition at line 101 of file CurlMulti.php.

References Guzzle\Http\Curl\CurlMulti\$requests.

◆ beforeSend()

Guzzle\Http\Curl\CurlMulti::beforeSend ( RequestInterface  $request)
protected

◆ count()

Guzzle\Http\Curl\CurlMulti::count ( )

Definition at line 145 of file CurlMulti.php.

◆ createCurlHandle()

Guzzle\Http\Curl\CurlMulti::createCurlHandle ( RequestInterface  $request)
protected

Create a curl handle for a request

Parameters
RequestInterface$requestRequest
Returns
CurlHandle

Definition at line 216 of file CurlMulti.php.

References Guzzle\Http\Curl\CurlHandle\factory().

◆ perform()

Guzzle\Http\Curl\CurlMulti::perform ( )
protected

Get the data from the multi handle

Definition at line 228 of file CurlMulti.php.

Referenced by Guzzle\Http\Curl\CurlMulti\send().

◆ processResponse()

Guzzle\Http\Curl\CurlMulti::processResponse ( RequestInterface  $request,
CurlHandle  $handle,
array  $curl 
)
protected

Check for errors and fix headers of a request based on a curl response

Parameters
RequestInterface$requestRequest to process
CurlHandle$handleCurl handle object
array$curlArray returned from curl_multi_info_read
Exceptions
CurlExceptionon Curl error

Definition at line 311 of file CurlMulti.php.

References Guzzle\Http\Curl\CurlMulti\removeHandle(), Guzzle\Http\Message\RequestInterface\setState(), Guzzle\Http\Message\RequestInterface\STATE_COMPLETE, Guzzle\Http\Message\RequestInterface\STATE_ERROR, and Guzzle\Http\Message\RequestInterface\STATE_TRANSFER.

◆ remove()

Guzzle\Http\Curl\CurlMulti::remove ( RequestInterface  $request)

Remove a request from the pool.

Parameters
RequestInterface$requestRequest to remove
Returns
bool Returns true on success or false on failure

Implements Guzzle\Http\Curl\CurlMultiInterface.

Definition at line 106 of file CurlMulti.php.

References Guzzle\Common\AbstractHasDispatcher\dispatch(), and Guzzle\Http\Curl\CurlMulti\removeHandle().

◆ removeErroredRequest()

Guzzle\Http\Curl\CurlMulti::removeErroredRequest ( RequestInterface  $request,
\Exception  $e = null 
)
protected

Remove a request that encountered an exception

Parameters
RequestInterface$requestRequest to remove
\Exception$eException encountered

Definition at line 295 of file CurlMulti.php.

References Guzzle\Common\AbstractHasDispatcher\dispatch().

Referenced by Guzzle\Http\Curl\CurlMulti\beforeSend().

◆ removeHandle()

Guzzle\Http\Curl\CurlMulti::removeHandle ( RequestInterface  $request)
protected

Remove a curl handle from the curl multi object

Parameters
RequestInterface$requestRequest that owns the handle

Definition at line 356 of file CurlMulti.php.

Referenced by Guzzle\Http\Curl\CurlMulti\processResponse(), and Guzzle\Http\Curl\CurlMulti\remove().

◆ reset()

Guzzle\Http\Curl\CurlMulti::reset (   $hard = false)

Reset the state and remove any attached RequestInterface objects

Parameters
bool$hardSet to true to close and reopen any open multi handles

Implements Guzzle\Http\Curl\CurlMultiInterface.

Definition at line 120 of file CurlMulti.php.

Referenced by Guzzle\Http\Curl\CurlMulti\__construct(), and Guzzle\Http\Curl\CurlMulti\send().

◆ send()

Guzzle\Http\Curl\CurlMulti::send ( )

Send a pool of {

See also
RequestInterface} requests.
Exceptions
ExceptionCollectionif any requests threw exceptions during the transfer.

Implements Guzzle\Http\Curl\CurlMultiInterface.

Definition at line 133 of file CurlMulti.php.

References Guzzle\Http\Curl\CurlMulti\$exceptions, Guzzle\Http\Curl\CurlMulti\$successful, Guzzle\Http\Curl\CurlMulti\perform(), Guzzle\Http\Curl\CurlMulti\reset(), and Guzzle\Http\Curl\CurlMulti\throwMultiException().

◆ throwMultiException()

Guzzle\Http\Curl\CurlMulti::throwMultiException ( array  $exceptions,
array  $successful 
)
protected

Build and throw a MultiTransferException

Parameters
array$exceptionsExceptions encountered
array$successfulSuccessful requests
Exceptions
MultiTransferException

Definition at line 157 of file CurlMulti.php.

References Guzzle\Http\Curl\CurlMulti\$exceptions, and Guzzle\Http\Curl\CurlMulti\$successful.

Referenced by Guzzle\Http\Curl\CurlMulti\send().

Field Documentation

◆ $exceptions

array Guzzle\Http\Curl\CurlMulti::$exceptions = array()
protected

Queued exceptions

Definition at line 46 of file CurlMulti.php.

Referenced by Guzzle\Http\Curl\CurlMulti\send(), and Guzzle\Http\Curl\CurlMulti\throwMultiException().

◆ $handles

SplObjectStorage Guzzle\Http\Curl\CurlMulti::$handles
protected

RequestInterface to CurlHandle hash

Definition at line 34 of file CurlMulti.php.

◆ $multiErrors

array Guzzle\Http\Curl\CurlMulti::$multiErrors
protected
Initial value:
= array(
CURLM_BAD_HANDLE => array('CURLM_BAD_HANDLE', 'The passed-in handle is not a valid CURLM handle.'),
CURLM_BAD_EASY_HANDLE => array('CURLM_BAD_EASY_HANDLE', "An easy handle was not good/valid. It could mean that it isn't an easy handle at all, or possibly that the handle already is in used by this or another multi handle."),
CURLM_OUT_OF_MEMORY => array('CURLM_OUT_OF_MEMORY', 'You are doomed.'),
CURLM_INTERNAL_ERROR => array('CURLM_INTERNAL_ERROR', 'This can only be returned if libcurl bugs. Please report it to us!')
)

cURL multi error values and codes

Definition at line 58 of file CurlMulti.php.

◆ $multiHandle

resource Guzzle\Http\Curl\CurlMulti::$multiHandle
protected

cURL multi handle.

Definition at line 22 of file CurlMulti.php.

Referenced by Guzzle\Tests\Mock\MockMulti\getHandle().

◆ $requests

array Guzzle\Http\Curl\CurlMulti::$requests
protected

Attached {

See also
RequestInterface} objects.

Definition at line 28 of file CurlMulti.php.

Referenced by Guzzle\Http\Curl\CurlMulti\all().

◆ $resourceHash

array Guzzle\Http\Curl\CurlMulti::$resourceHash
protected

Hash mapping curl handle resource IDs to request objects

Definition at line 40 of file CurlMulti.php.

◆ $selectTimeout

float Guzzle\Http\Curl\CurlMulti::$selectTimeout
protected

Definition at line 69 of file CurlMulti.php.

Referenced by Guzzle\Http\Curl\CurlMulti\__construct().

◆ $successful

array Guzzle\Http\Curl\CurlMulti::$successful = array()
protected

Requests that succeeded

Definition at line 52 of file CurlMulti.php.

Referenced by Guzzle\Http\Curl\CurlMulti\send(), and Guzzle\Http\Curl\CurlMulti\throwMultiException().


The documentation for this class was generated from the following file: