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/03/20 15:51:20 UTC

svn commit: r902536 [7/9] - in /websites/staging/thrift/trunk/content: ./ tutorial/

Modified: websites/staging/thrift/trunk/content/tutorial/nodejs.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/nodejs.html (original)
+++ websites/staging/thrift/trunk/content/tutorial/nodejs.html Thu Mar 20 14:51:19 2014
@@ -72,9 +72,109 @@
 
 <h3 id="prerequisites">Prerequisites</h3>
 <h3 id="client">Client</h3>
-<p>[snippet:path=tutorial/nodejs/NodeClient.js:lang=javascript:lines=20,74]</p>
+<p><div class="codehilite"><pre><span class="kd">var</span> <span class="nx">thrift</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;thrift&#39;</span><span class="p">);</span>
+<span class="kd">var</span> <span class="nx">ThriftTransports</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;thrift/transport&#39;</span><span class="p">);</span>
+<span class="kd">var</span> <span class="nx">ThriftProtocols</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;thrift/protocol&#39;</span><span class="p">);</span>
+<span class="kd">var</span> <span class="nx">Calculator</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;./gen-nodejs/Calculator&#39;</span><span class="p">);</span>
+<span class="kd">var</span> <span class="nx">ttypes</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;./gen-nodejs/tutorial_types&#39;</span><span class="p">);</span></p>
+<p><span class="nx">transport</span> <span class="o">=</span> <span class="nx">ThriftTransports</span><span class="p">.</span><span class="nx">TBufferedTransport</span><span class="p">()</span>
+<span class="nx">protocol</span> <span class="o">=</span> <span class="nx">ThriftProtocols</span><span class="p">.</span><span class="nx">TBinaryProtocol</span><span class="p">()</span></p>
+<p><span class="kd">var</span> <span class="nx">connection</span> <span class="o">=</span> <span class="nx">thrift</span><span class="p">.</span><span class="nx">createConnection</span><span class="p">(</span><span class="s2">&quot;localhost&quot;</span><span class="p">,</span> <span class="mi">9090</span><span class="p">,</span> <span class="p">{</span>
+  <span class="nx">transport</span> <span class="o">:</span> <span class="nx">transport</span><span class="p">,</span>
+  <span class="nx">protocol</span> <span class="o">:</span> <span class="nx">protocol</span>
+<span class="p">});</span></p>
+<p><span class="nx">connection</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;error&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span> <span class="p">{</span>
+  <span class="nx">assert</span><span class="p">(</span><span class="kc">false</span><span class="p">,</span> <span class="nx">err</span><span class="p">);</span>
+<span class="p">});</span></p>
+<p><span class="c1">// Create a Calculator client with the connection</span>
+<span class="kd">var</span> <span class="nx">client</span> <span class="o">=</span> <span class="nx">thrift</span><span class="p">.</span><span class="nx">createClient</span><span class="p">(</span><span class="nx">Calculator</span><span class="p">,</span> <span class="nx">connection</span><span class="p">);</span></p>
+<p><span class="nx">client</span><span class="p">.</span><span class="nx">ping</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">response</span><span class="p">)</span> <span class="p">{</span>
+  <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;ping()&#39;</span><span class="p">);</span>
+<span class="p">});</span></p>
+<p><span class="nx">client</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">response</span><span class="p">)</span> <span class="p">{</span>
+  <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;1+1=&quot;</span> <span class="o">+</span> <span class="nx">response</span><span class="p">);</span>
+<span class="p">});</span></p>
+<p><span class="nx">work</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">ttypes</span><span class="p">.</span><span class="nx">Work</span><span class="p">();</span>
+<span class="nx">work</span><span class="p">.</span><span class="nx">op</span> <span class="o">=</span> <span class="nx">ttypes</span><span class="p">.</span><span class="nx">Operation</span><span class="p">.</span><span class="nx">DIVIDE</span><span class="p">;</span>
+<span class="nx">work</span><span class="p">.</span><span class="nx">num1</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+<span class="nx">work</span><span class="p">.</span><span class="nx">num2</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></p>
+<p><span class="nx">client</span><span class="p">.</span><span class="nx">calculate</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nx">work</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">message</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">if</span> <span class="p">(</span><span class="nx">err</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;InvalidOperation &quot;</span> <span class="o">+</span> <span class="nx">err</span><span class="p">);</span>
+  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;Whoa? You know how to divide by zero?&#39;</span><span class="p">);</span>
+  <span class="p">}</span>
+<span class="p">});</span></p>
+<p><span class="nx">work</span><span class="p">.</span><span class="nx">op</span> <span class="o">=</span> <span class="nx">ttypes</span><span class="p">.</span><span class="nx">Operation</span><span class="p">.</span><span class="nx">SUBTRACT</span><span class="p">;</span>
+<span class="nx">work</span><span class="p">.</span><span class="nx">num1</span> <span class="o">=</span> <span class="mi">15</span><span class="p">;</span>
+<span class="nx">work</span><span class="p">.</span><span class="nx">num2</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span></p>
+<p><span class="nx">client</span><span class="p">.</span><span class="nx">calculate</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nx">work</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">message</span><span class="p">)</span> <span class="p">{</span>
+  <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;15-10=&#39;</span> <span class="o">+</span> <span class="nx">message</span><span class="p">);</span></p>
+<p><span class="nx">client</span><span class="p">.</span><span class="nx">getStruct</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">message</span><span class="p">){</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;Check log: &#39;</span> <span class="o">+</span> <span class="nx">message</span>
+</pre></div></p>
 <h3 id="server">Server</h3>
-<p>[snippet:path=tutorial/nodejs/NodeServer.js:lang=javascript:lines=20,89]</p>
+<p><div class="codehilite"><pre><span class="kd">var</span> <span class="nx">thrift</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s2">&quot;thrift&quot;</span><span class="p">);</span>
+<span class="kd">var</span> <span class="nx">Calculator</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s2">&quot;./gen-nodejs/Calculator&quot;</span><span class="p">);</span>
+<span class="kd">var</span> <span class="nx">ttypes</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s2">&quot;./gen-nodejs/tutorial_types&quot;</span><span class="p">);</span>
+<span class="kd">var</span> <span class="nx">SharedStruct</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s2">&quot;./gen-nodejs/shared_types&quot;</span><span class="p">).</span><span class="nx">SharedStruct</span><span class="p">;</span></p>
+<p><span class="kd">var</span> <span class="nx">data</span> <span class="o">=</span> <span class="p">{};</span></p>
+<p><span class="kd">var</span> <span class="nx">server</span> <span class="o">=</span> <span class="nx">thrift</span><span class="p">.</span><span class="nx">createServer</span><span class="p">(</span><span class="nx">Calculator</span><span class="p">,</span> <span class="p">{</span>
+  <span class="nx">ping</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;ping()&quot;</span><span class="p">);</span>
+    <span class="nx">result</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span>
+  <span class="p">},</span></p>
+<p><span class="nx">add</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">n1</span><span class="p">,</span> <span class="nx">n2</span><span class="p">,</span> <span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;add(&quot;</span><span class="p">,</span> <span class="nx">n1</span><span class="p">,</span> <span class="s2">&quot;,&quot;</span><span class="p">,</span> <span class="nx">n2</span><span class="p">,</span> <span class="s2">&quot;)&quot;</span><span class="p">);</span>
+    <span class="nx">result</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="nx">n1</span> <span class="o">+</span> <span class="nx">n2</span><span class="p">);</span>
+  <span class="p">},</span></p>
+<p><span class="nx">calculate</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">logid</span><span class="p">,</span> <span class="nx">work</span><span class="p">,</span> <span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;calculate(&quot;</span><span class="p">,</span> <span class="nx">logid</span><span class="p">,</span> <span class="s2">&quot;,&quot;</span><span class="p">,</span> <span class="nx">work</span><span class="p">,</span> <span class="s2">&quot;)&quot;</span><span class="p">);</span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;kd&quot;</span><span class="nt">&gt;</span>var<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>val<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;mi&quot;</span><span class="nt">&gt;</span>0<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>if<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>==<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span
  class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>ttypes<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>Operation<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>ADD<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>{<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>val<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num1<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>+<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span
  class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num2<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>}<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>else<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>if<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span
  class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>===<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>ttypes<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>Operation<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>SUBTRACT<span class="n
 t">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>{<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>val<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num1<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span
  class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num2<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>}<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>else<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>if<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span
  class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>===<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>ttypes<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>Operation<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>MULTIPLY<span class="n
 t">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>{<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>val<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num1<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>*<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span
  class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num2<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>}<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>else<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>if<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span
  class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>===<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>ttypes<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>Operation<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>DIVIDE<span class="nt"
 >&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>{<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>if<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num2<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>===<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span>
 <span class="s">&quot;mi&quot;</span><span class="nt">&gt;</span>0<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>{<span class="nt">&lt;/span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;kd&quot;</span><span class="nt">&gt;</span>var<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>new<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>ttypes<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <s
 pan class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>InvalidOperation<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>();<span class="nt">&lt;/span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>what<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&
 quot;</span><span class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>why<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;s1&quot;</span><span class="nt">&gt;</span><span class="ni">&amp;#39;</span>Cannot divide by 0<span class="ni">&amp;#39;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/
 span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>result<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>return<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>}<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>val<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num1<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>/<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span
  class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>num2<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>}<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>else<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>{<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;kd&quot;</span><span class="nt">&gt;</span>var<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>new<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>ttypes<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <spa
 n class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>InvalidOperation<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>();<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>what<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>work<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&qu
 ot;</span><span class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>why<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;s1&quot;</span><span class="nt">&gt;</span><span class="ni">&amp;#39;</span>Invalid operation<span class="ni">&amp;#39;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/spa
 n&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>result<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>x<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>return<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>}<span class="nt">&lt;/span&gt;</span>
