Author: buildbot Date: Tue Sep 20 21:55:11 2016 New Revision: 997865 Log: Staging update by buildbot for mina
Modified: websites/staging/mina/trunk/content/ (props changed) websites/staging/mina/trunk/content/mina-project/userguide/ch4-session/ch4-session.html Propchange: websites/staging/mina/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Tue Sep 20 21:55:11 2016 @@ -1 +1 @@ -1761643 +1761644 Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch4-session/ch4-session.html ============================================================================== --- websites/staging/mina/trunk/content/mina-project/userguide/ch4-session/ch4-session.html (original) +++ websites/staging/mina/trunk/content/mina-project/userguide/ch4-session/ch4-session.html Tue Sep 20 21:55:11 2016 @@ -291,31 +291,33 @@ Be aware that if the remote peer is not <p>As we said, this container is a key/value container, which default to a Map, but it's also possible to define another data structure if one want to handle long lived data, or to avoid storing all those data in memory if they are large : we can implement an interface and a factory that will be used to create this container when the session is created.</p> <p>This snippet of code shows how the container is created during the session initialization :</p> <div class="codehilite"><pre><span class="kd">protected</span> <span class="kd">final</span> <span class="kt">void</span> <span class="nf">initSession</span><span class="o">(</span><span class="n">IoSession</span> <span class="n">session</span><span class="o">,</span> - <span class="n">IoFuture</span> <span class="n">future</span><span class="o">,</span> <span class="n">IoSessionInitializer</span> <span class="n">sessionInitializer</span><span class="o">)</span> <span class="o">{</span> - <span class="o">...</span> - <span class="k">try</span> <span class="o">{</span> - <span class="o">((</span><span class="n">AbstractIoSession</span><span class="o">)</span> <span class="n">session</span><span class="o">).</span><span class="na">setAttributeMap</span><span class="o">(</span><span class="n">session</span><span class="o">.</span><span class="na">getService</span><span class="o">()</span> - <span class="o">.</span><span class="na">getSessionDataStructureFactory</span><span class="o">().</span><span class="na">getAttributeMap</span><span class="o">(</span><span class="n">session</span><span class="o">));</span> - <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">IoSessionInitializationException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span> - <span class="k">throw</span> <span class="n">e</span><span class="o">;</span> - <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span> - <span class="k">throw</span> <span class="k">new</span> <span class="nf">IoSessionInitializationException</span><span class="o">(</span> - <span class="s">"Failed to initialize an attributeMap."</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span> - <span class="o">}</span> - <span class="o">...</span> + <span class="n">IoFuture</span> <span class="n">future</span><span class="o">,</span> <span class="n">IoSessionInitializer</span> <span class="n">sessionInitializer</span><span class="o">)</span> <span class="o">{</span> + <span class="o">...</span> + <span class="k">try</span> <span class="o">{</span> + <span class="o">((</span><span class="n">AbstractIoSession</span><span class="o">)</span> <span class="n">session</span><span class="o">).</span><span class="na">setAttributeMap</span><span class="o">(</span><span class="n">session</span><span class="o">.</span><span class="na">getService</span><span class="o">()</span> + <span class="o">.</span><span class="na">getSessionDataStructureFactory</span><span class="o">().</span><span class="na">getAttributeMap</span><span class="o">(</span><span class="n">session</span><span class="o">));</span> + <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">IoSessionInitializationException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span> + <span class="k">throw</span> <span class="n">e</span><span class="o">;</span> + <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span> + <span class="k">throw</span> <span class="k">new</span> <span class="nf">IoSessionInitializationException</span><span class="o">(</span> + <span class="s">"Failed to initialize an attributeMap."</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span> + <span class="o">}</span> + <span class="o">...</span> </pre></div> <p>and here is the factory interface we can implement if we want to define another kind of container :</p> -<p>:::java - public interface IoSessionDataStructureFactory { - /*<em> - * Returns an {@link IoSessionAttributeMap} which is going to be associated - * with the specified <tt>session</tt>. Please note that the returned - * implementation must be thread-safe. - </em>/ - IoSessionAttributeMap getAttributeMap(IoSession session) throws Exception; - }</p> +<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">IoSessionDataStructureFactory</span> <span class="o">{</span> + <span class="cm">/**</span> +<span class="cm"> * Returns an {@link IoSessionAttributeMap} which is going to be associated</span> +<span class="cm"> * with the specified <tt>session</tt>. Please note that the returned</span> +<span class="cm"> * implementation must be thread-safe.</span> +<span class="cm"> */</span> + <span class="n">IoSessionAttributeMap</span> <span class="nf">getAttributeMap</span><span class="o">(</span><span class="n">IoSession</span> <span class="n">session</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span><span class="o">;</span> +<span class="o">}</span> +</pre></div> + + <h3 id="the-session-attributes-access">The session attributes access<a class="headerlink" href="#the-session-attributes-access" title="Permanent link">¶</a></h3> <p>There are many methods available to manipulate the session's attributes :</p> <ul>