protected function CurlMulti::beforeSend

Prepare for sending

Parameters

RequestInterface $request Request to prepare:

2 calls to CurlMulti::beforeSend()
CurlMulti::add in drupal/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php
Adds a request to a batch of requests to be sent in parallel.
CurlMulti::send in drupal/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php
Send a pool of {

File

drupal/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php, line 352

Class

CurlMulti
Send { This implementation allows callers to send blocking requests that return back to the caller when their requests complete, regardless of whether or not previously sending requests in the curl_multi object have completed. The implementation…

Namespace

Guzzle\Http\Curl

Code

protected function beforeSend(RequestInterface $request) {
  try {
    $request
      ->setState(RequestInterface::STATE_TRANSFER);
    $request
      ->dispatch('request.before_send', array(
      'request' => $request,
    ));
    if ($request
      ->getState() != RequestInterface::STATE_TRANSFER) {

      // Requests might decide they don't need to be sent just before transfer (e.g. CachePlugin)
      $this
        ->remove($request);
    }
    elseif ($request
      ->getParams()
      ->get('queued_response')) {

      // Queued responses do not need to be sent using curl
      $this
        ->remove($request);
      $request
        ->setState(RequestInterface::STATE_COMPLETE);
    }
    else {

      // Add the request's curl handle to the multi handle
      $this
        ->checkCurlResult(curl_multi_add_handle($this->multiHandle, $this
        ->createCurlHandle($request)
        ->getHandle()));
    }
  } catch (\Exception $e) {
    $this
      ->removeErroredRequest($request, $e);
  }
}