+
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;kd&quot;</span><span class="nt">&gt;</span>var<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>entry<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>new<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>SharedStruct<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>();<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>entry<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>key<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>logid<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>entry<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>value<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;s2&quot;</span><span class="nt">&gt;</span><span class="ni">&amp;quot;&amp;quot;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>+<span class="nt">&lt;/span&gt;&lt;span</span> <span class="n
 a">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>val<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>data<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>[<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>logid<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>]<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>entry<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&
 quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>result<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;kc&quot;</span><span class="nt">&gt;</span>null<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>,<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;nx&quot;</span><span class="nt">&gt;</span>val<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+</pre></div>
+
+
+<p><span class="p">},</span></p>
+<p><span class="nx">getStruct</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;getStruct(&quot;</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="s2">&quot;)&quot;</span><span class="p">);</span>
+    <span class="nx">result</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="nx">data</span><span class="p">[</span><span class="nx">key</span><span class="p">]);</span>
+  <span class="p">},</span></p>
+<p><span class="nx">zip</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;zip()&quot;</span><span class="p">);</span>
+    <span class="nx">result</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span>
+  <span class="p">}</span></p>
+<p><span class="p">});</span></p>
+<p><span class="nx">server</span>
+</pre></div></p>
 <h2 id="additional-information">Additional Information</h2>
           
 	</div>

