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/09 02:00:49 UTC
svn commit: r928446 [2/3] - in /websites/staging/thrift/trunk/content: ./
lib/haxe.html lib/index.html sitemap.html tutorial/haxe.html
tutorial/index.html
Added: websites/staging/thrift/trunk/content/tutorial/haxe.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/haxe.html (added)
+++ websites/staging/thrift/trunk/content/tutorial/haxe.html Sun Nov 9 01:00:48 2014
@@ -0,0 +1,530 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <meta content="en-us" http-equiv="Content-Language" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link href="/static/images/favicon.ico" rel="shortcut icon" />
+ <link href="/static/css/style.css" rel="stylesheet" type="text/css" />
+ <link href="/static/css/codehilite.css" rel="stylesheet" type="text/css" />
+ <link href="/static/css/bootstrap.css" media="screen, projection" rel="stylesheet" type="text/css" />
+
+ <script src="/static/js/jquery.min.js"></script>
+ <script src="/static/js/bootstrap-dropdown.js"></script>
+ <script src="/static/js/bootstrap-tab.js"></script>
+
+ <title>Apache Thrift - Haxe Framework</title>
+ </head>
+ <body>
+ <div class="navbar">
+ <div class="navbar-inner">
+ <div class="container">
+ <a class="brand" href="/">Apache Thrift ™</a>
+ <div class="nav-collapse">
+ <ul class="nav pull-right">
+ <li>
+ <a href="/download">Download</a>
+ </li>
+ <li>
+ <a href="/docs">Documentation</a>
+ </li>
+ <li>
+ <a href="/developers">Developers</a>
+ </li>
+ <li>
+ <a href="/lib">Libraries</a>
+ </li>
+ <li>
+ <a href="/tutorial">Tutorial</a>
+ </li>
+ <li>
+ <a href="/test">Test Suite</a>
+ </li>
+ <li>
+ <a href="/about">About</a>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+ Apache <b class="caret"></b>
+ </a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="http://www.apache.org/" target="_blank">Apache Home</a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/licenses/" target="_blank">Apache License v2.0</a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/security/" target="_blank">Security</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+</div>
+
+ <div class="container">
+ <h2 id="haxe-framework-tutorial">Haxe Framework Tutorial</h2>
+<hr />
+<h3 id="introduction">Introduction</h3>
+<p>All Apache Thrift tutorials require that you have:</p>
+<ol>
+<li>Built and installed the Apache Thrift Compiler and Libraries, see <a href="/docs/BuildingFromSource">Building from source</a> for more details.</li>
+<li>
+<p>Generated the <a href="https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob_plain;f=tutorial/tutorial.thrift">tutorial.thrift</a> and <a href="https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob_plain;f=tutorial/shared.thrift">shared.thrift</a> files as <a href="/tutorial/">discussed here</a>.</p>
+<div class="codehilite"><pre><span class="n">thrift</span> <span class="o">-</span><span class="n">r</span> <span class="o">--</span><span class="n">gen</span> <span class="n">haxe</span> <span class="n">tutorial</span><span class="p">.</span><span class="n">thrift</span>
+</pre></div>
+
+
+</li>
+<li>
+<p>Followed all prerequisites listed below.</p>
+</li>
+</ol>
+<h3 id="prerequisites">Prerequisites</h3>
+<ul>
+<li>Thrift requires at least Haxe 3.1.3. (You may try with older versions on your own luck).</li>
+</ul>
+<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>
+<p><div class="codehilite"><pre><span class="n">package</span><span class="o">;</span></p>
+<p><span class="kn">import</span> <span class="nn">org.apache.thrift.<em></span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.thrift.protocol.</em></span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.<em></span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.thrift.server.</em></span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.thrift.meta_data.*</span><span class="o">;</span></p>
+<p><span class="kn">import</span> <span class="nn">tutorial.<em></span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">shared.</em></span><span class="o">;</span></p>
+<p><span class="kd">enum</span> <span class="n">Prot</span> <span class="o">{</span>
+ <span class="n">binary</span><span class="o">;</span>
+ <span class="n">json</span><span class="o">;</span>
+<span class="o">}</span></p>
+<p><span class="kd">enum</span> <span class="n">Trns</span> <span class="o">{</span>
+ <span class="n">socket</span><span class="o">;</span>
+ <span class="n">http</span><span class="o">;</span>
+<span class="o">}</span></p>
+<p><span class="kd">class</span> <span class="nc">Main</span> <span class="o">{</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">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</span><span class="nt">&g
t;</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">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</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">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</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">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</span><span class="nt">></span>Prot<span class="nt">&
lt;/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">"n"</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">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</span><span class="nt">></span>Trns<span class="nt">&
lt;/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">"n"</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">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</span><span class="nt">></span>String<span clas
s="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">"s"</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">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</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">"n"</span><span class="nt">></span>function<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>main<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="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">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</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="n
t"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>js<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>try<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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>ParseArgs<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 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">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</span><span class="nt">></span>String<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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"n"</span><span class="nt">></span>e<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">"n"</span><span class="nt">></span>trace<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">"n"</span><span class="nt">></span>GetHelp<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>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">"o"</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">"n"</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">"o"</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">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>server<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">"n"</span><span class="nt">></span>RunServer<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">"nf"</span><span class="nt">></span>RunClient<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 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">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</span><span class="nt">></span>String<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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"n"</span><span class="nt">></span>e<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 class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"s"</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">"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 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">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</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">&
lt;span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>js<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">"n"</span><span class="nt">></span>function<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>GetHelp<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 class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>String<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="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">"n"</span><span class="nt">></span>Sys<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">"na"</span><span class="nt">></span>executablePath<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">"s"</span><span class="nt">></span><span class="ni">&quot;</span> modus trnsOption transport protocol\n<span class="ni">&quot;</span><sp
an 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">"s"</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">"s"</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">"s"</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">"s"</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">"s"</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">"s"</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">"s"</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">"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">"n"</span><span class="nt">></span>function<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>ParseArgs<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></sp
an> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Void<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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>arg<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>in<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Sys<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><s
pan class="s">"na"</span><span class="nt">></span>args<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="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">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</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">"o"</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">"n"</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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"s"</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">"o"</span><spa
n class="nt">></span>)<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"nf"</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">"n"</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">"s"</span><span class="nt">></span><span class="ni">&am
p;quot;</span>server<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">"n"</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">"s"</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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"s"</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">"o"</span><spa
n 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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"s"</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">"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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"s"</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">"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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</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">"n"</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">"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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"s"</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">"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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</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">"n"</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">"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">"o"</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">"s"</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">"n"</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">"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>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>
+ <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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>binary<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><spa
n 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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"n"</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">"o"</span><span class="nt">></span>++<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</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">"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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>json<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">"o"</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">"n"</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">"n"</span><span class="nt">></span>json<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">"n"</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">"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">"o"</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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>Unknown protocol <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">"n"</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">"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>default<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>throw<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span class="ni">&quot;</span>Unexpected argument <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">"n"</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">"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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</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="ni">&amp;&amp;</span><span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>buffered<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<s
pan 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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>WN: framed supersedes buffered<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">"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 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">"err"</span><span class="nt">></span><span class="err">#</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>end<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">"n"</span><span class="nt">></span>function<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>ClientSetup<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 class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Calculator<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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>Client configuration:<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">"c1"</span><span class="nt">></span>// endpoint transport<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<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">"n"</span><span class="nt">></span>TTransport<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>switch<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">"n"</span><span class="nt">></span>trns<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="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">"nl"</span><span class="nt">></span>socket:<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"err"</span><span class="nt">></span><span class="ni">&</span><span class="err">#</span><span class="ni">39;</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">"n"</span><span class="nt">></span>socket<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<span
class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span><span class="p">$</span><span class="nv">targetHost</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">"n"</span><span class="nt">></span><span class="p">$</span><span class="nv">targetPort</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"err"</span><span class="nt">></span><span class="ni">&</span><span class="err">#</span><span class="ni">39;</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">"n"</span><span class="nt">></span>transport<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">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TSocket<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">"n"</span><span class="nt">></span>targetHost<span class="nt"></span>&
lt;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">"n"</span><span class="nt">></span>targetPort<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">"nl"</span><span class="nt">></span>http:<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"err"</span><span class="nt">></span><span class="ni">&</span><span class="err">#</span><span class="ni">39;</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">"n"</span><span class="nt">></span>HTTP<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<span cl
ass="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span><span class="p">$</span><span class="nv">targetHost</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"err"</span><span class="nt">></span><span class="ni">&</span><span class="err">#</span><span class="ni">39;</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">"n"</span><span class="nt">></span>transport<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">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>THttpClient<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">"n"</span><span class="nt">></span>targetHost<span class="nt"></span&
gt;<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>default<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>throw<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span class="ni">&quot;</span>Unhandled 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 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">"c1"</span><span class="nt">></span>// optinal layered transport<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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>framed<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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>- framed 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 class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<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">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TFramedTransport<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">"n"</span><span class="nt">></span>transport<span class="nt"></span><span</span> <s
pan 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 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">"o"</span><span class="nt">></span>(<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>buffered<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="err">{</span><span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>- buffered 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 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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>TBufferedTransport not implemented yet<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">"c1"</span><span class="nt">></span>//transport = new TBufferedTransport(transport);<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">"c1"</span><span class="nt">></span>// protocol<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>var<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>protocol<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">"n"</span><span class="nt">></span>TProtocol<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>switch<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">"n"</span><span class="nt">></span>prot<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="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">"nl"</span><span class="nt">></span>binary:<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>- binary protocol<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">"n"</span><span class="nt">></span>protocol<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">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TBinaryProtocol<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">"n"</span><span class="nt">></span>transport<span class="nt"></spa
n><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">"nl"</span><span class="nt">></span>json:<span class="nt"></span></span>
+ <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>trace<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">"s"</span><span class="nt">></span><span class="ni">&quot;</span>- JSON protocol<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>
[... 275 lines stripped ...]