You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by bu...@apache.org on 2014/11/11 01:55:32 UTC
svn commit: r928668 - in /websites/staging/thrift/trunk/content: ./
tutorial/haxe.html
Author: buildbot
Date: Tue Nov 11 00:55:31 2014
New Revision: 928668
Log:
Staging update by buildbot for thrift
Modified:
websites/staging/thrift/trunk/content/ (props changed)
websites/staging/thrift/trunk/content/tutorial/haxe.html
Propchange: websites/staging/thrift/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Nov 11 00:55:31 2014
@@ -1 +1 @@
-1637863
+1638003
Modified: websites/staging/thrift/trunk/content/tutorial/haxe.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/haxe.html (original)
+++ websites/staging/thrift/trunk/content/tutorial/haxe.html Tue Nov 11 00:55:31 2014
@@ -97,400 +97,401 @@
<h3 id="client">Client</h3>
<p>For this tutorial, we put both the server and the client main code into one single program.
Depending on the arguments passed, it runs as a server or as a client program.</p>
-<div class="codehilite"><pre><span class="n">package</span><span class="p">;</span>
+<div class="codehilite"><pre><span class="nt"><div</span> <span class="na">class=</span><span class="s">"codehilite"</span><span class="nt">><pre><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>package<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
</pre></div>
-<p>import org.apache.thrift.<em>;
-import org.apache.thrift.protocol.</em>;
-import org.apache.thrift.transport.<em>;
-import org.apache.thrift.server.</em>;
-import org.apache.thrift.meta_data.*;</p>
-<p>import tutorial.<em>;
-import shared.</em>;</p>
-<p>enum Prot {
- binary;
- json;
-}</p>
-<p>enum Trns {
- socket;
- http;
-}</p>
-<p>class Main {</p>
-<div class="codehilite"><pre><span class="n">private</span> <span class="n">static</span> <span class="n">var</span> <span class="n">server</span> <span class="p">:</span> <span class="n">Bool</span> <span class="p">=</span> <span class="n">false</span><span class="p">;</span>
-<span class="n">private</span> <span class="n">static</span> <span class="n">var</span> <span class="n">framed</span> <span class="p">:</span> <span class="n">Bool</span> <span class="p">=</span> <span class="n">false</span><span class="p">;</span>
-<span class="n">private</span> <span class="n">static</span> <span class="n">var</span> <span class="n">buffered</span> <span class="p">:</span> <span class="n">Bool</span> <span class="p">=</span> <span class="n">false</span><span class="p">;</span>
-<span class="n">private</span> <span class="n">static</span> <span class="n">var</span> <span class="n">prot</span> <span class="p">:</span> <span class="n">Prot</span> <span class="p">=</span> <span class="n">binary</span><span class="p">;</span>
-<span class="n">private</span> <span class="n">static</span> <span class="n">var</span> <span class="n">trns</span> <span class="p">:</span> <span class="n">Trns</span> <span class="p">=</span> <span class="n">socket</span><span class="p">;</span>
-
-<span class="n">private</span> <span class="n">static</span> <span class="n">var</span> <span class="n">targetHost</span> <span class="p">:</span> <span class="n">String</span> <span class="p">=</span> "<span class="n">localhost</span>"<span class="p">;</span>
-<span class="n">private</span> <span class="n">static</span> <span class="n">var</span> <span class="n">targetPort</span> <span class="p">:</span> <span class="n">Int</span> <span class="p">=</span> 9090<span class="p">;</span>
-
-<span class="n">static</span> <span class="k">function</span> <span class="n">main</span><span class="p">()</span> <span class="p">{</span>
- #<span class="k">if</span> ! <span class="p">(</span><span class="n">flash</span> <span class="o">||</span> <span class="n">js</span><span class="p">)</span>
- <span class="k">try</span> <span class="p">{</span>
- <span class="n">ParseArgs</span><span class="p">();</span>
- <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">e</span> <span class="p">:</span> <span class="n">String</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
- <span class="n">trace</span><span class="p">(</span><span class="n">GetHelp</span><span class="p">());</span>
- <span class="k">return</span><span class="p">;</span>
- <span class="p">}</span>
- #<span class="k">end</span>
-
- <span class="k">try</span> <span class="p">{</span>
- <span class="k">if</span> <span class="p">(</span><span class="n">server</span><span class="p">)</span>
- <span class="n">RunServer</span><span class="p">();</span>
- <span class="k">else</span>
- <span class="n">RunClient</span><span class="p">();</span>
- <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">e</span> <span class="p">:</span> <span class="n">String</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
- <span class="p">}</span>
-
- <span class="n">trace</span><span class="p">(</span>"<span class="n">Completed</span><span class="p">.</span>"<span class="p">);</span>
-<span class="p">}</span>
-
-
-#<span class="k">if</span> ! <span class="p">(</span><span class="n">flash</span> <span class="o">||</span> <span class="n">js</span><span class="p">)</span>
-
-<span class="n">private</span> <span class="n">static</span> <span class="k">function</span> <span class="n">GetHelp</span><span class="p">()</span> <span class="p">:</span> <span class="n">String</span> <span class="p">{</span>
- <span class="k">return</span> <span class="n">Sys</span><span class="p">.</span><span class="n">executablePath</span><span class="p">()</span><span class="o">+</span>" <span class="n">modus</span> <span class="n">trnsOption</span> <span class="n">transport</span> <span class="n">protocol</span><span class="o">\</span><span class="n">n</span>"
- <span class="o">+</span>"<span class="n">Options</span><span class="p">:</span><span class="o">\</span><span class="n">n</span>"
- <span class="o">+</span>" <span class="n">modus</span><span class="p">:</span> <span class="n">client</span><span class="p">,</span> <span class="n">server</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span> <span class="n">client</span><span class="p">)</span><span class="o">\</span><span class="n">n</span>"
- <span class="o">+</span>" <span class="n">trnsOption</span><span class="p">:</span> <span class="n">framed</span><span class="p">,</span> <span class="n">buffered</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span> <span class="n">none</span><span class="p">)</span><span class="o">\</span><span class="n">n</span>"
- <span class="o">+</span>" <span class="n">transport</span><span class="p">:</span> <span class="n">socket</span><span class="p">,</span> <span class="n">http</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span> <span class="n">socket</span><span class="p">)</span><span class="o">\</span><span class="n">n</span>"
- <span class="o">+</span>" <span class="n">protocol</span><span class="p">:</span> <span class="n">binary</span><span class="p">,</span> <span class="n">json</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span> <span class="n">binary</span><span class="p">)</span><span class="o">\</span><span class="n">n</span>"
- <span class="o">+</span>"<span class="o">\</span><span class="n">n</span>"
- <span class="o">+</span>"<span class="n">All</span> <span class="n">arguments</span> <span class="n">are</span> <span class="n">optional</span><span class="o">.\</span><span class="n">n</span>"<span class="p">;</span>
-<span class="p">}</span>
-
-
-<span class="n">private</span> <span class="n">static</span> <span class="k">function</span> <span class="n">ParseArgs</span><span class="p">()</span> <span class="p">:</span> <span class="n">Void</span> <span class="p">{</span>
- <span class="n">var</span> <span class="n">step</span> <span class="p">=</span> 0<span class="p">;</span>
- <span class="k">for</span> <span class="p">(</span><span class="n">arg</span> <span class="n">in</span> <span class="n">Sys</span><span class="p">.</span><span class="n">args</span><span class="p">())</span> <span class="p">{</span>
-
- <span class="o">//</span> <span class="n">server</span><span class="o">|</span><span class="n">client</span>
- <span class="k">switch</span><span class="p">(</span><span class="n">step</span><span class="p">)</span> <span class="p">{</span>
- <span class="k">case</span> 0<span class="p">:</span>
- <span class="o">++</span><span class="n">step</span><span class="p">;</span>
- <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">client</span>"<span class="p">)</span>
- <span class="n">server</span> <span class="p">=</span> <span class="n">false</span><span class="p">;</span>
- <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">server</span>"<span class="p">)</span>
- <span class="n">server</span> <span class="p">=</span> <span class="n">true</span><span class="p">;</span>
- <span class="k">else</span>
- <span class="n">throw</span> "<span class="n">First</span> <span class="n">argument</span> <span class="n">must</span> <span class="n">be</span> <span class="s">'server'</span> <span class="n">or</span> <span class="s">'client'</span>"<span class="p">;</span>
-
- <span class="k">case</span> 1<span class="p">:</span>
- <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">framed</span>"<span class="p">)</span> <span class="p">{</span>
- <span class="n">framed</span> <span class="p">=</span> <span class="n">true</span><span class="p">;</span>
- <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">buffered</span>"<span class="p">)</span> <span class="p">{</span>
- <span class="n">buffered</span> <span class="p">=</span> <span class="n">true</span><span class="p">;</span>
- <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">socket</span>"<span class="p">)</span> <span class="p">{</span>
- <span class="n">trns</span> <span class="p">=</span> <span class="n">socket</span><span class="p">;</span>
- <span class="o">++</span><span class="n">step</span><span class="p">;</span>
- <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">http</span>"<span class="p">)</span> <span class="p">{</span>
- <span class="n">trns</span> <span class="p">=</span> <span class="n">http</span><span class="p">;</span>
- <span class="o">++</span><span class="n">step</span><span class="p">;</span>
- <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
- <span class="n">throw</span> "<span class="n">Unknown</span> <span class="n">transport</span> "<span class="o">+</span><span class="n">arg</span><span class="p">;</span>
- <span class="p">}</span>
-
- <span class="k">case</span> 2<span class="p">:</span>
- <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">binary</span>"<span class="p">)</span> <span class="p">{</span>
- <span class="n">prot</span> <span class="p">=</span> <span class="n">binary</span><span class="p">;</span>
- <span class="o">++</span><span class="n">step</span><span class="p">;</span>
- <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="n">arg</span> <span class="o">==</span> "<span class="n">json</span>"<span class="p">)</span> <span class="p">{</span>
- <span class="n">prot</span> <span class="p">=</span> <span class="n">json</span><span class="p">;</span>
- <span class="o">++</span><span class="n">step</span><span class="p">;</span>
- <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
- <span class="n">throw</span> "<span class="n">Unknown</span> <span class="n">protocol</span> "<span class="o">+</span><span class="n">arg</span><span class="p">;</span>
- <span class="p">}</span>
-
- <span class="n">default</span><span class="p">:</span>
- <span class="n">throw</span> "<span class="n">Unexpected</span> <span class="n">argument</span> "<span class="o">+</span><span class="n">arg</span><span class="p">;</span>
- <span class="p">}</span>
-
- <span class="k">if</span> <span class="p">(</span> <span class="n">framed</span> <span class="o">&&</span> <span class="n">buffered</span><span class="p">)</span>
- <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="n">WN</span><span class="p">:</span> <span class="n">framed</span> <span class="n">supersedes</span> <span class="n">buffered</span>"<span class="p">);</span>
- <span class="p">}</span>
-
- <span class="p">}</span>
-<span class="p">}</span>
-
-#<span class="k">end</span>
-
-<span class="n">private</span> <span class="n">static</span> <span class="k">function</span> <span class="n">ClientSetup</span><span class="p">()</span> <span class="p">:</span> <span class="n">Calculator</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="n">Client</span> <span class="n">configuration</span><span class="p">:</span>"<span class="p">);</span>
-
- <span class="o">//</span> <span class="n">endpoint</span> <span class="n">transport</span>
- <span class="n">var</span> <span class="n">transport</span> <span class="p">:</span> <span class="n">TTransport</span><span class="p">;</span>
- <span class="k">switch</span><span class="p">(</span><span class="n">trns</span><span class="p">)</span>
- <span class="p">{</span>
- <span class="k">case</span> <span class="n">socket</span><span class="p">:</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'- socket transport $targetHost:$targetPort'</span><span class="p">);</span>
- <span class="n">transport</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TSocket</span><span class="p">(</span> <span class="n">targetHost</span><span class="p">,</span> <span class="n">targetPort</span><span class="p">);</span>
- <span class="k">case</span> <span class="n">http</span><span class="p">:</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'- HTTP transport $targetHost'</span><span class="p">);</span>
- <span class="n">transport</span> <span class="p">=</span> <span class="n">new</span> <span class="n">THttpClient</span><span class="p">(</span> <span class="n">targetHost</span><span class="p">);</span>
- <span class="n">default</span><span class="p">:</span>
- <span class="n">throw</span> "<span class="n">Unhandled</span> <span class="n">transport</span>"<span class="p">;</span>
- <span class="p">}</span>
-
-
- <span class="o">//</span> <span class="n">optinal</span> <span class="n">layered</span> <span class="n">transport</span>
- <span class="k">if</span> <span class="p">(</span> <span class="n">framed</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">framed</span> <span class="n">transport</span>"<span class="p">);</span>
- <span class="n">transport</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TFramedTransport</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="n">buffered</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">buffered</span> <span class="n">transport</span>"<span class="p">);</span>
- <span class="n">throw</span> "<span class="n">TBufferedTransport</span> <span class="n">not</span> <span class="n">implemented</span> <span class="n">yet</span>"<span class="p">;</span>
- <span class="o">//</span><span class="n">transport</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TBufferedTransport</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
- <span class="p">}</span>
-
-
- <span class="o">//</span> <span class="n">protocol</span>
- <span class="n">var</span> <span class="n">protocol</span> <span class="p">:</span> <span class="n">TProtocol</span><span class="p">;</span>
- <span class="k">switch</span><span class="p">(</span><span class="n">prot</span><span class="p">)</span>
- <span class="p">{</span>
- <span class="k">case</span> <span class="n">binary</span><span class="p">:</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">binary</span> <span class="n">protocol</span>"<span class="p">);</span>
- <span class="n">protocol</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TBinaryProtocol</span><span class="p">(</span> <span class="n">transport</span><span class="p">);</span>
- <span class="k">case</span> <span class="n">json</span><span class="p">:</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">JSON</span> <span class="n">protocol</span>"<span class="p">);</span>
- <span class="n">protocol</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TJSONProtocol</span><span class="p">(</span> <span class="n">transport</span><span class="p">);</span>
- <span class="n">default</span><span class="p">:</span>
- <span class="n">throw</span> "<span class="n">Unhandled</span> <span class="n">protocol</span>"<span class="p">;</span>
- <span class="p">}</span>
-
-
- <span class="o">//</span> <span class="n">put</span> <span class="n">everything</span> <span class="n">together</span>
- <span class="n">transport</span><span class="p">.</span><span class="n">open</span><span class="p">();</span>
- <span class="k">return</span> <span class="n">new</span> <span class="n">CalculatorImpl</span><span class="p">(</span><span class="n">protocol</span><span class="p">,</span><span class="n">protocol</span><span class="p">);</span>
-<span class="p">}</span>
-
-
-<span class="n">private</span> <span class="n">static</span> <span class="k">function</span> <span class="n">RunClient</span><span class="p">()</span> <span class="p">:</span> <span class="n">Void</span> <span class="p">{</span>
- <span class="n">var</span> <span class="n">client</span> <span class="p">=</span> <span class="n">ClientSetup</span><span class="p">();</span>
-
- <span class="k">try</span> <span class="p">{</span>
- <span class="n">client</span><span class="p">.</span><span class="n">ping</span><span class="p">();</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="n">ping</span><span class="p">()</span> <span class="n">successful</span>"<span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">TException</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'ping() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">Dynamic</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'ping() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span>
-
- <span class="k">try</span> <span class="p">{</span>
- <span class="n">var</span> <span class="n">sum</span> <span class="p">=</span> <span class="n">client</span><span class="p">.</span><span class="n">add</span><span class="p">(</span> 1<span class="p">,</span> 1<span class="p">);</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'1+1=$sum'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">TException</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'add() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">Dynamic</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'add() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span>
-
-
- <span class="n">var</span> <span class="n">work</span> <span class="p">=</span> <span class="n">new</span> <span class="n">tutorial</span><span class="p">.</span><span class="n">Work</span><span class="p">();</span>
- <span class="n">work</span><span class="p">.</span><span class="n">op</span> <span class="p">=</span> <span class="n">tutorial</span><span class="p">.</span><span class="n">Operation</span><span class="p">.</span><span class="n">DIVIDE</span><span class="p">;</span>
- <span class="n">work</span><span class="p">.</span><span class="n">num1</span> <span class="p">=</span> 1<span class="p">;</span>
- <span class="n">work</span><span class="p">.</span><span class="n">num2</span> <span class="p">=</span> 0<span class="p">;</span>
- <span class="k">try</span> <span class="p">{</span>
- <span class="n">var</span> <span class="n">quotient</span> <span class="p">=</span> <span class="n">client</span><span class="p">.</span><span class="n">calculate</span><span class="p">(</span> 1<span class="p">,</span> <span class="n">work</span><span class="p">);</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'Whoa we can divide by 0! Result = $quotient'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">TException</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'calculate() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">Dynamic</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'calculate() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span>
-
- <span class="n">work</span><span class="p">.</span><span class="n">op</span> <span class="p">=</span> <span class="n">tutorial</span><span class="p">.</span><span class="n">Operation</span><span class="p">.</span><span class="n">SUBTRACT</span><span class="p">;</span>
- <span class="n">work</span><span class="p">.</span><span class="n">num1</span> <span class="p">=</span> 15<span class="p">;</span>
- <span class="n">work</span><span class="p">.</span><span class="n">num2</span> <span class="p">=</span> 10<span class="p">;</span>
- <span class="k">try</span> <span class="p">{</span>
- <span class="n">var</span> <span class="n">diff</span> <span class="p">=</span> <span class="n">client</span><span class="p">.</span><span class="n">calculate</span><span class="p">(</span> 1<span class="p">,</span> <span class="n">work</span><span class="p">);</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'15-10=$diff'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">TException</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'calculate() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">Dynamic</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'calculate() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span>
-
-
- <span class="k">try</span> <span class="p">{</span>
- <span class="n">var</span> <span class="nb">log</span> <span class="p">:</span> <span class="n">SharedStruct</span> <span class="p">=</span> <span class="n">client</span><span class="p">.</span><span class="n">getStruct</span><span class="p">(</span> 1<span class="p">);</span>
- <span class="n">var</span> <span class="n">logval</span> <span class="p">=</span> <span class="nb">log</span><span class="p">.</span><span class="n">value</span><span class="p">;</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'Check log: $logval'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">TException</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'getStruct() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="n">error</span> <span class="p">:</span> <span class="n">Dynamic</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'getStruct() failed: $error'</span><span class="p">);</span>
- <span class="p">}</span>
-<span class="p">}</span>
-
-
-<span class="n">private</span> <span class="n">static</span> <span class="k">function</span> <span class="n">ServerSetup</span><span class="p">()</span> <span class="p">:</span> <span class="n">TServer</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="n">Server</span> <span class="n">configuration</span><span class="p">:</span>"<span class="p">);</span>
-
- <span class="o">//</span> <span class="n">endpoint</span> <span class="n">transport</span>
- <span class="n">var</span> <span class="n">transport</span> <span class="p">:</span> <span class="n">TServerTransport</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
- <span class="k">switch</span><span class="p">(</span><span class="n">trns</span><span class="p">)</span>
- <span class="p">{</span>
- <span class="k">case</span> <span class="n">socket</span><span class="p">:</span>
- #<span class="k">if</span> <span class="p">(</span><span class="n">flash</span> <span class="o">||</span> <span class="n">js</span><span class="p">)</span>
- <span class="n">throw</span> <span class="s">'current platform does not support socket servers'</span><span class="p">;</span>
- #<span class="k">else</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'- socket transport port $targetPort'</span><span class="p">);</span>
- <span class="n">transport</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TServerSocket</span><span class="p">(</span> <span class="n">targetPort</span><span class="p">);</span>
- #<span class="k">end</span>
- <span class="k">case</span> <span class="n">http</span><span class="p">:</span>
- <span class="n">throw</span> "<span class="n">HTTP</span> <span class="n">server</span> <span class="n">not</span> <span class="n">implemented</span> <span class="n">yet</span>"<span class="p">;</span>
- <span class="o">//</span><span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">http</span> <span class="n">transport</span>"<span class="p">);</span>
- <span class="o">//</span><span class="n">transport</span> <span class="p">=</span> <span class="n">new</span> <span class="n">THttpClient</span><span class="p">(</span> <span class="n">targetHost</span><span class="p">);</span>
- <span class="n">default</span><span class="p">:</span>
- <span class="n">throw</span> "<span class="n">Unhandled</span> <span class="n">transport</span>"<span class="p">;</span>
- <span class="p">}</span>
-
- <span class="o">//</span> <span class="n">optional</span><span class="p">:</span> <span class="n">layered</span> <span class="n">transport</span>
- <span class="n">var</span> <span class="n">transfactory</span> <span class="p">:</span> <span class="n">TTransportFactory</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
- <span class="k">if</span> <span class="p">(</span> <span class="n">framed</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">framed</span> <span class="n">transport</span>"<span class="p">);</span>
- <span class="n">transfactory</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TFramedTransportFactory</span><span class="p">();</span>
- <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="n">buffered</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">buffered</span> <span class="n">transport</span>"<span class="p">);</span>
- <span class="n">throw</span> "<span class="n">TBufferedTransport</span> <span class="n">not</span> <span class="n">implemented</span> <span class="n">yet</span>"<span class="p">;</span>
- <span class="o">//</span><span class="n">transfactory</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TBufferedTransportFactory</span><span class="p">();</span>
- <span class="p">}</span>
-
- <span class="o">//</span> <span class="n">protocol</span>
- <span class="n">var</span> <span class="n">protfactory</span> <span class="p">:</span> <span class="n">TProtocolFactory</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
- <span class="k">switch</span><span class="p">(</span><span class="n">prot</span><span class="p">)</span>
- <span class="p">{</span>
- <span class="k">case</span> <span class="n">binary</span><span class="p">:</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">binary</span> <span class="n">protocol</span>"<span class="p">);</span>
- <span class="n">protfactory</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TBinaryProtocolFactory</span><span class="p">();</span>
- <span class="k">case</span> <span class="n">json</span><span class="p">:</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="o">-</span> <span class="n">JSON</span> <span class="n">protocol</span>"<span class="p">);</span>
- <span class="n">protfactory</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TJSONProtocolFactory</span><span class="p">();</span>
- <span class="n">default</span><span class="p">:</span>
- <span class="n">throw</span> "<span class="n">Unhandled</span> <span class="n">protocol</span>"<span class="p">;</span>
- <span class="p">}</span>
-
- <span class="n">var</span> <span class="n">handler</span> <span class="p">=</span> <span class="n">new</span> <span class="n">CalculatorHandler</span><span class="p">();</span>
- <span class="n">var</span> <span class="n">processor</span> <span class="p">=</span> <span class="n">new</span> <span class="n">CalculatorProcessor</span><span class="p">(</span><span class="n">handler</span><span class="p">);</span>
- <span class="n">var</span> <span class="n">server</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TSimpleServer</span><span class="p">(</span> <span class="n">processor</span><span class="p">,</span> <span class="n">transport</span><span class="p">,</span> <span class="n">transfactory</span><span class="p">,</span> <span class="n">protfactory</span><span class="p">);</span>
- <span class="k">return</span> <span class="n">server</span><span class="p">;</span>
-<span class="p">}</span>
-
-
-<span class="n">private</span> <span class="n">static</span> <span class="k">function</span> <span class="n">RunServer</span><span class="p">()</span> <span class="p">:</span> <span class="n">Void</span> <span class="p">{</span>
- <span class="k">try</span>
- <span class="p">{</span>
- <span class="n">var</span> <span class="n">server</span> <span class="p">=</span> <span class="n">ServerSetup</span><span class="p">();</span>
-
- <span class="n">trace</span><span class="p">(</span>"<span class="o">\</span><span class="n">nStarting</span> <span class="n">the</span> <span class="n">server</span><span class="p">...</span>"<span class="p">);</span>
- <span class="n">server</span><span class="p">.</span><span class="n">Serve</span><span class="p">();</span>
- <span class="p">}</span>
- <span class="k">catch</span><span class="p">(</span> <span class="n">e</span> <span class="p">:</span> <span class="n">Dynamic</span><span class="p">)</span>
- <span class="p">{</span>
- <span class="n">trace</span><span class="p">(</span><span class="s">'RunServer() failed: $e'</span><span class="p">);</span>
- <span class="p">}</span>
- <span class="n">trace</span><span class="p">(</span>"<span class="n">done</span><span class="p">.</span>"<span class="p">);</span>
-<span class="p">}</span>
+<p><span class="kd">import</span> <span class="nx">org</span><span class="p">.</span><span class="nx">apache</span><span class="p">.</span><span class="nx">thrift</span><span class="p">.</span><span class="o"><em>;</span>
+<span class="kd">import</span> <span class="nx">org</span><span class="p">.</span><span class="nx">apache</span><span class="p">.</span><span class="nx">thrift</span><span class="p">.</span><span class="nx">protocol</span><span class="p">.</span><span class="o"></em>;</span>
+<span class="kd">import</span> <span class="nx">org</span><span class="p">.</span><span class="nx">apache</span><span class="p">.</span><span class="nx">thrift</span><span class="p">.</span><span class="nx">transport</span><span class="p">.</span><span class="o"><em>;</span>
+<span class="kd">import</span> <span class="nx">org</span><span class="p">.</span><span class="nx">apache</span><span class="p">.</span><span class="nx">thrift</span><span class="p">.</span><span class="nx">server</span><span class="p">.</span><span class="o"></em>;</span>
+<span class="kd">import</span> <span class="nx">org</span><span class="p">.</span><span class="nx">apache</span><span class="p">.</span><span class="nx">thrift</span><span class="p">.</span><span class="nx">meta_data</span><span class="p">.</span><span class="o">*;</span></p>
+<p><span class="kd">import</span> <span class="nx">tutorial</span><span class="p">.</span><span class="o"><em>;</span>
+<span class="kd">import</span> <span class="nx">shared</span><span class="p">.</span><span class="o"></em>;</span></p>
+<p><span class="nx">enum</span> <span class="nx">Prot</span> <span class="p">{</span>
+ <span class="nx">binary</span><span class="o">;</span>
+ <span class="nx">json</span><span class="o">;</span>
+<span class="p">}</span></p>
+<p><span class="nx">enum</span> <span class="nx">Trns</span> <span class="p">{</span>
+ <span class="nx">socket</span><span class="o">;</span>
+ <span class="nx">http</span><span class="o">;</span>
+<span class="p">}</span></p>
+<p><span class="kd">class</span> <span class="nx">Main</span> <span class="p">{</span></p>
+<div class="codehilite"><pre><span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>server<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">
></span>Bool<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>false<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>framed<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>Bool<span class="n
t"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>false<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>buffered<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>Bool<span class=
"nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>false<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>prot<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>Prot<span class="nt"
></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>binary<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>trns<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>Trns<span class="nt"
></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>socket<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>targetHost<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nb"</span><span class="nt">></span>String<span cl
ass="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>localhost<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>targetPort<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>Int<span class
="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>9090<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>function<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>main<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>()<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"err"</span><span class="nt">></span><span class="err">#</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>!<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>flash<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>||<span class="nt"></span></span> <span class="
nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>js<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>try<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>ParseArgs<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>();<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>e<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nb"</span><span class="nt">></span>String<span class="nt"></span><span</span> <sp
an class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>trace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>e<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>);<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>trace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>GetHelp<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>());<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>return<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"err"</span><span class="nt">></span><span class="err">#</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>end<span class="nt"></span></span>
+
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>try<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>server<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>RunServer<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>();<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>RunClient<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>();<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>e<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nb"</span><span class="nt">></span>String<span class="nt"></span><span</span> <sp
an class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>trace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>e<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>);<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span>
+
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>trace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>Completed.<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>);<span class="nt"></span></span>
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span>
+
+
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"err"</span><span class="nt">></span><span class="err">#</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>!<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>flash<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>||<span class="nt"></span></span> <span class="nt">
<span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>js<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span>
+
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>function<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>GetHelp<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>()<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></spa
n> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nb"</span><span class="nt">></span>String<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>return<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>Sys<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>executablePath<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>()<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span
><span class="nt">></span><span class="ni">&quot;</span> modus trnsOption transport protocol\n<span class="ni">&quot;</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>Options:\n<span class="ni">&quot;</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span> modus: client, server (default: client)\n<span class="ni">&quot;</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span> trnsOption: framed, buffered (default: none)\n<span class="ni">&quot;</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span> transport: socket, http (default: socket)\n<span class="ni">&quot;</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span> protocol: binary, json (default: binary)\n<span class="ni">&quot;</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>\n<span class="ni">&quot;</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>All arguments are optional.\n<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span>
+
+
+<span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>private<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>static<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>function<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>ParseArgs<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>()<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></s
pan> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>Void<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>step<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>0<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>for<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>in<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>Sys<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span>
<span class="s">"nx"</span><span class="nt">></span>args<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>())<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"c1"</span><span class="nt">></span>// server|client<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>switch<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>step<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>case<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>0<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>++<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>step<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>==<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>client<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><s
pan class="nt">></span>)<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>server<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>false<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>==<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&a
mp;quot;</span>server<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>server<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>true<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>throw<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>First argument must be <span class="ni">&</span><span class="err">#</span><span class="ni">39;</span>server<span class="ni">&</span><span class="err">#</span><span class="ni">39;</span> or <span class="ni">&</span><span class="err">#</span><span class="ni">39;</span>client<span class="ni">&</span><span class="err">#</span><span class="ni">39;&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>case<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>==<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>framed<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><s
pan class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>framed<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>true<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>==<span class="nt">&l
t;/span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>buffered<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>buffered<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kc"</span><span class="nt">></span>true<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>==<span class="nt">&l
t;/span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>socket<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>trns<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>socket<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>++<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>step<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>==<span class="nt">&l
t;/span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>http<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>trns<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>http<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>++<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>step<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span><span class="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>throw<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s2"</span><span class="nt">></span><span class="ni">&quot;</span>Unknown transport <span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"nx"</span><span class="nt">></span>arg<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"p"</span><span class="nt">></span>}<span class="nt"></span></span>
+
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>case<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>2<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>:<span class="nt"></span></span>
[... 379 lines stripped ...]