Modified: websites/staging/thrift/trunk/content/tutorial/ocaml.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/ocaml.html (original)
+++ websites/staging/thrift/trunk/content/tutorial/ocaml.html Thu Mar 20 14:51:19 2014
@@ -72,9 +72,116 @@
 
 <h3 id="prerequisites">Prerequisites</h3>
 <h3 id="client">Client</h3>
-<p>[snippet:path=tutorial/ocaml/CalcClient.ml:lang=cpp:lines=20,74]</p>
+<p><div class="codehilite"><pre><span class="n">open</span> <span class="n">Arg</span>
+<span class="n">open</span> <span class="n">Thrift</span>
+<span class="n">open</span> <span class="n">Tutorial_types</span>
+<span class="n">open</span> <span class="n">Shared_types</span></p>
+<p><span class="n">exception</span> <span class="n">Die</span><span class="p">;;</span>
+<span class="n">let</span> <span class="n">sod</span> <span class="o">=</span> <span class="n">function</span>
+    <span class="n">Some</span> <span class="n">v</span> <span class="o">-&gt;</span> <span class="n">v</span>
+  <span class="o">|</span> <span class="n">None</span> <span class="o">-&gt;</span> <span class="n">raise</span> <span class="n">Die</span><span class="p">;;</span></p>
+<p><span class="n">type</span> <span class="n">connection</span> <span class="o">=</span> <span class="p">{</span>
+  <span class="n">trans</span> <span class="o">:</span> <span class="n">Transport</span><span class="p">.</span><span class="n">t</span> <span class="p">;</span>
+  <span class="n">proto</span> <span class="o">:</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Protocol</span><span class="p">.</span><span class="n">t</span><span class="p">;</span>
+  <span class="n">calc</span> <span class="o">:</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">client</span> <span class="p">;</span>
+<span class="p">}</span></p>
+<p><span class="n">let</span> <span class="n">connect</span> <span class="o">~</span><span class="n">host</span> <span class="n">port</span> <span class="o">=</span>
+  <span class="n">let</span> <span class="n">tx</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSocket</span><span class="p">.</span><span class="n">t</span> <span class="n">host</span> <span class="n">port</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">proto</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">.</span><span class="n">t</span> <span class="n">tx</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">calc</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">client</span> <span class="n">proto</span> <span class="n">proto</span> <span class="n">in</span>
+    <span class="n">tx</span><span class="err">#</span><span class="n">opn</span><span class="p">;</span>
+    <span class="p">{</span> <span class="n">trans</span> <span class="o">=</span> <span class="n">tx</span> <span class="p">;</span> <span class="n">proto</span> <span class="o">=</span> <span class="n">proto</span><span class="p">;</span> <span class="n">calc</span> <span class="o">=</span> <span class="n">calc</span> <span class="p">}</span>
+<span class="p">;;</span></p>
+<p><span class="n">let</span> <span class="n">doclient</span> <span class="p">()</span> <span class="o">=</span>
+  <span class="n">let</span> <span class="n">cli</span> <span class="o">=</span> <span class="n">connect</span> <span class="o">~</span><span class="nl">host:</span><span class="s">&quot;127.0.0.1&quot;</span> <span class="mi">9090</span> <span class="n">in</span>
+  <span class="k">try</span>
+    <span class="n">cli</span><span class="p">.</span><span class="n">calc</span><span class="err">#</span><span class="n">ping</span> <span class="p">;</span>
+    <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;ping()</span><span class="se">\n</span><span class="s">&quot;</span> <span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span> <span class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">cli</span><span class="p">.</span><span class="n">calc</span><span class="err">#</span><span class="n">add</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span class="p">)</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span class="p">)</span> <span class="n">in</span>
+       <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;1+1=%ld</span><span class="se">\n</span><span class="s">&quot;</span> <span class="n">sum</span> <span class="p">;</span>
+       <span class="n">flush</span> <span class="n">stdout</span><span class="p">)</span> <span class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span class="n">w</span> <span class="o">=</span> <span class="k">new</span> <span class="n">work</span> <span class="n">in</span>
+       <span class="n">w</span><span class="err">#</span><span class="n">set_op</span> <span class="n">Operation</span><span class="p">.</span><span class="n">DIVIDE</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span class="n">set_num1</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span class="p">)</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span class="n">set_num2</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">0</span><span class="p">)</span> <span class="p">;</span>
+       <span class="k">try</span>
+     <span class="n">let</span> <span class="n">quotient</span> <span class="o">=</span> <span class="n">cli</span><span class="p">.</span><span class="n">calc</span><span class="err">#</span><span class="n">calculate</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span class="p">)</span> <span class="n">w</span> <span class="n">in</span>
+       <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;Whoa? We can divide by zero!</span><span class="se">\n</span><span class="s">&quot;</span> <span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span>
+       <span class="n">with</span> <span class="n">InvalidOperation</span> <span class="n">io</span> <span class="o">-&gt;</span>
+     <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;InvalidOperation: %s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="n">io</span><span class="err">#</span><span class="n">grab_why</span> <span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span><span class="p">)</span> <span class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span class="n">w</span> <span class="o">=</span> <span class="k">new</span> <span class="n">work</span> <span class="n">in</span>
+       <span class="n">w</span><span class="err">#</span><span class="n">set_op</span> <span class="n">Operation</span><span class="p">.</span><span class="n">SUBTRACT</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span class="n">set_num1</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">15</span><span class="p">)</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span class="n">set_num2</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">10</span><span class="p">)</span> <span class="p">;</span>
+       <span class="n">let</span> <span class="n">diff</span> <span class="o">=</span> <span class="n">cli</span><span class="p">.</span><span class="n">calc</span><span class="err">#</span><span class="n">calculate</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span class="p">)</span> <span class="n">w</span> <span class="n">in</span>
+     <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;15-10=%ld</span><span class="se">\n</span><span class="s">&quot;</span> <span class="n">diff</span> <span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span><span class="p">)</span> <span class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span class="n">ss</span> <span class="o">=</span> <span class="n">cli</span><span class="p">.</span><span class="n">calc</span><span class="err">#</span><span class="n">getStruct</span> <span class="p">(</span><span class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span class="p">)</span> <span class="n">in</span>
+       <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;Check log: %s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="n">ss</span><span class="err">#</span><span class="n">grab_value</span> <span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span><span class="p">)</span> <span class="p">;</span>
+    <span class="n">cli</span><span class="p">.</span><span class="n">trans</span><span class="err">#</span><span class="n">close</span>
+  <span class="n">with</span> <span class="n">Transport</span><span class="p">.</span><span class="n">E</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span><span class="n">what</span><span class="p">)</span> <span class="o">-&gt;</span>
+    <span class="n">Printf</span>
+</pre></div></p>
 <h3 id="server">Server</h3>
