1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="null" lang="null">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>HttpConnectionManagerParams xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/commons/httpclient/params/HttpConnectionManagerParams.html">View Javadoc</a></div><pre>
<a name="1" href="#1">1</a> <em class="comment">/*</em>
<a name="2" href="#2">2</a> <em class="comment"> * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HttpConnectionManagerParams.java,v 1.9 2004/09/13 16:25:20 olegk Exp $</em>
<a name="3" href="#3">3</a> <em class="comment"> * $Revision: 480424 $</em>
<a name="4" href="#4">4</a> <em class="comment"> * $Date: 2006-11-29 06:56:49 +0100 (Wed, 29 Nov 2006) $</em>
<a name="5" href="#5">5</a> <em class="comment"> *</em>
<a name="6" href="#6">6</a> <em class="comment"> * ====================================================================</em>
<a name="7" href="#7">7</a> <em class="comment"> *</em>
<a name="8" href="#8">8</a> <em class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="9" href="#9">9</a> <em class="comment"> * contributor license agreements. See the NOTICE file distributed with</em>
<a name="10" href="#10">10</a> <em class="comment"> * this work for additional information regarding copyright ownership.</em>
<a name="11" href="#11">11</a> <em class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="12" href="#12">12</a> <em class="comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="13" href="#13">13</a> <em class="comment"> * the License. You may obtain a copy of the License at</em>
<a name="14" href="#14">14</a> <em class="comment"> *</em>
<a name="15" href="#15">15</a> <em class="comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="16" href="#16">16</a> <em class="comment"> *</em>
<a name="17" href="#17">17</a> <em class="comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="18" href="#18">18</a> <em class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="19" href="#19">19</a> <em class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="20" href="#20">20</a> <em class="comment"> * See the License for the specific language governing permissions and</em>
<a name="21" href="#21">21</a> <em class="comment"> * limitations under the License.</em>
<a name="22" href="#22">22</a> <em class="comment"> * ====================================================================</em>
<a name="23" href="#23">23</a> <em class="comment"> *</em>
<a name="24" href="#24">24</a> <em class="comment"> * This software consists of voluntary contributions made by many</em>
<a name="25" href="#25">25</a> <em class="comment"> * individuals on behalf of the Apache Software Foundation. For more</em>
<a name="26" href="#26">26</a> <em class="comment"> * information on the Apache Software Foundation, please see</em>
<a name="27" href="#27">27</a> <em class="comment"> * <<a href="http://www.apache.org/" target="alexandria_uri">http://www.apache.org/</a>>.</em>
<a name="28" href="#28">28</a> <em class="comment"> *</em>
<a name="29" href="#29">29</a> <em class="comment"> */</em>
<a name="30" href="#30">30</a>
<a name="31" href="#31">31</a> <strong>package</strong> org.apache.commons.httpclient.params;
<a name="32" href="#32">32</a>
<a name="33" href="#33">33</a> <strong>import</strong> java.util.HashMap;
<a name="34" href="#34">34</a> <strong>import</strong> java.util.Map;
<a name="35" href="#35">35</a>
<a name="36" href="#36">36</a> <strong>import</strong> org.apache.commons.httpclient.HostConfiguration;
<a name="37" href="#37">37</a> <strong>import</strong> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
<a name="38" href="#38">38</a>
<a name="39" href="#39">39</a> <em>/**</em>
<a name="40" href="#40">40</a> <em> * This class represents a collection of HTTP protocol parameters applicable to </em>
<a name="41" href="#41">41</a> <em> * {@link org.apache.commons.httpclient.HttpConnectionManager HTTP connection managers}. </em>
<a name="42" href="#42">42</a> <em> * Protocol parameters may be linked together to form a hierarchy. If a particular </em>
<a name="43" href="#43">43</a> <em> * parameter value has not been explicitly defined in the collection itself, its </em>
<a name="44" href="#44">44</a> <em> * value will be drawn from the parent collection of parameters.</em>
<a name="45" href="#45">45</a> <em> * </em>
<a name="46" href="#46">46</a> <em> * @author <a href="<a href="mailto:oleg@ural.ru" target="alexandria_uri">mailto:oleg@ural.ru</a>">Oleg Kalnichevski</a></em>
<a name="47" href="#47">47</a> <em> * @author Michael Becke</em>
<a name="48" href="#48">48</a> <em> * </em>
<a name="49" href="#49">49</a> <em> * @version $Revision: 480424 $</em>
<a name="50" href="#50">50</a> <em> * </em>
<a name="51" href="#51">51</a> <em> * @since 3.0</em>
<a name="52" href="#52">52</a> <em> */</em>
<a name="53" href="#53">53</a> <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/commons/httpclient/params/HttpConnectionManagerParams.html">HttpConnectionManagerParams</a> <strong>extends</strong> <a href="../../../../../org/apache/commons/httpclient/params/HttpConnectionParams.html">HttpConnectionParams</a> {
<a name="54" href="#54">54</a>
<a name="55" href="#55">55</a> <em>/**</em><em> </em>
<a name="56" href="#56">56</a> <em> * Defines the maximum number of connections allowed per host configuration. </em>
<a name="57" href="#57">57</a> <em> * These values only apply to the number of connections from a particular instance </em>
<a name="58" href="#58">58</a> <em> * of HttpConnectionManager.</em>
<a name="59" href="#59">59</a> <em> * <p></em>
<a name="60" href="#60">60</a> <em> * This parameter expects a value of type {@link java.util.Map}. The value</em>
<a name="61" href="#61">61</a> <em> * should map instances of {@link org.apache.commons.httpclient.HostConfiguration}</em>
<a name="62" href="#62">62</a> <em> * to {@link Integer integers}. The default value can be specified using</em>
<a name="63" href="#63">63</a> <em> * {@link org.apache.commons.httpclient.HostConfiguration#ANY_HOST_CONFIGURATION}.</em>
<a name="64" href="#64">64</a> <em> * </p></em>
<a name="65" href="#65">65</a> <em> */</em>
<a name="66" href="#66">66</a> <strong>public</strong> <strong>static</strong> <strong>final</strong> String MAX_HOST_CONNECTIONS = <span class="string">"http.connection-manager.max-per-host"</span>;
<a name="67" href="#67">67</a>
<a name="68" href="#68">68</a> <em>/**</em><em> </em>
<a name="69" href="#69">69</a> <em> * Defines the maximum number of connections allowed overall. This value only applies</em>
<a name="70" href="#70">70</a> <em> * to the number of connections from a particular instance of HttpConnectionManager.</em>
<a name="71" href="#71">71</a> <em> * <p></em>
<a name="72" href="#72">72</a> <em> * This parameter expects a value of type {@link Integer}.</em>
<a name="73" href="#73">73</a> <em> * </p></em>
<a name="74" href="#74">74</a> <em> */</em>
<a name="75" href="#75">75</a> <strong>public</strong> <strong>static</strong> <strong>final</strong> String MAX_TOTAL_CONNECTIONS = <span class="string">"http.connection-manager.max-total"</span>;
<a name="76" href="#76">76</a>
<a name="77" href="#77">77</a> <em>/**</em>
<a name="78" href="#78">78</a> <em> * Sets the default maximum number of connections allowed for a given</em>
<a name="79" href="#79">79</a> <em> * host config.</em>
<a name="80" href="#80">80</a> <em> *</em>
<a name="81" href="#81">81</a> <em> * @param maxHostConnections The default maximum.</em>
<a name="82" href="#82">82</a> <em> * </em>
<a name="83" href="#83">83</a> <em> * @see #MAX_HOST_CONNECTIONS</em>
<a name="84" href="#84">84</a> <em> */</em>
<a name="85" href="#85">85</a> <strong>public</strong> <strong>void</strong> setDefaultMaxConnectionsPerHost(<strong>int</strong> maxHostConnections) {
<a name="86" href="#86">86</a> setMaxConnectionsPerHost(HostConfiguration.ANY_HOST_CONFIGURATION, maxHostConnections);
<a name="87" href="#87">87</a> }
<a name="88" href="#88">88</a>
<a name="89" href="#89">89</a> <em>/**</em>
<a name="90" href="#90">90</a> <em> * Sets the maximum number of connections to be used for the given host config.</em>
<a name="91" href="#91">91</a> <em> * </em>
<a name="92" href="#92">92</a> <em> * @param hostConfiguration The host config to set the maximum for. Use </em>
<a name="93" href="#93">93</a> <em> * {@link HostConfiguration#ANY_HOST_CONFIGURATION} to configure the default value</em>
<a name="94" href="#94">94</a> <em> * per host.</em>
<a name="95" href="#95">95</a> <em> * @param maxHostConnections The maximum number of connections, <code>> 0</code></em>
<a name="96" href="#96">96</a> <em> * </em>
<a name="97" href="#97">97</a> <em> * @see #MAX_HOST_CONNECTIONS</em>
<a name="98" href="#98">98</a> <em> */</em>
<a name="99" href="#99">99</a> <strong>public</strong> <strong>void</strong> setMaxConnectionsPerHost(
<a name="100" href="#100">100</a> <a href="../../../../../org/apache/commons/httpclient/HostConfiguration.html">HostConfiguration</a> hostConfiguration,
<a name="101" href="#101">101</a> <strong>int</strong> maxHostConnections) {
<a name="102" href="#102">102</a>
<a name="103" href="#103">103</a> <strong>if</strong> (maxHostConnections <= 0) {
<a name="104" href="#104">104</a> <strong>throw</strong> <strong>new</strong> IllegalArgumentException(<span class="string">"maxHostConnections must be greater than 0"</span>);
<a name="105" href="#105">105</a> }
<a name="106" href="#106">106</a>
<a name="107" href="#107">107</a> Map currentValues = (Map) getParameter(MAX_HOST_CONNECTIONS);
<a name="108" href="#108">108</a> <em class="comment">// param values are meant to be immutable so we'll make a copy</em>
<a name="109" href="#109">109</a> <em class="comment">// to modify</em>
<a name="110" href="#110">110</a> Map newValues = <strong>null</strong>;
<a name="111" href="#111">111</a> <strong>if</strong> (currentValues == <strong>null</strong>) {
<a name="112" href="#112">112</a> <strong>new</strong>Values = <strong>new</strong> HashMap();
<a name="113" href="#113">113</a> } <strong>else</strong> {
<a name="114" href="#114">114</a> <strong>new</strong>Values = <strong>new</strong> HashMap(currentValues);
<a name="115" href="#115">115</a> }
<a name="116" href="#116">116</a> <strong>new</strong>Values.put(hostConfiguration, <strong>new</strong> Integer(maxHostConnections));
<a name="117" href="#117">117</a> setParameter(MAX_HOST_CONNECTIONS, newValues);
<a name="118" href="#118">118</a> }
<a name="119" href="#119">119</a>
<a name="120" href="#120">120</a> <em>/**</em>
<a name="121" href="#121">121</a> <em> * Gets the default maximum number of connections allowed for a given</em>
<a name="122" href="#122">122</a> <em> * host config.</em>
<a name="123" href="#123">123</a> <em> *</em>
<a name="124" href="#124">124</a> <em> * @return The default maximum.</em>
<a name="125" href="#125">125</a> <em> * </em>
<a name="126" href="#126">126</a> <em> * @see #MAX_HOST_CONNECTIONS</em>
<a name="127" href="#127">127</a> <em> */</em>
<a name="128" href="#128">128</a> <strong>public</strong> <strong>int</strong> getDefaultMaxConnectionsPerHost() {
<a name="129" href="#129">129</a> <strong>return</strong> getMaxConnectionsPerHost(HostConfiguration.ANY_HOST_CONFIGURATION);
<a name="130" href="#130">130</a> }
<a name="131" href="#131">131</a>
<a name="132" href="#132">132</a> <em>/**</em>
<a name="133" href="#133">133</a> <em> * Gets the maximum number of connections to be used for a particular host config. If</em>
<a name="134" href="#134">134</a> <em> * the value has not been specified for the given host the default value will be</em>
<a name="135" href="#135">135</a> <em> * returned.</em>
<a name="136" href="#136">136</a> <em> * </em>
<a name="137" href="#137">137</a> <em> * @param hostConfiguration The host config.</em>
<a name="138" href="#138">138</a> <em> * @return The maximum number of connections to be used for the given host config.</em>
<a name="139" href="#139">139</a> <em> * </em>
<a name="140" href="#140">140</a> <em> * @see #MAX_HOST_CONNECTIONS</em>
<a name="141" href="#141">141</a> <em> */</em>
<a name="142" href="#142">142</a> <strong>public</strong> <strong>int</strong> getMaxConnectionsPerHost(<a href="../../../../../org/apache/commons/httpclient/HostConfiguration.html">HostConfiguration</a> hostConfiguration) {
<a name="143" href="#143">143</a>
<a name="144" href="#144">144</a> Map m = (Map) getParameter(MAX_HOST_CONNECTIONS);
<a name="145" href="#145">145</a> <strong>if</strong> (m == <strong>null</strong>) {
<a name="146" href="#146">146</a> <em class="comment">// MAX_HOST_CONNECTIONS have not been configured, using the default value</em>
<a name="147" href="#147">147</a> <strong>return</strong> MultiThreadedHttpConnectionManager.DEFAULT_MAX_HOST_CONNECTIONS;
<a name="148" href="#148">148</a> } <strong>else</strong> {
<a name="149" href="#149">149</a> Integer max = (Integer) m.get(hostConfiguration);
<a name="150" href="#150">150</a> <strong>if</strong> (max == <strong>null</strong> && hostConfiguration != HostConfiguration.ANY_HOST_CONFIGURATION) {
<a name="151" href="#151">151</a> <em class="comment">// the value has not been configured specifically for this host config,</em>
<a name="152" href="#152">152</a> <em class="comment">// use the default value</em>
<a name="153" href="#153">153</a> <strong>return</strong> getMaxConnectionsPerHost(HostConfiguration.ANY_HOST_CONFIGURATION);
<a name="154" href="#154">154</a> } <strong>else</strong> {
<a name="155" href="#155">155</a> <strong>return</strong> (
<a name="156" href="#156">156</a> max == <strong>null</strong>
<a name="157" href="#157">157</a> ? MultiThreadedHttpConnectionManager.DEFAULT_MAX_HOST_CONNECTIONS
<a name="158" href="#158">158</a> : max.intValue()
<a name="159" href="#159">159</a> );
<a name="160" href="#160">160</a> }
<a name="161" href="#161">161</a> }
<a name="162" href="#162">162</a> }
<a name="163" href="#163">163</a>
<a name="164" href="#164">164</a> <em>/**</em>
<a name="165" href="#165">165</a> <em> * Sets the maximum number of connections allowed.</em>
<a name="166" href="#166">166</a> <em> *</em>
<a name="167" href="#167">167</a> <em> * @param maxTotalConnections The maximum number of connections allowed.</em>
<a name="168" href="#168">168</a> <em> * </em>
<a name="169" href="#169">169</a> <em> * @see #MAX_TOTAL_CONNECTIONS</em>
<a name="170" href="#170">170</a> <em> */</em>
<a name="171" href="#171">171</a> <strong>public</strong> <strong>void</strong> setMaxTotalConnections(<strong>int</strong> maxTotalConnections) {
<a name="172" href="#172">172</a> setIntParameter(
<a name="173" href="#173">173</a> HttpConnectionManagerParams.MAX_TOTAL_CONNECTIONS,
<a name="174" href="#174">174</a> maxTotalConnections);
<a name="175" href="#175">175</a> }
<a name="176" href="#176">176</a>
<a name="177" href="#177">177</a> <em>/**</em>
<a name="178" href="#178">178</a> <em> * Gets the maximum number of connections allowed.</em>
<a name="179" href="#179">179</a> <em> *</em>
<a name="180" href="#180">180</a> <em> * @return The maximum number of connections allowed.</em>
<a name="181" href="#181">181</a> <em> * </em>
<a name="182" href="#182">182</a> <em> * @see #MAX_TOTAL_CONNECTIONS</em>
<a name="183" href="#183">183</a> <em> */</em>
<a name="184" href="#184">184</a> <strong>public</strong> <strong>int</strong> getMaxTotalConnections() {
<a name="185" href="#185">185</a> <strong>return</strong> getIntParameter(
<a name="186" href="#186">186</a> HttpConnectionManagerParams.MAX_TOTAL_CONNECTIONS,
<a name="187" href="#187">187</a> MultiThreadedHttpConnectionManager.DEFAULT_MAX_TOTAL_CONNECTIONS);
<a name="188" href="#188">188</a> }
<a name="189" href="#189">189</a>
<a name="190" href="#190">190</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
|