Source for file Abstract.php

Documentation is available at Abstract.php

  1. <?php
  2. /**
  3.  * Copyright (c) 2007-2011, Servigistics, Inc.
  4.  * All rights reserved.
  5.  *
  6.  * Redistribution and use in source and binary forms, with or without
  7.  * modification, are permitted provided that the following conditions are met:
  8.  *
  9.  *  - Redistributions of source code must retain the above copyright notice,
  10.  *    this list of conditions and the following disclaimer.
  11.  *  - Redistributions in binary form must reproduce the above copyright
  12.  *    notice, this list of conditions and the following disclaimer in the
  13.  *    documentation and/or other materials provided with the distribution.
  14.  *  - Neither the name of Servigistics, Inc. nor the names of
  15.  *    its contributors may be used to endorse or promote products derived from
  16.  *    this software without specific prior written permission.
  17.  *
  18.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  19.  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  20.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  21.  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  22.  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  23.  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  24.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  25.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  26.  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  27.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  28.  * POSSIBILITY OF SUCH DAMAGE.
  29.  *
  30.  * @copyright Copyright 2007-2011 Servigistics, Inc. (http://servigistics.com)
  31.  * @license http://solr-php-client.googlecode.com/svn/trunk/COPYING New BSD
  32.  * @version $Id: $
  33.  *
  34.  * @package Apache
  35.  * @subpackage Solr
  36.  * @author Timo Schmidt <timo.schmidt@aoemedia.de>, Donovan Jimenez <djimenez@conduit-it.com>
  37.  */
  38.  
  39. /**
  40.  * Convenience class that implements the transport implementation. Can be extended by
  41.  * real implementations to do some of the common book keeping
  42.  */
  43. abstract class Apache_Solr_HttpTransport_Abstract implements Apache_Solr_HttpTransport_Interface
  44. {    
  45.     /**
  46.      * Our default timeout value for requests that don't specify a timeout
  47.      *
  48.      * @var float 
  49.      */
  50.     private $_defaultTimeout false;
  51.         
  52.     /**
  53.      * Get the current default timeout setting (initially the default_socket_timeout ini setting)
  54.      * in seconds
  55.      *
  56.      * @return float 
  57.      */
  58.     public function getDefaultTimeout()
  59.     {
  60.         // lazy load the default timeout from the ini settings
  61.         if ($this->_defaultTimeout === false)
  62.         {
  63.             $this->_defaultTimeout = (int) ini_get('default_socket_timeout');
  64.  
  65.             // double check we didn't get 0 for a timeout
  66.             if ($this->_defaultTimeout <= 0)
  67.             {
  68.                 $this->_defaultTimeout 60;
  69.             }
  70.         }
  71.         
  72.         return $this->_defaultTimeout;
  73.     }
  74.     
  75.     /**
  76.      * Set the current default timeout for all HTTP requests
  77.      *
  78.      * @param float $timeout 
  79.      */
  80.     public function setDefaultTimeout($timeout)
  81.     {
  82.         $timeout = (float) $timeout;
  83.         
  84.         if ($timeout >= 0)
  85.         {
  86.             $this->_defaultTimeout $timeout;
  87.         }
  88.     }    
  89. }

Documentation generated on Wed, 04 May 2011 11:01:08 -0400 by phpDocumentor 1.4.3