-<p>[snippet:path=tutorial/ocaml/CalcServer.ml:lang=cpp:lines=20,89]</p>
+<p><div class="codehilite"><pre><span class="n">open</span> <span class="n">Arg</span>
+<span class="n">open</span> <span class="n">Thrift</span>
+<span class="n">open</span> <span class="n">Tutorial_types</span>
+<span class="n">open</span> <span class="n">Shared_types</span></p>
+<p><span class="n">exception</span> <span class="n">Die</span><span class="p">;;</span>
+<span class="n">let</span> <span class="n">sod</span> <span class="o">=</span> <span class="n">function</span>
+    <span class="n">Some</span> <span class="n">v</span> <span class="o">-&gt;</span> <span class="n">v</span>
+  <span class="o">|</span> <span class="n">None</span> <span class="o">-&gt;</span> <span class="n">raise</span> <span class="n">Die</span><span class="p">;;</span></p>
+<p><span class="k">class</span> <span class="nc">calc_handler</span> <span class="o">=</span>
+<span class="n">object</span> <span class="p">(</span><span class="n">self</span><span class="p">)</span>
+  <span class="n">inherit</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">iface</span>
+  <span class="n">val</span> <span class="n">log</span> <span class="o">=</span> <span class="n">Hashtbl</span><span class="p">.</span><span class="n">create</span> <span class="mi">23</span>
+  <span class="n">method</span> <span class="n">ping</span>  <span class="o">=</span> <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;ping()</span><span class="se">\n</span><span class="s">&quot;</span> <span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span>
+  <span class="n">method</span> <span class="n">add</span> <span class="n">a</span> <span class="n">b</span> <span class="o">=</span>
+    <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span><span class="s">&quot;add(%ld,%ld)</span><span class="se">\n</span><span class="s">&quot;</span> <span class="p">(</span><span class="n">sod</span> <span class="n">a</span><span class="p">)</span> <span class="p">(</span><span class="n">sod</span> <span class="n">b</span><span class="p">);</span> <span class="n">flush</span> <span class="n">stdout</span> <span class="p">;</span>
+    <span class="n">Int32</span><span class="p">.</span><span class="n">add</span> <span class="p">(</span><span class="n">sod</span> <span class="n">a</span><span class="p">)</span> <span class="p">(</span><span class="n">sod</span> <span class="n">b</span><span class="p">)</span>
+  <span class="n">method</span> <span class="n">calculate</span> <span class="n">logid</span> <span class="n">w</span> <span class="o">=</span>
+    <span class="n">let</span> <span class="n">w</span> <span class="o">=</span> <span class="n">sod</span> <span class="n">w</span> <span class="n">in</span>
+      <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;calculate(%ld,{%ld,%ld,%ld})</span><span class="se">\n</span><span class="s">&quot;</span> <span class="p">(</span><span class="n">sod</span> <span class="n">logid</span><span class="p">)</span> <span class="p">(</span><span class="n">Operation</span><span class="p">.</span><span class="n">to_i</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_op</span><span class="p">)</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num1</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num2</span><span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span> <span class="p">;</span>
+    <span class="n">let</span> <span class="n">rv</span> <span class="o">=</span>
+      <span class="n">match</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_op</span> <span class="n">with</span>
+      <span class="n">Operation</span><span class="p">.</span><span class="n">ADD</span> <span class="o">-&gt;</span>
+        <span class="n">Int32</span><span class="p">.</span><span class="n">add</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num1</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num2</span>
+    <span class="o">|</span> <span class="n">Operation</span><span class="p">.</span><span class="n">SUBTRACT</span> <span class="o">-&gt;</span>
+        <span class="n">Int32</span><span class="p">.</span><span class="n">sub</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num1</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num2</span>
+    <span class="o">|</span> <span class="n">Operation</span><span class="p">.</span><span class="n">MULTIPLY</span> <span class="o">-&gt;</span>
+        <span class="n">Int32</span><span class="p">.</span><span class="n">mul</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num1</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num2</span>
+    <span class="o">|</span> <span class="n">Operation</span><span class="p">.</span><span class="n">DIVIDE</span> <span class="o">-&gt;</span>
+        <span class="k">if</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num2</span> <span class="o">=</span> <span class="n">Int32</span><span class="p">.</span><span class="n">zero</span> <span class="n">then</span>
+          <span class="n">let</span> <span class="n">io</span> <span class="o">=</span> <span class="k">new</span> <span class="n">invalidOperation</span> <span class="n">in</span>
+        <span class="n">io</span><span class="err">#</span><span class="n">set_what</span> <span class="p">(</span><span class="n">Operation</span><span class="p">.</span><span class="n">to_i</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_op</span><span class="p">)</span> <span class="p">;</span>
+        <span class="n">io</span><span class="err">#</span><span class="n">set_why</span> <span class="s">&quot;Cannot divide by 0&quot;</span> <span class="p">;</span>
+        <span class="n">raise</span> <span class="p">(</span><span class="n">InvalidOperation</span> <span class="n">io</span><span class="p">)</span>
+        <span class="k">else</span>
+          <span class="n">Int32</span><span class="p">.</span><span class="n">div</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num1</span> <span class="n">w</span><span class="err">#</span><span class="n">grab_num2</span> <span class="n">in</span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>let<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ss<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span>new<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>sharedStruct<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</
 span>in<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ss<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;err&quot;</span><span class="nt">&gt;</span>#<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>set_key<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>sod<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>logid<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot
 ;p&quot;</span><span class="nt">&gt;</span>)<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>let<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>buffer<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>Int32<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>to_string<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span>
  <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>rv<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>in<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ss<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;err&quot;</span><span class="nt">&gt;</span>#<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>set_value<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>buffer<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>Hashtbl<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>add<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>log<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>sod<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span
 ><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>logid<span class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ss<span class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>rv<span class="nt">&lt;/span&gt;</span>
