original_string: public static function isResponseCacheable(Google_Http_Request $resp)
    {
      // First, check if the HTTP request was cacheable before inspecting the
      // HTTP response.
      if (false == self::isRequestCacheable($resp)) {
        return false;
      }
  
      $code = $resp->getResponseHttpCode();
      if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) {
        return false;
      }
  
      // The resource is uncacheable if the resource is already expired and
      // the resource doesn't have an ETag for revalidation.
      $etag = $resp->getResponseHeader("etag");
      if (self::isExpired($resp) && $etag == false) {
        return false;
      }
  
      // [rfc2616-14.9.2]  If [no-store is] sent in a response, a cache MUST NOT
      // store any part of either this response or the request that elicited it.
      $cacheControl = $resp->getParsedCacheControl();
      if (isset($cacheControl['no-store'])) {
        return false;
      }
  
      // Pragma: no-cache is an http request directive, but is occasionally
      // used as a response header incorrectly.
      $pragma = $resp->getResponseHeader('pragma');
      if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) {
        return false;
      }
  
      // [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that
      // a cache cannot determine from the request headers of a subsequent request
      // whether this response is the appropriate representation."
      // Given this, we deem responses with the Vary header as uncacheable.
      $vary = $resp->getResponseHeader('vary');
      if ($vary) {
        return false;
      }
  
      return true;
    }
code: public static function isResponseCacheable(Google_Http_Request $resp)
    {
      // First, check if the HTTP request was cacheable before inspecting the
      // HTTP response.
      if (false == self::isRequestCacheable($resp)) {
        return false;
      }
  
      $code = $resp->getResponseHttpCode();
      if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) {
        return false;
      }
  
      // The resource is uncacheable if the resource is already expired and
      // the resource doesn't have an ETag for revalidation.
      $etag = $resp->getResponseHeader("etag");
      if (self::isExpired($resp) && $etag == false) {
        return false;
      }
  
      // [rfc2616-14.9.2]  If [no-store is] sent in a response, a cache MUST NOT
      // store any part of either this response or the request that elicited it.
      $cacheControl = $resp->getParsedCacheControl();
      if (isset($cacheControl['no-store'])) {
        return false;
      }
  
      // Pragma: no-cache is an http request directive, but is occasionally
      // used as a response header incorrectly.
      $pragma = $resp->getResponseHeader('pragma');
      if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) {
        return false;
      }
  
      // [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that
      // a cache cannot determine from the request headers of a subsequent request
      // whether this response is the appropriate representation."
      // Given this, we deem responses with the Vary header as uncacheable.
      $vary = $resp->getResponseHeader('vary');
      if ($vary) {
        return false;
      }
  
      return true;
    }
code_tokens: public static function isResponseCacheable ( Google_Http_Request $ resp ) { // First, check if the HTTP request was cacheable before inspecting the // HTTP response. if ( false == self :: isRequestCacheable ( $ resp ) ) { return false ; } $ code = $ resp -> getResponseHttpCode ( ) ; if ( ! in_array ( $ code , self :: $ CACHEABLE_STATUS_CODES ) ) { return false ; } // The resource is uncacheable if the resource is already expired and // the resource doesn't have an ETag for revalidation. $ etag = $ resp -> getResponseHeader ( "etag" ) ; if ( self :: isExpired ( $ resp ) && $ etag == false ) { return false ; } // [rfc2616-14.9.2]  If [no-store is] sent in a response, a cache MUST NOT // store any part of either this response or the request that elicited it. $ cacheControl = $ resp -> getParsedCacheControl ( ) ; if ( isset ( $ cacheControl [ 'no-store' ] ) ) { return false ; } // Pragma: no-cache is an http request directive, but is occasionally // used as a response header incorrectly. $ pragma = $ resp -> getResponseHeader ( 'pragma' ) ; if ( $ pragma == 'no-cache' || strpos ( $ pragma , 'no-cache' ) !== false ) { return false ; } // [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that // a cache cannot determine from the request headers of a subsequent request // whether this response is the appropriate representation." // Given this, we deem responses with the Vary header as uncacheable. $ vary = $ resp -> getResponseHeader ( 'vary' ) ; if ( $ vary ) { return false ; } return true ; }
docstring: Check if an HTTP response can be cached by a private local cache.
  
  @static
  @param Google_Http_Request $resp
  @return bool True if the response is cacheable.
  False if the response is un-cacheable.
docstring_tokens: Check if an HTTP response can be cached by a private local cache .