You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by bu...@apache.org on 2016/09/20 21:55:11 UTC
svn commit: r997865 - in /websites/staging/mina/trunk/content: ./
mina-project/userguide/ch4-session/ch4-session.html
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>