+</pre></div>
+
+
+<p><span class="n">method</span> <span class="n">zip</span> <span class="o">=</span>
+    <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;zip()</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span></p>
+<p><span class="n">method</span> <span class="n">getStruct</span> <span class="n">logid</span> <span class="o">=</span>
+    <span class="n">Printf</span><span class="p">.</span><span class="n">printf</span> <span class="s">&quot;getStruct(%ld)</span><span class="se">\n</span><span class="s">&quot;</span> <span class="p">(</span><span class="n">sod</span> <span class="n">logid</span><span class="p">)</span> <span class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span> <span class="p">;</span>
+    <span class="n">Hashtbl</span><span class="p">.</span><span class="n">find</span> <span class="n">log</span> <span class="p">(</span><span class="n">sod</span> <span class="n">logid</span><span class="p">)</span></p>
+<p><span class="n">end</span></p>
+<p><span class="n">let</span> <span class="n">doserver</span> <span class="p">()</span> <span class="o">=</span>
+  <span class="n">let</span> <span class="n">h</span> <span class="o">=</span> <span class="k">new</span> <span class="n">calc_handler</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">proc</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">processor</span> <span class="n">h</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">port</span> <span class="o">=</span> <span class="mi">9090</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">pf</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">.</span><span class="n">factory</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TThreadedServer</span><span class="p">.</span><span class="n">t</span>
+         <span class="n">proc</span>
+         <span class="p">(</span><span class="k">new</span> <span class="n">TServerSocket</span><span class="p">.</span><span class="n">t</span> <span class="n">port</span><span class="p">)</span>
+         <span class="p">(</span><span class="k">new</span> <span class="n">Transport</span>
+</pre></div></p>
 <h2 id="additional-information">Additional Information</h2>
           
 	</div>