<!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="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>AprSocketSession xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/mina/transport/socket/apr/AprSocketSession.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.transport.socket.apr;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.RuntimeIoException;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.DefaultTransportMetadata;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoProcessor;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoService;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.TransportMetadata;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSessionConfig;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.AbstractSocketSessionConfig;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.SocketSessionConfig;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.tomcat.jni.Socket;
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * An {@link IoSession} for APR TCP socket based session.</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * It's implementing the usual common features for {@SocketSession}. </em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> *</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * @version $Rev: 671827 $, $Date: 2008-06-26 10:49:48 +0200 (jeu, 26 jun 2008) $</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> */</em>
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/mina/transport/socket/apr/AprSocketSession.html">AprSocketSession</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> {
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>  	
<a name="46" href="#46">46</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/mina/core/service/TransportMetadata.html">TransportMetadata</a> METADATA =
<a name="47" href="#47">47</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/service/DefaultTransportMetadata.html">DefaultTransportMetadata</a>(
<a name="48" href="#48">48</a>                  <span class="jxr_string">"apr"</span>, <span class="jxr_string">"socket"</span>, false, <strong class="jxr_keyword">true</strong>,
<a name="49" href="#49">49</a>                  InetSocketAddress.<strong class="jxr_keyword">class</strong>,
<a name="50" href="#50">50</a>                  SocketSessionConfig.<strong class="jxr_keyword">class</strong>,
<a name="51" href="#51">51</a>                  IoBuffer.<strong class="jxr_keyword">class</strong>);
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/mina/transport/socket/SocketSessionConfig.html">SocketSessionConfig</a> config = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/apr/AprDatagramSession.html">SessionConfigImpl</a>();
<a name="54" href="#54">54</a>      
<a name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * Create an instance of {@link AprSocketSession}. </em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * </em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     * {@inheritDoc} </em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     */</em>
<a name="60" href="#60">60</a>      <a href="../../../../../../org/apache/mina/transport/socket/apr/AprSocketSession.html">AprSocketSession</a>(
<a name="61" href="#61">61</a>              <a href="../../../../../../org/apache/mina/core/service/IoService.html">IoService</a> service, IoProcessor&lt;AprSession&gt; processor, <strong class="jxr_keyword">long</strong> descriptor) <strong class="jxr_keyword">throws</strong> Exception {
<a name="62" href="#62">62</a>          <strong class="jxr_keyword">super</strong>(service, processor, descriptor);
<a name="63" href="#63">63</a>          <strong class="jxr_keyword">this</strong>.config.setAll(service.getSessionConfig());
<a name="64" href="#64">64</a>      }
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>      <em class="jxr_javadoccomment">/**</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/transport/socket/SocketSessionConfig.html">SocketSessionConfig</a> getConfig() {
<a name="70" href="#70">70</a>          <strong class="jxr_keyword">return</strong> config;
<a name="71" href="#71">71</a>      }
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>      <em class="jxr_javadoccomment">/**</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     */</em>
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/core/service/TransportMetadata.html">TransportMetadata</a> getTransportMetadata() {
<a name="77" href="#77">77</a>          <strong class="jxr_keyword">return</strong> METADATA;
<a name="78" href="#78">78</a>      }
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>      <em class="jxr_javadoccomment">/**</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * The implementation for the {@link IoSessionConfig} related to APR TCP socket.</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     */</em>
<a name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/mina/transport/socket/apr/AprDatagramSession.html">SessionConfigImpl</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/mina/transport/socket/AbstractSocketSessionConfig.html">AbstractSocketSessionConfig</a> {
<a name="85" href="#85">85</a>      	<em class="jxr_javadoccomment">/**</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">         */</em>
<a name="88" href="#88">88</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isKeepAlive() {
<a name="89" href="#89">89</a>              <strong class="jxr_keyword">try</strong> {
<a name="90" href="#90">90</a>                  <strong class="jxr_keyword">return</strong> Socket.optGet(getDescriptor(), Socket.APR_SO_KEEPALIVE) == 1;
<a name="91" href="#91">91</a>              } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="92" href="#92">92</a>                  <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to get SO_KEEPALIVE."</span>, e);
<a name="93" href="#93">93</a>              }
<a name="94" href="#94">94</a>          }
<a name="95" href="#95">95</a>          
<a name="96" href="#96">96</a>          <em class="jxr_javadoccomment">/**</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">         */</em>
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setKeepAlive(<strong class="jxr_keyword">boolean</strong> on) {
<a name="100" href="#100">100</a>             Socket.optSet(getDescriptor(), Socket.APR_SO_KEEPALIVE, on ? 1 : 0);
<a name="101" href="#101">101</a>         }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>         <em class="jxr_javadoccomment">/**</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">         * not supported for the moment</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">         */</em>
<a name="107" href="#107">107</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isOobInline() {
<a name="108" href="#108">108</a>             <strong class="jxr_keyword">return</strong> false;
<a name="109" href="#109">109</a>         }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>         <em class="jxr_javadoccomment">/**</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">         * not supported for the moment</em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">         */</em>
<a name="115" href="#115">115</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOobInline(<strong class="jxr_keyword">boolean</strong> on) {
<a name="116" href="#116">116</a>         }
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>         <em class="jxr_javadoccomment">/**</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">         */</em>
<a name="121" href="#121">121</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isReuseAddress() {
<a name="122" href="#122">122</a>             <strong class="jxr_keyword">try</strong> {
<a name="123" href="#123">123</a>                 <strong class="jxr_keyword">return</strong> Socket.optGet(getDescriptor(), Socket.APR_SO_REUSEADDR) == 1;
<a name="124" href="#124">124</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="125" href="#125">125</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to get SO_REUSEADDR."</span>, e);
<a name="126" href="#126">126</a>             }
<a name="127" href="#127">127</a>         }
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>         <em class="jxr_javadoccomment">/**</em>
<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">         */</em>
<a name="132" href="#132">132</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setReuseAddress(<strong class="jxr_keyword">boolean</strong> on) {
<a name="133" href="#133">133</a>             Socket.optSet(getDescriptor(), Socket.APR_SO_REUSEADDR, on ? 1 : 0);
<a name="134" href="#134">134</a>         }
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>         <em class="jxr_javadoccomment">/**</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">         */</em>
<a name="139" href="#139">139</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getSoLinger() {
<a name="140" href="#140">140</a>             <strong class="jxr_keyword">try</strong> {
<a name="141" href="#141">141</a>                 <strong class="jxr_keyword">return</strong> Socket.optGet(getDescriptor(), Socket.APR_SO_LINGER);
<a name="142" href="#142">142</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="143" href="#143">143</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to get SO_LINGER."</span>, e);
<a name="144" href="#144">144</a>             }
<a name="145" href="#145">145</a>         }
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>         <em class="jxr_javadoccomment">/**</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">         */</em>
<a name="150" href="#150">150</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setSoLinger(<strong class="jxr_keyword">int</strong> linger) {
<a name="151" href="#151">151</a>             <em class="jxr_comment">// TODO: Figure out how to disable this.</em>
<a name="152" href="#152">152</a>             Socket.optSet(getDescriptor(), Socket.APR_SO_LINGER, linger);
<a name="153" href="#153">153</a>         }
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>         <em class="jxr_javadoccomment">/**</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">         */</em>
<a name="158" href="#158">158</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isTcpNoDelay() {
<a name="159" href="#159">159</a>             <strong class="jxr_keyword">try</strong> {
<a name="160" href="#160">160</a>                 <strong class="jxr_keyword">return</strong> Socket.optGet(getDescriptor(), Socket.APR_TCP_NODELAY) == 1;
<a name="161" href="#161">161</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="162" href="#162">162</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to get TCP_NODELAY."</span>, e);
<a name="163" href="#163">163</a>             }
<a name="164" href="#164">164</a>         }
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>         <em class="jxr_javadoccomment">/**</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">         */</em>
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTcpNoDelay(<strong class="jxr_keyword">boolean</strong> on) {
<a name="170" href="#170">170</a>             Socket.optSet(getDescriptor(), Socket.APR_TCP_NODELAY, on ? 1 : 0);
<a name="171" href="#171">171</a>         }
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>         <em class="jxr_javadoccomment">/**</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">         */</em>
<a name="176" href="#176">176</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getTrafficClass() {
<a name="177" href="#177">177</a>             <strong class="jxr_keyword">return</strong> 0;
<a name="178" href="#178">178</a>         }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>         <em class="jxr_javadoccomment">/**</em>
<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">         */</em>
<a name="183" href="#183">183</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTrafficClass(<strong class="jxr_keyword">int</strong> tc) {
<a name="184" href="#184">184</a>         }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>         <em class="jxr_javadoccomment">/**</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">         */</em>
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getSendBufferSize() {
<a name="190" href="#190">190</a>             <strong class="jxr_keyword">try</strong> {
<a name="191" href="#191">191</a>                 <strong class="jxr_keyword">return</strong> Socket.optGet(getDescriptor(), Socket.APR_SO_SNDBUF);
<a name="192" href="#192">192</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="193" href="#193">193</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"APR Exception"</span>, e);
<a name="194" href="#194">194</a>             }
<a name="195" href="#195">195</a>         }
<a name="196" href="#196">196</a>         
<a name="197" href="#197">197</a>         <em class="jxr_javadoccomment">/**</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">         */</em>
<a name="200" href="#200">200</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setSendBufferSize(<strong class="jxr_keyword">int</strong> size) {
<a name="201" href="#201">201</a>             Socket.optSet(getDescriptor(), Socket.APR_SO_SNDBUF, size);
<a name="202" href="#202">202</a>         }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>         <em class="jxr_javadoccomment">/**</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">         */</em>
<a name="207" href="#207">207</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getReceiveBufferSize() {
<a name="208" href="#208">208</a>             <strong class="jxr_keyword">try</strong> {
<a name="209" href="#209">209</a>                 <strong class="jxr_keyword">return</strong> Socket.optGet(getDescriptor(), Socket.APR_SO_RCVBUF);
<a name="210" href="#210">210</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="211" href="#211">211</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"APR Exception"</span>, e);
<a name="212" href="#212">212</a>             }
<a name="213" href="#213">213</a>         }
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>         <em class="jxr_javadoccomment">/**</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">         */</em>
<a name="218" href="#218">218</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setReceiveBufferSize(<strong class="jxr_keyword">int</strong> size) {
<a name="219" href="#219">219</a>             Socket.optSet(getDescriptor(), Socket.APR_SO_RCVBUF, size);
<a name="220" href="#220">220</a>         }
<a name="221" href="#221">221</a>     }
<a name="222" href="#222">222</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

