# 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. */
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;
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');
65. // double check we didn't get 0 for a timeout
66. if ($this->_defaultTimeout <= 0)
67. {
68. $this->_defaultTimeout = 60;
69. }
70. }
72. return $this->_defaultTimeout;
73. }
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;
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