You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by gi...@apache.org on 2021/06/17 21:10:38 UTC
[thrift-website] branch asf-staging updated: Automatic Site Publish
by Buildbot
This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/thrift-website.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 906fdd1 Automatic Site Publish by Buildbot
906fdd1 is described below
commit 906fdd109f941b3450de3359c57c80c6799334ab
Author: buildbot <us...@infra.apache.org>
AuthorDate: Thu Jun 17 21:10:35 2021 +0000
Automatic Site Publish by Buildbot
---
output/docs/Languages.html | 19 +--
output/docs/committers/HowToThriftWebsite.html | 4 +-
output/docs/install/debian.html | 5 -
output/download.html | 10 +-
output/index.html | 10 +-
output/lib/haxe.html | 52 +++----
output/lib/hs.html | 110 ++++----------
output/tutorial/delphi.html | 8 +-
output/tutorial/go.html | 13 +-
output/tutorial/haxe.html | 40 ++---
output/tutorial/hs.html | 201 ++++++++-----------------
output/tutorial/netstd.html | 144 +++++++++---------
12 files changed, 229 insertions(+), 387 deletions(-)
diff --git a/output/docs/Languages.html b/output/docs/Languages.html
index d4023e2..e4e07f3 100644
--- a/output/docs/Languages.html
+++ b/output/docs/Languages.html
@@ -149,7 +149,7 @@ Thrift’s core protocol is TBinary, supported by all languages except for J
<td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/d/README.md">Dlang</a></td>
<!-- Since -----------------><td>0.9.0</td>
<!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td>2.075.1</td><td>2.087.0</td>
+<!-- Language Levels -------><td>2.087.0</td><td>2.087.0</td>
<!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
<!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
<!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
@@ -171,7 +171,7 @@ Thrift’s core protocol is TBinary, supported by all languages except for J
<td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/delphi/README.md">Delphi</a></td>
<!-- Since -----------------><td>0.8.0</td>
<!-- Build Systems ---------><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td>2010</td><td>unknown</td>
+<!-- Language Levels -------><td>2010</td><td>Sydney 10.4.1</td>
<!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
<!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
<!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
@@ -182,7 +182,7 @@ Thrift’s core protocol is TBinary, supported by all languages except for J
<td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/netstd/README.md">.NET Standard</a></td>
<!-- Since -----------------><td>0.13.0</td>
<!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td colspan="2">.NET 4.5+, .NET Standard 2.x</td>
+<!-- Language Levels -------><td colspan="2">.NET 4.5+, .NET Standard 2.x, .NET 5.0</td>
<!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
<!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
<!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
@@ -212,21 +212,10 @@ Thrift’s core protocol is TBinary, supported by all languages except for J
<td align="left"><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20THRIFT%20AND%20component%20in%20(%22Go%20-%20Compiler%22%2C%20%22Go%20-%20Library%22)%20and%20status%20not%20in%20(fixed%2C%20resolved%2C%20closed)">Go</a></td>
</tr>
<tr align="center">
-<td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/hs/README.md">Haskell</a></td>
-<!-- Since -----------------><td>0.5.0</td>
-<!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
-<!-- Language Levels -------><td>7.10.3</td><td>8.0.2</td>
-<!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
-<!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Servers ---------------><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<td align="left"><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20THRIFT%20AND%20component%20in%20(%22Haskell%20-%20Compiler%22%2C%20%22Haskell%20-%20Library%22)%20and%20status%20not%20in%20(fixed%2C%20resolved%2C%20closed)">Haskell</a></td>
-</tr>
-<tr align="center">
<td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/haxe/README.md">Haxe</a></td>
<!-- Since -----------------><td>0.9.3</td>
<!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td>3.2.1</td><td>3.4.4</td>
+<!-- Language Levels -------><td>4.1.5</td><td>4.2.1</td>
<!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
<!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
<!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
diff --git a/output/docs/committers/HowToThriftWebsite.html b/output/docs/committers/HowToThriftWebsite.html
index 22d67e1..4536239 100644
--- a/output/docs/committers/HowToThriftWebsite.html
+++ b/output/docs/committers/HowToThriftWebsite.html
@@ -101,8 +101,8 @@ consistent experience with the various markdown parsers deployed by the CMS.</p>
file” <a href="https://svn.apache.org/repos/asf/thrift/cms-site/trunk/lib/path.pm">lib/path.pm</a>. Update
the following values and then following <b>Updating the Website</b> section below</p>
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>current_release: "0.14.1"
-current_release_date: "2021-MAR-08"
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>current_release: "0.14.2"
+current_release_date: "2021-JUN-17"
</code></pre></div></div>
<h3 id="updating-the-website">Updating the website</h3>
diff --git a/output/docs/install/debian.html b/output/docs/install/debian.html
index def4304..27d5aa6 100644
--- a/output/docs/install/debian.html
+++ b/output/docs/install/debian.html
@@ -113,11 +113,6 @@ sudo ./b2 install
<li>apt-transport-https dotnet-sdk-5.0 aspnetcore-runtime-5.0</li>
</ul>
</li>
- <li>Haskell
- <ul>
- <li>ghc cabal-install libghc-binary-dev libghc-network-dev libghc-http-dev</li>
- </ul>
- </li>
<li>Thrift Compiler for Windows
<ul>
<li>mingw-w64 mingw-w64-x86-64-dev nsis</li>
diff --git a/output/download.html b/output/download.html
index 37e5a29..5e510bd 100644
--- a/output/download.html
+++ b/output/download.html
@@ -50,19 +50,19 @@
<div class="container">
<h2 id="release">Release</h2>
-<p>The latest stable release of Thrift is 0.14.1 (released on 2021-MAR-08).</p>
+<p>The latest stable release of Thrift is 0.14.2 (released on 2021-JUN-17).</p>
<ul>
- <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.1/thrift-0.14.1.tar.gz">thrift-0.14.1.tar.gz</a> [<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.asc">PGP</a>]
-[<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.md5">MD5</a>]</li>
- <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.1/thrift-0.14.1.exe">Thrift compiler for Windows (thrift-0.14.1.exe)</a> [<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.exe.asc">PGP</a>] [<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.exe.md5">MD5</a>]</li>
+ <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.2/thrift-0.14.2.tar.gz">thrift-0.14.2.tar.gz</a> [<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.asc">PGP</a>]
+[<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.md5">MD5</a>]</li>
+ <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.2/thrift-0.14.2.exe">Thrift compiler for Windows (thrift-0.14.2.exe)</a> [<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.exe.asc">PGP</a>] [<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.exe.md5">MD5</a>]</li>
</ul>
<h2 id="maven-artifact">Maven artifact</h2>
<pre><code><dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
- <version>0.14.1</version>
+ <version>0.14.2</version>
</dependency>
</code></pre>
diff --git a/output/index.html b/output/index.html
index bcca8c5..aec8dfd 100644
--- a/output/index.html
+++ b/output/index.html
@@ -80,19 +80,19 @@
</div>
<div class="span3 well center pull-right">
<h2>Download</h2>
- <p>Apache Thrift v0.14.1</p>
+ <p>Apache Thrift v0.14.2</p>
<p>
- <a class="btn btn-large" href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.1/thrift-0.14.1.tar.gz">
- Download <small>v0.14.1</small>
+ <a class="btn btn-large" href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.2/thrift-0.14.2.tar.gz">
+ Download <small>v0.14.2</small>
</a>
</p>
<p>
<small>
- <a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.md5">MD5</a>
+ <a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.md5">MD5</a>
</small>
|
<small>
- <a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.asc">PGP</a>
+ <a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.asc">PGP</a>
</small>
</p>
<p>
diff --git a/output/lib/haxe.html b/output/lib/haxe.html
index 6cbff9a..539db43 100644
--- a/output/lib/haxe.html
+++ b/output/lib/haxe.html
@@ -54,16 +54,14 @@
<h2 id="haxe-setup">Haxe setup</h2>
-<p>Thrift requires Haxe 3.1.3. Installers for Windows and OSX
+<p>Thrift requires Haxe 4.2.1. Installers for Windows and OSX
platforms are available at <code>http://haxe.org/download</code>.</p>
<p>Depending on the desired targets, you may have to install the appropriate HaxeLibs
-after installing Haxe itself. For example, if you plan to target C#, Java and C++,
-enter the following commands after installing Haxe:</p>
+after installing Haxe itself. For example, if you plan to target C++, enter the
+following command after installing Haxe:</p>
<pre><code>haxelib install hxcpp
-haxelib install hxjava
-haxelib install hxcs
</code></pre>
<p>For other targets, please consult the Haxe documentation whether or not any additional
@@ -95,15 +93,15 @@ sudo ldconfig
<h2 id="thrift-haxe-bindings">Thrift Haxe bindings</h2>
-<p>Thrift Haxe bindings can be set up via the <code>haxelib</code> tool<br />
-either from the official ASF repo, or via the github mirror.</p>
+<p>Thrift Haxe bindings can be set up via the <code>haxelib</code> tool as usual.
+Alternatively, the “github” method can be used.</p>
<ul>
<li>
- <p>To set up any <strong>stable version</strong>, choose the appropriate branch (e.g. <code>0.12.0</code>):</p>
+ <p>To set up any <strong>stable version</strong>, choose the appropriate branch (e.g. <code>0.14.1</code>):</p>
<ul>
- <li><code>haxelib git thrift https://github.com/apache/thrift.git 0.12.0 lib/haxe</code></li>
+ <li><code>haxelib git thrift https://github.com/apache/thrift.git 0.14.1 lib/haxe</code></li>
</ul>
</li>
<li>
@@ -123,33 +121,21 @@ or build from source, depending on your operating system. Appropriate
downloads and more information can be found at http://thrift.apache.org</p>
<p>To get started, visit the /tutorial/haxe and /test/haxe dirs for examples.
-If you are using HIDE or the FlashDevelop IDE, you’ll find appropriate
-project files in these folders.</p>
+If you are using the HaxeDevelop IDE, you’ll find appropriate project files
+in these folders.</p>
-<h1 id="current-status">Current status</h1>
-<ul>
- <li>tested with Haxe C++ target</li>
- <li>tested with Haxe PHP target (console/web server, binary protocols)</li>
- <li>transports: Socket, HTTP (servers run inside PHP server/PHP target only), Stream</li>
- <li>protocols: Binary, JSON, Multiplex, Compact</li>
- <li>tutorial client and server available</li>
- <li>cross-test client and server available</li>
-</ul>
-
-<h1 id="further-developments">Further developments</h1>
-<ul>
- <li>improve to work with C#, Java and JavaScript Haxe/OpenFL targets</li>
- <li>improve to work with more (ideally all) Haxe/OpenFL targets</li>
- <li>add HTTP server, update tutorial and tests accordingly</li>
-</ul>
-
-<h1 id="known-restrictions">Known restrictions</h1>
+<h1 id="breaking-changes">Breaking changes</h1>
+<p>This version requires Haxe 4 and cannot be used with earlier versions.</p>
-<p>Although designed with maximum portability in mind, for technical reasons some platforms
-may only support parts of the library, or not be compatible at all.</p>
+<p>It is recommended to clear out all gen-haxe contents once before switching
+to the new version. Otherwise you may run into troubles with leftovers from
+previous versions.</p>
-<p>Javascript:
-- tutorial fails to build because of unsupported Sys.args</p>
+<p>The compiler option <code>callbacks</code> is now obsolete. The compiler will always
+generate a dual interface (i.e. with optional callback style) for use on the
+client side, plus a new <code>_service</code> interface to be used for server
+implementations. Consequentially, your client and server implementations will
+need some manual intervention.</p>
<h1 id="php-http-server-notes">PHP HTTP Server notes</h1>
diff --git a/output/lib/hs.html b/output/lib/hs.html
index 270d043..db667c5 100644
--- a/output/lib/hs.html
+++ b/output/lib/hs.html
@@ -50,89 +50,37 @@
<div class="container">
-<h1 id="compile">Compile</h1>
-
-<p>Use Cabal to compile and install; ./configure uses Cabal underneath, and that
-path is not yet well tested. Thrift’s library and generated code should compile
-with pretty much any GHC extensions or warnings you enable (or disable).
-Please report this not being the case as a bug on
-https://issues.apache.org/jira/secure/CreateIssue!default.jspa</p>
-
-<p>Chances you’ll need to muck a bit with Cabal flags to install Thrift:</p>
-
-<p>CABAL_CONFIGURE_FLAGS=”–user” ./configure</p>
-
-<h1 id="base-types">Base Types</h1>
-
-<p>The mapping from Thrift types to Haskell’s is:</p>
-
-<ul>
- <li>double -> Double</li>
- <li>byte -> Data.Int.Int8</li>
- <li>i16 -> Data.Int.Int16</li>
- <li>i32 -> Data.Int.Int32</li>
- <li>i64 -> Data.Int.Int64</li>
- <li>string -> Text</li>
- <li>binary -> Data.ByteString.Lazy</li>
- <li>bool -> Boolean</li>
-</ul>
-
-<h1 id="enums">Enums</h1>
-
-<p>Become Haskell ‘data’ types. Use fromEnum to get out the int value.</p>
-
-<h1 id="lists">Lists</h1>
-
-<p>Become Data.Vector.Vector from the vector package.</p>
-
-<h1 id="maps-and-sets">Maps and Sets</h1>
-
-<p>Become Data.HashMap.Strict.Map and Data.HashSet.Set from the
-unordered-containers package.</p>
-
-<h1 id="structs">Structs</h1>
-
-<p>Become records. Field labels are ugly, of the form f_STRUCTNAME_FIELDNAME. All
-fields are Maybe types.</p>
-
-<h1 id="exceptions">Exceptions</h1>
-
-<p>Identical to structs. Use them with throw and catch from Control.Exception.</p>
-
-<h1 id="client">Client</h1>
-
-<p>Just a bunch of functions. You may have to import a bunch of client files to
-deal with inheritance.</p>
-
-<h1 id="interface">Interface</h1>
-
-<p>You should only have to import the last one in the chain of inheritors. To make
-an interface, declare a label:</p>
-
-<p>data MyIface = MyIface</p>
-
-<p>and then declare it an instance of each iface class, starting with the superest
-class and proceeding down (all the while defining the methods). Then pass your
-label to process as the handler.</p>
-
-<h1 id="processor">Processor</h1>
-
-<p>Just a function that takes a handler label, protocols. It calls the
-superclasses process if there is a superclass.</p>
-
-<h1 id="releasing-to-hackage">Releasing to Hackage</h1>
-
-<p>Using the <a href="../../build/docker/README.md">Docker Container for Ubuntu Bionic</a>, run:</p>
+<p><select name="st">
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="/repos/asf?p=thrift.git;a=search_help" title="search help">?</a> search:
+<input type="text" name="s" />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
+</form></p>
+<div class="page_body">
+<br /><br />
+404 - Cannot find file
+<br />
+</div>
+<div class="page_footer">
+<div class="page_footer_text">Apache Thrift</div>
+<a class="rss_logo" href="/repos/asf?p=thrift.git;a=rss;f=lib/hs/README.md" title="history of lib/hs/README.md RSS feed">RSS</a>
+<a class="rss_logo" href="/repos/asf?p=thrift.git;a=atom;f=lib/hs/README.md" title="history of lib/hs/README.md Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/static/gitweb.js"></script>
-<pre><code>root@e941f5311545:/thrift/src# ./bootstrap.sh && ./configure
-root@e941f5311545:/thrift/src# cd lib/hs && make dist-local
-</code></pre>
+<script type="text/javascript">
+window.onload = function () {
+ var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+ onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
-<p>This will produce a <code>lib/hs/dist/thrift-<version>.tar.gz</code> file. Take this
-file and upload it as a Haskell Hackage
-<a href="https://hackage.haskell.org/upload#candidates">package candidate</a> and
-check to make sure all the information is correct. Assuming all is satisfactory,
-you can upload the package as official using the link at the top of the page.</p>
+<p></body>
+</html></p>
<p class="snippet_footer">This page was generated by Apache Thrift's <strong>source tree docs</strong>:
<a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=lib/hs/README.md">lib/hs/README.md</a>
diff --git a/output/tutorial/delphi.html b/output/tutorial/delphi.html
index 0fa163f..c1c4afd 100644
--- a/output/tutorial/delphi.html
+++ b/output/tutorial/delphi.html
@@ -91,8 +91,8 @@ All Apache Thrift tutorials require that you have:
<span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span><span class="p">.</span><span class="n">WinHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Transport.WinHTTP.pas'</span><span class="p">,</span>
<span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span><span class="p">.</span><span class="n">MsxmlHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Transport.MsxmlHTTP.pas'</span><span class="p">,</span>
<span class="n">Thrift</span><span class="p">.</span><span class="n">WinHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.WinHTTP.pas'</span><span class="p">,</span>
- <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Shared.pas'</span><span class="p">,</span>
- <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
+ <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Shared.pas'</span><span class="p">,</span>
+ <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
<span class="k">type</span>
@@ -194,8 +194,8 @@ All Apache Thrift tutorials require that you have:
<span class="n">Thrift</span><span class="p">.</span><span class="n">Server</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Server.pas'</span><span class="p">,</span>
<span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Transport.pas'</span><span class="p">,</span>
<span class="n">Thrift</span><span class="p">.</span><span class="n">WinHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.WinHTTP.pas'</span><span class="p">,</span>
- <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Shared.pas'</span><span class="p">,</span>
- <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
+ <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Shared.pas'</span><span class="p">,</span>
+ <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
<span class="k">type</span>
diff --git a/output/tutorial/go.html b/output/tutorial/go.html
index 739677a..32d2db8 100644
--- a/output/tutorial/go.html
+++ b/output/tutorial/go.html
@@ -79,9 +79,9 @@ To use a specific version of the library, either clone the repository for that v
<span class="s">"context"</span>
<span class="s">"crypto/tls"</span>
<span class="s">"fmt"</span>
- <span class="s">"tutorial"</span>
<span class="s">"github.com/apache/thrift/lib/go/thrift"</span>
+ <span class="s">"github.com/apache/thrift/tutorial/go/gen-go/tutorial"</span>
<span class="p">)</span>
<span class="n">var</span> <span class="n">defaultCtx</span> <span class="o">=</span> <span class="n">context</span><span class="p">.</span><span class="n">Background</span><span class="p">()</span>
@@ -163,8 +163,9 @@ To use a specific version of the library, either clone the repository for that v
<div class="highlight"><pre class="codehilite"><code><span class="n">import</span> <span class="p">(</span>
<span class="s">"crypto/tls"</span>
<span class="s">"fmt"</span>
+
<span class="s">"github.com/apache/thrift/lib/go/thrift"</span>
- <span class="s">"tutorial"</span>
+ <span class="s">"github.com/apache/thrift/tutorial/go/gen-go/tutorial"</span>
<span class="p">)</span>
<span class="n">func</span> <span class="nf">runServer</span><span class="p">(</span><span class="n">transportFactory</span> <span class="n">thrift</span><span class="p">.</span><span class="n">TTransportFactory</span><span class="p">,</span> <span class="n">protocolFactory</span> <span class="n">thrift</span><span class="p">.</span><span class="n">TProtocolFactory</span><span class="p">,</span> <span class="n">addr</span> <span class="n">string</span><span class="p">,</span> <span class [...]
@@ -181,7 +182,7 @@ To use a specific version of the library, either clone the repository for that v
<span class="err">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="n">transport</span><span class="p">,</span> <span class="n">err</span> <span class="o">=</span> <span class="n">thrift</span><span class="p">.</span><span class="n">NewTServerSocket</span><span class="p">(</span><span class="n">addr</span><span class="p">)</span>
<span class="p">}</span>
-
+
<span class="k">if</span> <span class="n">err</span> <span class="o">!=</span> <span class="n">nil</span> <span class="p">{</span>
<span class="k">return</span> <span class="n">err</span>
<span class="p">}</span>
@@ -192,7 +193,6 @@ To use a specific version of the library, either clone the repository for that v
<span class="n">fmt</span><span class="p">.</span><span class="n">Println</span><span class="p">(</span><span class="s">"Starting the simple server... on "</span><span class="p">,</span> <span class="n">addr</span><span class="p">)</span>
<span class="k">return</span> <span class="n">server</span><span class="p">.</span><span class="n">Serve</span><span class="p">()</span>
-<span class="err">}</span>
</code></pre></div>
<p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
<a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/go/src/server.go">tutorial/go/src/server.go</a>
@@ -203,9 +203,10 @@ To use a specific version of the library, either clone the repository for that v
<div class="highlight"><pre class="codehilite"><code><span class="n">import</span> <span class="p">(</span>
<span class="s">"context"</span>
<span class="s">"fmt"</span>
- <span class="s">"shared"</span>
<span class="s">"strconv"</span>
- <span class="s">"tutorial"</span>
+
+ <span class="s">"github.com/apache/thrift/tutorial/go/gen-go/shared"</span>
+ <span class="s">"github.com/apache/thrift/tutorial/go/gen-go/tutorial"</span>
<span class="p">)</span>
<span class="n">type</span> <span class="n">CalculatorHandler</span> <span class="k">struct</span> <span class="p">{</span>
diff --git a/output/tutorial/haxe.html b/output/tutorial/haxe.html
index 011c652..6de1428 100644
--- a/output/tutorial/haxe.html
+++ b/output/tutorial/haxe.html
@@ -88,6 +88,7 @@ import shared.*;
enum Prot {
binary;
json;
+ compact;
}
enum Trns {
@@ -168,12 +169,12 @@ class Main {
#if ! (flash || js)
private static function GetHelp() : String {
- return Sys.executablePath()+" modus trnsOption transport protocol\n"
+ return Sys.programPath+" modus layered transport protocol\n"
+"Options:\n"
- +" modus: client, server (default: client)\n"
- +" trnsOption: framed, buffered (default: none)\n"
- +" transport: socket, http (default: socket)\n"
- +" protocol: binary, json (default: binary)\n"
+ +" modus: client, server (default: client)\n"
+ +" layered: framed, buffered (default: none)\n"
+ +" transport: socket, http (default: socket)\n"
+ +" protocol: binary, json, compact (default: binary)\n"
+"\n"
+"All arguments are optional.\n";
}
@@ -216,6 +217,9 @@ class Main {
} else if ( arg == "json") {
prot = json;
++step;
+ } else if ( arg == "compact") {
+ prot = compact;
+ ++step;
} else {
throw "Unknown protocol "+arg;
}
@@ -273,6 +277,9 @@ class Main {
case json:
trace("- JSON protocol");
protocol = new TJSONProtocol( transport);
+ case compact:
+ trace("- compact protocol");
+ protocol = new TCompactProtocol( transport);
default:
throw "Unhandled protocol";
}
@@ -288,7 +295,7 @@ class Main {
var client = ClientSetup();
try {
- client.ping();
+ client.ping();
trace("ping() successful");
} catch(error : TException) {
trace('ping() failed: $error');
@@ -366,11 +373,12 @@ class Main {
#else
trace("- http transport");
transport = new TWrappingServerTransport(
- new TStreamTransport(
- new TFileStream("php://input", Read),
- new TFileStream("php://output", Append)
- )
- );
+ new TStreamTransport(
+ new TFileStream("php://input", Read),
+ new TFileStream("php://output", Append),
+ null
+ )
+ );
#end
default:
@@ -378,14 +386,6 @@ class Main {
}
// optional: layered transport
- var transfactory : TTransportFactory = null;
- if ( framed) {
- trace("- framed transport");
- transfactory = new TFramedTransportFactory();
- } else if ( buffered) {
- trace("- buffered transport");
- transfactory = new TBufferedTransportFactory();
- }
</code></pre></div>
<p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
<a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/haxe/src/Main.hx">tutorial/haxe/src/Main.hx</a>
@@ -411,7 +411,7 @@ import tutorial.*;
import shared.*;
-class CalculatorHandler implements Calculator {
+class CalculatorHandler implements Calculator_service {
private var log = new IntMap<SharedStruct>();
diff --git a/output/tutorial/hs.html b/output/tutorial/hs.html
index c7ad98b..efb0718 100644
--- a/output/tutorial/hs.html
+++ b/output/tutorial/hs.html
@@ -68,151 +68,74 @@ All Apache Thrift tutorials require that you have:
<h3 id="client">Client</h3>
-<div class="highlight"><pre class="codehilite"><code><span class="n">import</span> <span class="n">qualified</span> <span class="n">Calculator</span>
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">Calculator_Client</span> <span class="n">as</span> <span class="n">Client</span>
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">SharedService_Client</span> <span class="n">as</span> <span class="n">SClient</span>
-<span class="n">import</span> <span class="n">Tutorial_Types</span>
-<span class="n">import</span> <span class="n">SharedService_Iface</span>
-<span class="n">import</span> <span class="n">Shared_Types</span>
-
-<span class="n">import</span> <span class="n">Thrift</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span><span class="p">.</span><span class="n">Handle</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Server</span>
-
-<span class="n">import</span> <span class="n">Control</span><span class="p">.</span><span class="n">Exception</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Maybe</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Text</span><span class="p">.</span><span class="n">Lazy</span>
-<span class="n">import</span> <span class="n">Text</span><span class="p">.</span><span class="n">Printf</span>
-<span class="n">import</span> <span class="n">Network</span>
-
-<span class="n">main</span> <span class="o">=</span> <span class="k">do</span>
- <span class="n">transport</span> <span class="o"><-</span> <span class="n">hOpen</span> <span class="p">(</span><span class="s">"localhost"</span><span class="p">,</span> <span class="n">PortNumber</span> <span class="mi">9090</span><span class="p">)</span>
- <span class="n">let</span> <span class="n">binProto</span> <span class="o">=</span> <span class="n">BinaryProtocol</span> <span class="n">transport</span>
- <span class="n">let</span> <span class="n">client</span> <span class="o">=</span> <span class="p">(</span><span class="n">binProto</span><span class="p">,</span> <span class="n">binProto</span><span class="p">)</span>
-
- <span class="n">Client</span><span class="p">.</span><span class="n">ping</span> <span class="n">client</span>
- <span class="n">print</span> <span class="s">"ping()"</span>
-
- <span class="n">sum</span> <span class="o"><-</span> <span class="n">Client</span><span class="p">.</span><span class="n">add</span> <span class="n">client</span> <span class="mi">1</span> <span class="mi">1</span>
- <span class="n">printf</span> <span class="s">"1+1=%d</span><span class="se">\n</span><span class="s">"</span> <span class="n">sum</span>
-
-
- <span class="n">let</span> <span class="n">work</span> <span class="o">=</span> <span class="n">Work</span> <span class="p">{</span> <span class="n">work_op</span> <span class="o">=</span> <span class="n">Operation_DIVIDE</span><span class="p">,</span>
- <span class="n">work_num1</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
- <span class="n">work_num2</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
- <span class="n">work_comment</span> <span class="o">=</span> <span class="n">Nothing</span>
- <span class="p">}</span>
-
- <span class="n">Control</span><span class="p">.</span><span class="n">Exception</span><span class="p">.</span><span class="k">catch</span> <span class="p">(</span><span class="n">printf</span> <span class="s">"1/0=%d</span><span class="se">\n</span><span class="s">"</span> <span class="o">=<<</span> <span class="n">Client</span><span class="p">.</span><span class="n">calculate</span> <span class="n">client</span> <span class="mi">1</span> <span class="n">work</span><span class="p [...]
- <span class="p">(</span><span class="err">\</span><span class="n">e</span> <span class="o">-></span> <span class="n">printf</span> <span class="s">"InvalidOperation %s</span><span class="se">\n</span><span class="s">"</span> <span class="p">(</span><span class="n">show</span> <span class="p">(</span><span class="n">e</span> <span class="o">::</span> <span class="n">InvalidOperation</span><span class="p">)))</span>
-
-
- <span class="n">let</span> <span class="n">work</span> <span class="o">=</span> <span class="n">Work</span> <span class="p">{</span> <span class="n">work_op</span> <span class="o">=</span> <span class="n">Operation_SUBTRACT</span><span class="p">,</span>
- <span class="n">work_num1</span> <span class="o">=</span> <span class="mi">15</span><span class="p">,</span>
- <span class="n">work_num2</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span>
- <span class="n">work_comment</span> <span class="o">=</span> <span class="n">Nothing</span>
- <span class="p">}</span>
-
- <span class="n">diff</span> <span class="o"><-</span> <span class="n">Client</span><span class="p">.</span><span class="n">calculate</span> <span class="n">client</span> <span class="mi">1</span> <span class="n">work</span>
- <span class="n">printf</span> <span class="s">"15-10=%d</span><span class="se">\n</span><span class="s">"</span> <span class="n">diff</span>
-
- <span class="n">log</span> <span class="o"><-</span> <span class="n">SClient</span><span class="p">.</span><span class="n">getStruct</span> <span class="n">client</span> <span class="mi">1</span>
- <span class="n">printf</span> <span class="s">"Check log: %s</span><span class="se">\n</span><span class="s">"</span> <span class="err">$</span> <span class="n">unpack</span> <span class="err">$</span> <span class="n">sharedStruct_value</span> <span class="n">log</span>
-
- <span class="o">--</span> <span class="n">Close</span><span class="o">!</span>
-</code></pre></div>
+<div class="highlight"><pre class="codehilite"><code><span class="o"><</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"a"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"search"</span> <span class="o">/></span>
+<span class="o"><</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"h"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"HEAD"</span> <span class="o">/></span>
+<span class="o"><</span><span class="n">select</span> <span class="n">name</span><span class="o">=</span><span class="s">"st"</span> <span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">selected</span><span class="o">=</span><span class="s">"selected"</span> <span class="n">value</span><span class="o">=</span><span class="s">"commit"</span><span class="o">></span><span class="n">commit</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"grep"</span><span class="o">></span><span class="n">grep</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"author"</span><span class="o">></span><span class="n">author</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"committer"</span><span class="o">></span><span class="n">committer</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"pickaxe"</span><span class="o">></span><span class="n">pickaxe</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"></</span><span class="n">select</span><span class="o">></span> <span class="o"><</span><span class="n">a</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=search_help"</span> <span class="n">title</span><span class="o">=</span><span class="s">"search help"</span><span class="o">>?</</span><span class="n">a</span><span class="o">></span> <span class="n">search</span><span class="o">:</span>
+<span class="o"><</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"text"</span> <span class="n">name</span><span class="o">=</span><span class="s">"s"</span> <span class="o">/></span>
+<span class="o"><</span><span class="n">span</span> <span class="n">title</span><span class="o">=</span><span class="s">"Extended regular expression"</span><span class="o">><</span><span class="n">label</span><span class="o">><</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"checkbox"</span> <span class="n">name</span><span class="o">=</span><span class="s">"sr"</span> <span class="n">value</span><span class="o">=</spa [...]
+<span class="o"></</span><span class="n">form</span><span class="o">></span>
+<span class="o"><</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_body"</span><span class="o">></span>
+<span class="o"><</span><span class="n">br</span> <span class="o">/><</span><span class="n">br</span> <span class="o">/></span>
+<span class="mi">404</span> <span class="o">-</span> <span class="n">Cannot</span> <span class="n">find</span> <span class="n">file</span>
+<span class="o"><</span><span class="n">br</span> <span class="o">/></span>
+<span class="o"></</span><span class="n">div</span><span class="o">></span>
+<span class="o"><</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer"</span><span class="o">></span>
+<span class="o"><</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer_text"</span><span class="o">></span><span class="n">Apache</span> <span class="n">Thrift</span><span class="o"></</span><span class="n">div</span><span class="o">></span>
+<span class="o"><</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=rss;f=tutorial/hs/HaskellClient.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellClient.hs RSS feed"</span><span class="o">></span><span class="n">RSS</span><span class="o"></</span><span class [...]
+<span class="o"><</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=atom;f=tutorial/hs/HaskellClient.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellClient.hs Atom feed"</span><span class="o">></span><span class="n">Atom</span><span class="o"></</span><span cl [...]
+<span class="o"></</span><span class="n">div</span><span class="o">></span>
+<span class="o"><</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span> <span class="n">src</span><span class="o">=</span><span class="s">"/static/gitweb.js"</span><span class="o">></</span><span class="n">script</span><span class="o">></span>
+<span class="o"><</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="o">></span>
+<span class="n">window</span><span class="p">.</span><span class="n">onload</span> <span class="o">=</span> <span class="n">function</span> <span class="p">()</span> <span class="p">{</span>
+ <span class="n">var</span> <span class="n">tz_cookie</span> <span class="o">=</span> <span class="p">{</span> <span class="n">name</span><span class="o">:</span> <span class="err">'</span><span class="n">gitweb_tz</span><span class="err">'</span><span class="p">,</span> <span class="n">expires</span><span class="o">:</span> <span class="mi">14</span><span class="p">,</span> <span class="n">path</span><span class="o">:</span> <span class="sc">'/'</span> <span class="p">};</span>
+ <span class="n">onloadTZSetup</span><span class="p">(</span><span class="err">'</span><span class="n">local</span><span class="err">'</span><span class="p">,</span> <span class="n">tz_cookie</span><span class="p">,</span> <span class="err">'</span><span class="n">datetime</span><span class="err">'</span><span class="p">);</span>
+<span class="p">};</span>
+<span class="o"></</span><span class="n">script</span><span class="o">></span>
+<span class="o"></</span><span class="n">body</span><span class="o">></span>
+<span class="o"></</span><span class="n">html</span><span class="o">></span></code></pre></div>
<p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
<a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/hs/HaskellClient.hs">tutorial/hs/HaskellClient.hs</a>
</p>
<h3 id="server">Server</h3>
-<div class="highlight"><pre class="codehilite"><code><span class="p">{</span><span class="o">-</span><span class="err">#</span> <span class="n">LANGUAGE</span> <span class="n">OverloadedStrings</span> <span class="err">#</span><span class="o">-</span><span class="p">}</span>
-
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">Calculator</span>
-<span class="n">import</span> <span class="n">Calculator_Iface</span>
-<span class="n">import</span> <span class="n">Tutorial_Types</span>
-<span class="n">import</span> <span class="n">SharedService_Iface</span>
-<span class="n">import</span> <span class="n">Shared_Types</span>
-
-<span class="n">import</span> <span class="n">Thrift</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Server</span>
-
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Int</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">String</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Maybe</span>
-<span class="n">import</span> <span class="n">Text</span><span class="p">.</span><span class="n">Printf</span>
-<span class="n">import</span> <span class="n">Control</span><span class="p">.</span><span class="n">Exception</span> <span class="p">(</span><span class="k">throw</span><span class="p">)</span>
-<span class="n">import</span> <span class="n">Control</span><span class="p">.</span><span class="n">Concurrent</span><span class="p">.</span><span class="n">MVar</span>
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">Data</span><span class="p">.</span><span class="n">Map</span> <span class="n">as</span> <span class="n">M</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Map</span> <span class="p">((</span><span class="o">!</span><span class="p">))</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Monoid</span>
-
-<span class="n">data</span> <span class="n">CalculatorHandler</span> <span class="o">=</span> <span class="n">CalculatorHandler</span> <span class="p">{</span><span class="n">mathLog</span> <span class="o">::</span> <span class="n">MVar</span> <span class="p">(</span><span class="n">M</span><span class="p">.</span><span class="n">Map</span> <span class="n">Int32</span> <span class="n">SharedStruct</span><span class="p">)}</span>
-
-<span class="n">newCalculatorHandler</span> <span class="o">=</span> <span class="k">do</span>
- <span class="n">log</span> <span class="o"><-</span> <span class="n">newMVar</span> <span class="n">mempty</span>
- <span class="k">return</span> <span class="err">$</span> <span class="n">CalculatorHandler</span> <span class="n">log</span>
-
-<span class="n">instance</span> <span class="n">SharedService_Iface</span> <span class="n">CalculatorHandler</span> <span class="n">where</span>
- <span class="n">getStruct</span> <span class="n">self</span> <span class="n">k</span> <span class="o">=</span> <span class="k">do</span>
- <span class="n">myLog</span> <span class="o"><-</span> <span class="n">readMVar</span> <span class="p">(</span><span class="n">mathLog</span> <span class="n">self</span><span class="p">)</span>
- <span class="k">return</span> <span class="err">$</span> <span class="p">(</span><span class="n">myLog</span> <span class="o">!</span> <span class="n">k</span><span class="p">)</span>
-
-
-<span class="n">instance</span> <span class="n">Calculator_Iface</span> <span class="n">CalculatorHandler</span> <span class="n">where</span>
- <span class="n">ping</span> <span class="n">_</span> <span class="o">=</span>
- <span class="n">print</span> <span class="s">"ping()"</span>
-
- <span class="n">add</span> <span class="n">_</span> <span class="n">n1</span> <span class="n">n2</span> <span class="o">=</span> <span class="k">do</span>
- <span class="n">printf</span> <span class="s">"add(%d,%d)</span><span class="se">\n</span><span class="s">"</span> <span class="n">n1</span> <span class="n">n2</span>
- <span class="k">return</span> <span class="p">(</span><span class="n">n1</span> <span class="o">+</span> <span class="n">n2</span><span class="p">)</span>
-
- <span class="n">calculate</span> <span class="n">self</span> <span class="n">mlogid</span> <span class="n">mwork</span> <span class="o">=</span> <span class="k">do</span>
- <span class="n">printf</span> <span class="s">"calculate(%d, %s)</span><span class="se">\n</span><span class="s">"</span> <span class="n">logid</span> <span class="p">(</span><span class="n">show</span> <span class="n">work</span><span class="p">)</span>
-
- <span class="n">let</span> <span class="n">val</span> <span class="o">=</span> <span class="k">case</span> <span class="n">op</span> <span class="n">work</span> <span class="n">of</span>
- <span class="n">Operation_ADD</span> <span class="o">-></span>
- <span class="n">num1</span> <span class="n">work</span> <span class="o">+</span> <span class="n">num2</span> <span class="n">work</span>
- <span class="n">Operation_SUBTRACT</span> <span class="o">-></span>
- <span class="n">num1</span> <span class="n">work</span> <span class="o">-</span> <span class="n">num2</span> <span class="n">work</span>
- <span class="n">Operation_MULTIPLY</span> <span class="o">-></span>
- <span class="n">num1</span> <span class="n">work</span> <span class="o">*</span> <span class="n">num2</span> <span class="n">work</span>
- <span class="n">Operation_DIVIDE</span> <span class="o">-></span>
- <span class="k">if</span> <span class="n">num2</span> <span class="n">work</span> <span class="o">==</span> <span class="mi">0</span> <span class="n">then</span>
- <span class="k">throw</span> <span class="err">$</span>
- <span class="n">InvalidOperation</span> <span class="err">{</span>
- <span class="n">invalidOperation_whatOp</span> <span class="o">=</span> <span class="n">fromIntegral</span> <span class="err">$</span> <span class="n">fromEnum</span> <span class="err">$</span> <span class="n">op</span> <span class="n">work</span><span class="p">,</span>
- <span class="n">invalidOperation_why</span> <span class="o">=</span> <span class="s">"Cannot divide by 0"</span>
- <span class="err">}</span>
- <span class="k">else</span>
- <span class="n">num1</span> <span class="n">work</span> <span class="err">`</span><span class="n">div</span><span class="err">`</span> <span class="n">num2</span> <span class="n">work</span>
-
- <span class="n">let</span> <span class="n">logEntry</span> <span class="o">=</span> <span class="n">SharedStruct</span> <span class="n">logid</span> <span class="p">(</span><span class="n">fromString</span> <span class="err">$</span> <span class="n">show</span> <span class="err">$</span> <span class="n">val</span><span class="p">)</span>
- <span class="n">modifyMVar_</span> <span class="p">(</span><span class="n">mathLog</span> <span class="n">self</span><span class="p">)</span> <span class="err">$</span> <span class="k">return</span> <span class="p">.(</span><span class="n">M</span><span class="p">.</span><span class="n">insert</span> <span class="n">logid</span> <span class="n">logEntry</span><span class="p">)</span>
-
- <span class="k">return</span> <span class="err">$</span><span class="o">!</span> <span class="n">val</span>
-
- <span class="n">where</span>
- <span class="o">--</span> <span class="n">stupid</span> <span class="n">dynamic</span> <span class="n">languages</span> <span class="n">f</span><span class="err">'</span><span class="n">ing</span> <span class="n">it</span> <span class="n">up</span>
- <span class="n">num1</span> <span class="o">=</span> <span class="n">work_num1</span>
- <span class="n">num2</span> <span class="o">=</span> <span class="n">work_num2</span>
- <span class="n">op</span> <span class="o">=</span> <span class="n">work_op</span>
- <span class="n">logid</span> <span class="o">=</span> <span class="n">mlogid</span>
- <span class="n">work</span> <span class="o">=</span> <span class="n">mwork</span>
-
- <span class="n">zip</span> <span class="n">_</span> <span class="o">=</span>
- <span class="n">print</span> <span class="s">"zip()"</span>
-
-<span class="n">main</span> <span class="o">=</span> <span class="k">do</span>
- <span class="n">handler</span> <span class="o"><-</span> <span class="n">newCalculatorHandler</span>
- <span class="n">print</span> <span class="s">"Starting the server..."</span>
- <span class="n">runBasicServer</span> <span class="n">handler</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">process</span> <span class="mi">9090</span>
-</code></pre></div>
+<div class="highlight"><pre class="codehilite"><code><span class="o"><</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"a"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"search"</span> <span class="o">/></span>
+<span class="o"><</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"h"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"HEAD"</span> <span class="o">/></span>
+<span class="o"><</span><span class="n">select</span> <span class="n">name</span><span class="o">=</span><span class="s">"st"</span> <span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">selected</span><span class="o">=</span><span class="s">"selected"</span> <span class="n">value</span><span class="o">=</span><span class="s">"commit"</span><span class="o">></span><span class="n">commit</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"grep"</span><span class="o">></span><span class="n">grep</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"author"</span><span class="o">></span><span class="n">author</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"committer"</span><span class="o">></span><span class="n">committer</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"><</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"pickaxe"</span><span class="o">></span><span class="n">pickaxe</span><span class="o"></</span><span class="n">option</span><span class="o">></span>
+<span class="o"></</span><span class="n">select</span><span class="o">></span> <span class="o"><</span><span class="n">a</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=search_help"</span> <span class="n">title</span><span class="o">=</span><span class="s">"search help"</span><span class="o">>?</</span><span class="n">a</span><span class="o">></span> <span class="n">search</span><span class="o">:</span>
+<span class="o"><</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"text"</span> <span class="n">name</span><span class="o">=</span><span class="s">"s"</span> <span class="o">/></span>
+<span class="o"><</span><span class="n">span</span> <span class="n">title</span><span class="o">=</span><span class="s">"Extended regular expression"</span><span class="o">><</span><span class="n">label</span><span class="o">><</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"checkbox"</span> <span class="n">name</span><span class="o">=</span><span class="s">"sr"</span> <span class="n">value</span><span class="o">=</spa [...]
+<span class="o"></</span><span class="n">form</span><span class="o">></span>
+<span class="o"><</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_body"</span><span class="o">></span>
+<span class="o"><</span><span class="n">br</span> <span class="o">/><</span><span class="n">br</span> <span class="o">/></span>
+<span class="mi">404</span> <span class="o">-</span> <span class="n">Cannot</span> <span class="n">find</span> <span class="n">file</span>
+<span class="o"><</span><span class="n">br</span> <span class="o">/></span>
+<span class="o"></</span><span class="n">div</span><span class="o">></span>
+<span class="o"><</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer"</span><span class="o">></span>
+<span class="o"><</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer_text"</span><span class="o">></span><span class="n">Apache</span> <span class="n">Thrift</span><span class="o"></</span><span class="n">div</span><span class="o">></span>
+<span class="o"><</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=rss;f=tutorial/hs/HaskellServer.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellServer.hs RSS feed"</span><span class="o">></span><span class="n">RSS</span><span class="o"></</span><span class [...]
+<span class="o"><</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=atom;f=tutorial/hs/HaskellServer.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellServer.hs Atom feed"</span><span class="o">></span><span class="n">Atom</span><span class="o"></</span><span cl [...]
+<span class="o"></</span><span class="n">div</span><span class="o">></span>
+<span class="o"><</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span> <span class="n">src</span><span class="o">=</span><span class="s">"/static/gitweb.js"</span><span class="o">></</span><span class="n">script</span><span class="o">></span>
+<span class="o"><</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="o">></span>
+<span class="n">window</span><span class="p">.</span><span class="n">onload</span> <span class="o">=</span> <span class="n">function</span> <span class="p">()</span> <span class="p">{</span>
+ <span class="n">var</span> <span class="n">tz_cookie</span> <span class="o">=</span> <span class="p">{</span> <span class="n">name</span><span class="o">:</span> <span class="err">'</span><span class="n">gitweb_tz</span><span class="err">'</span><span class="p">,</span> <span class="n">expires</span><span class="o">:</span> <span class="mi">14</span><span class="p">,</span> <span class="n">path</span><span class="o">:</span> <span class="sc">'/'</span> <span class="p">};</span>
+ <span class="n">onloadTZSetup</span><span class="p">(</span><span class="err">'</span><span class="n">local</span><span class="err">'</span><span class="p">,</span> <span class="n">tz_cookie</span><span class="p">,</span> <span class="err">'</span><span class="n">datetime</span><span class="err">'</span><span class="p">);</span>
+<span class="p">};</span>
+<span class="o"></</span><span class="n">script</span><span class="o">></span>
+<span class="o"></</span><span class="n">body</span><span class="o">></span>
+<span class="o"></</span><span class="n">html</span><span class="o">></span></code></pre></div>
<p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
<a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/hs/HaskellServer.hs">tutorial/hs/HaskellServer.hs</a>
</p>
diff --git a/output/tutorial/netstd.html b/output/tutorial/netstd.html
index b2a3b32..49ff67b 100644
--- a/output/tutorial/netstd.html
+++ b/output/tutorial/netstd.html
@@ -94,7 +94,7 @@ All Apache Thrift tutorials require that you have:
<span class="p">{</span>
<span class="k">public</span> <span class="k">class</span> <span class="nc">Program</span>
<span class="p">{</span>
- <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ServiceCollection</span><span class="p">();</span>
+ <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span><span class="p">();</span>
<span class="k">private</span> <span class="k">static</span> <span class="n">ILogger</span> <span class="n">Logger</span><span class="p">;</span>
<span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">TConfiguration</span> <span class="n">Configuration</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span> <span class="c1">// new TConfiguration() if needed</span>
@@ -340,17 +340,13 @@ All Apache Thrift tutorials require that you have:
<span class="k">private</span> <span class="k">static</span> <span class="n">TProtocol</span> <span class="n">MakeProtocol</span><span class="p">(</span><span class="n">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">,</span> <span class="n">TTransport</span> <span class="n">transport</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">Protocol</span> <span class="n">selectedProtocol</span> <span class="o">=</span> <span class="n">GetProtocol</span><span class="p">(</span><span class="n">args</span><span class="p">);</span>
- <span class="k">switch</span> <span class="p">(</span><span class="n">selectedProtocol</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">selectedProtocol</span> <span class="k">switch</span>
<span class="p">{</span>
- <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span><span class="p">:</span>
- <span class="k">return</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
- <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span><span class="p">:</span>
- <span class="k">return</span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
- <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span><span class="p">:</span>
- <span class="k">return</span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
- <span class="nl">default:</span>
- <span class="k">throw</span> <span class="k">new</span> <span class="n">Exception</span><span class="p">(</span><span class="s">"unhandled protocol"</span><span class="p">);</span>
- <span class="p">}</span>
+ <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">),</span>
+ <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">),</span>
+ <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">),</span>
+ <span class="n">_</span> <span class="o">=></span> <span class="k">throw</span> <span class="k">new</span> <span class="n">Exception</span><span class="p">(</span><span class="s">"unhandled protocol"</span><span class="p">),</span>
+ <span class="p">};</span>
<span class="p">}</span>
<span class="k">private</span> <span class="k">static</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">RunClientAsync</span><span class="p">(</span><span class="n">TProtocol</span> <span class="n">protocol</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">multiplex</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
@@ -386,12 +382,12 @@ All Apache Thrift tutorials require that you have:
<span class="c1">// Async version</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} PingAsync()"</span><span class="p">);</span>
- <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">pingAsync</span><span class="p">(</span><span class="n">cancellationToken</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Ping()"</span><span class="p">);</span>
+ <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">ping</span><span class="p">(</span><span class="n">cancellationToken</span><span class="p">);</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} AddAsync(1,1)"</span><span class="p">);</span>
- <span class="n">var</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">addAsync</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="n">cancellationToken</span><span class="p">);</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} AddAsync(1,1)={sum}"</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Add(1,1)"</span><span class="p">);</span>
+ <span class="n">var</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">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="n">cancellationToken</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Add(1,1)={sum}"</span><span class="p">);</span>
<span class="n">var</span> <span class="n">work</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Work</span>
<span class="p">{</span>
@@ -402,11 +398,15 @@ All Apache Thrift tutorials require that you have:
<span class="k">try</span>
<span class="p">{</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} CalculateAsync(1)"</span><span class="p">);</span>
- <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">calculateAsync</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">work</span><span class="p">,</span> <span class="n">cancellationToken</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Calculate(1)"</span><span class="p">);</span>
+ <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">calculate</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">work</span><span class="p">,</span> <span class="n">cancellationToken</span><span class="p">);</span>
<span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Whoa we can divide by 0"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">catch</span> <span class="p">(</span><span class="n">InvalidOperation</span> <span class="n">io</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Invalid operation: "</span> <span class="o">+</span> <span class="n">io</span><span class="p">);</span>
+ <span class="p">}</span>
+
</code></pre></div>
<p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
<a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/netstd/Client/Program.cs">tutorial/netstd/Client/Program.cs</a>
@@ -444,7 +444,7 @@ All Apache Thrift tutorials require that you have:
<span class="p">{</span>
<span class="k">public</span> <span class="k">class</span> <span class="nc">Program</span>
<span class="p">{</span>
- <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ServiceCollection</span><span class="p">();</span>
+ <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span><span class="p">();</span>
<span class="k">private</span> <span class="k">static</span> <span class="n">ILogger</span> <span class="n">Logger</span><span class="p">;</span>
<span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">TConfiguration</span> <span class="n">Configuration</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span> <span class="c1">// new TConfiguration() if needed</span>
@@ -585,55 +585,30 @@ All Apache Thrift tutorials require that you have:
<span class="k">private</span> <span class="k">static</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">RunSelectedConfigurationAsync</span><span class="p">(</span><span class="n">Transport</span> <span class="n">transport</span><span class="p">,</span> <span class="n">Buffering</span> <span class="n">buffering</span><span class="p">,</span> <span class="n">Protocol</span> <span class="n">protocol</span><span class="p">,</span> <span class="kt">bool< [...]
<span class="p">{</span>
- <span class="n">TServerTransport</span> <span class="n">serverTransport</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
- <span class="k">switch</span> <span class="p">(</span><span class="n">transport</span><span class="p">)</span>
+ <span class="n">TServerTransport</span> <span class="n">serverTransport</span> <span class="o">=</span> <span class="n">transport</span> <span class="k">switch</span>
<span class="p">{</span>
- <span class="k">case</span> <span class="n">Transport</span><span class="p">.</span><span class="n">Tcp</span><span class="p">:</span>
- <span class="n">serverTransport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="k">case</span> <span class="n">Transport</span><span class="p">.</span><span class="n">NamedPipe</span><span class="p">:</span>
- <span class="n">serverTransport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TNamedPipeServerTransport</span><span class="p">(</span><span class="s">".test"</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="k">case</span> <span class="n">Transport</span><span class="p">.</span><span class="n">TcpTls</span><span class="p">:</span>
- <span class="n">serverTransport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TTlsServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">,</span>
- <span class="n">GetCertificate</span><span class="p">(),</span> <span class="n">ClientCertValidator</span><span class="p">,</span> <span class="n">LocalCertificateSelectionCallback</span><span class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="p">}</span>
+ <span class="n">Transport</span><span class="p">.</span><span class="n">Tcp</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">),</span>
+ <span class="n">Transport</span><span class="p">.</span><span class="n">NamedPipe</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TNamedPipeServerTransport</span><span class="p">(</span><span class="s">".test"</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">,</span> <span class="n">NamedPipeClientFlags</span><span class="p">.</span><span class="n">None</span><span class="p">),</span>
+ <span class="n">Transport</span><span class="p">.</span><span class="n">TcpTls</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TTlsServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">,</span> <span class="n">GetCertificate</span><span class="p">(),</span> <span class="n">ClientCertValidator</span><span class="p">,</span> <span class="n">L [...]
+ <span class="n">_</span> <span class="o">=></span> <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentException</span><span class="p">(</span><span class="s">"unsupported value $transport"</span><span class="p">,</span> <span class="n">nameof</span><span class="p">(</span><span class="n">transport</span><span class="p">)),</span>
+ <span class="p">};</span>
- <span class="n">TTransportFactory</span> <span class="n">transportFactory</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
- <span class="k">switch</span> <span class="p">(</span><span class="n">buffering</span><span class="p">)</span>
+ <span class="n">TTransportFactory</span> <span class="n">transportFactory</span> <span class="o">=</span> <span class="n">buffering</span> <span class="k">switch</span>
<span class="p">{</span>
- <span class="k">case</span> <span class="n">Buffering</span><span class="p">.</span><span class="n">Buffered</span><span class="p">:</span>
- <span class="n">transportFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TBufferedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="k">case</span> <span class="n">Buffering</span><span class="p">.</span><span class="n">Framed</span><span class="p">:</span>
- <span class="n">transportFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TFramedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="nl">default:</span> <span class="c1">// layered transport(s) are optional</span>
- <span class="n">Debug</span><span class="p">.</span><span class="n">Assert</span><span class="p">(</span><span class="n">buffering</span> <span class="o">==</span> <span class="n">Buffering</span><span class="p">.</span><span class="n">None</span><span class="p">,</span> <span class="s">"unhandled case"</span><span class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="p">}</span>
+ <span class="n">Buffering</span><span class="p">.</span><span class="n">Buffered</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TBufferedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+ <span class="n">Buffering</span><span class="p">.</span><span class="n">Framed</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TFramedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+ <span class="c1">// layered transport(s) are optional</span>
+ <span class="n">Buffering</span><span class="p">.</span><span class="n">None</span> <span class="o">=></span> <span class="n">null</span><span class="p">,</span>
+ <span class="n">_</span> <span class="o">=></span> <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentException</span><span class="p">(</span><span class="s">"unsupported value $buffering"</span><span class="p">,</span> <span class="n">nameof</span><span class="p">(</span><span class="n">buffering</span><span class="p">)),</span>
+ <span class="p">};</span>
- <span class="n">TProtocolFactory</span> <span class="n">protocolFactory</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
- <span class="k">switch</span> <span class="p">(</span><span class="n">protocol</span><span class="p">)</span>
+ <span class="n">TProtocolFactory</span> <span class="n">protocolFactory</span> <span class="o">=</span> <span class="n">protocol</span> <span class="k">switch</span>
<span class="p">{</span>
- <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span><span class="p">:</span>
- <span class="n">protocolFactory</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="p">();</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span><span class="p">:</span>
- <span class="n">protocolFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span><span class="p">:</span>
- <span class="n">protocolFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="nl">default:</span>
- <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentOutOfRangeException</span><span class="p">(</span><span class="n">nameof</span><span class="p">(</span><span class="n">protocol</span><span class="p">),</span> <span class="n">protocol</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
- <span class="p">}</span>
+ <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</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="p">(),</span>
+ <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+ <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span> <span class="o">=></span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+ <span class="n">_</span> <span class="o">=></span> <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentException</span><span class="p">(</span><span class="s">"unsupported value $protocol"</span><span class="p">,</span> <span class="n">nameof</span><span class="p">(</span><span class="n">protocol</span><span class="p">)),</span>
+ <span class="p">};</span>
<span class="n">var</span> <span class="n">handler</span> <span class="o">=</span> <span class="k">new</span> <span class="n">CalculatorAsyncHandler</span><span class="p">();</span>
<span class="n">ITAsyncProcessor</span> <span class="n">processor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">AsyncProcessor</span><span class="p">(</span><span class="n">handler</span><span class="p">);</span>
@@ -794,39 +769,64 @@ All Apache Thrift tutorials require that you have:
<span class="k">public</span> <span class="k">class</span> <span class="nc">CalculatorAsyncHandler</span> <span class="o">:</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">IAsync</span>
<span class="p">{</span>
- <span class="k">private</span> <span class="n">readonly</span> <span class="n">Dictionary</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">SharedStruct</span><span class="o">></span> <span class="n">_log</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Dictionary</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">SharedStruct</span><span class="o" [...]
+ <span class="k">private</span> <span class="n">readonly</span> <span class="n">Dictionary</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">SharedStruct</span><span class="o">></span> <span class="n">_log</span> <span class="o">=</span> <span class="k">new</span><span class="p">();</span>
<span class="k">public</span> <span class="n">CalculatorAsyncHandler</span><span class="p">()</span>
<span class="p">{</span>
<span class="p">}</span>
- <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o"><</span><span class="n">SharedStruct</span><span class="o">></span> <span class="n">getStructAsync</span><span class="p">(</span><span class="kt">int</span> <span class="n">key</span><span class="p">,</span>
+ <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o"><</span><span class="n">SharedStruct</span><span class="o">></span> <span class="n">getStruct</span><span class="p">(</span><span class="kt">int</span> <span class="n">key</span><span class="p">,</span>
<span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"GetStructAsync({0})"</span><span class="p">,</span> <span class="n">key</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"GetStruct({0})"</span><span class="p">,</span> <span class="n">key</span><span class="p">);</span>
<span class="k">return</span> <span class="n">await</span> <span class="n">Task</span><span class="p">.</span><span class="n">FromResult</span><span class="p">(</span><span class="n">_log</span><span class="p">[</span><span class="n">key</span><span class="p">]);</span>
<span class="p">}</span>
- <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">pingAsync</span><span class="p">(</span><span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
+ <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">ping</span><span class="p">(</span><span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"PingAsync()"</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"Ping()"</span><span class="p">);</span>
<span class="n">await</span> <span class="n">Task</span><span class="p">.</span><span class="n">CompletedTask</span><span class="p">;</span>
<span class="p">}</span>
- <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">addAsync</span><span class="p">(</span><span class="kt">int</span> <span class="n">num1</span><span class="p">,</span> <span class="kt">int</span> <span class="n">num2</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p"> [...]
+ <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">add</span><span class="p">(</span><span class="kt">int</span> <span class="n">num1</span><span class="p">,</span> <span class="kt">int</span> <span class="n">num2</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"AddAsync({num1},{num2})"</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"Add({num1},{num2})"</span><span class="p">);</span>
<span class="k">return</span> <span class="n">await</span> <span class="n">Task</span><span class="p">.</span><span class="n">FromResult</span><span class="p">(</span><span class="n">num1</span> <span class="o">+</span> <span class="n">num2</span><span class="p">);</span>
<span class="p">}</span>
- <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">calculateAsync</span><span class="p">(</span><span class="kt">int</span> <span class="n">logid</span><span class="p">,</span> <span class="n">Work</span> <span class="n">w</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class= [...]
+ <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">calculate</span><span class="p">(</span><span class="kt">int</span> <span class="n">logid</span><span class="p">,</span> <span class="n">Work</span> <span class="n">w</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"CalculateAsync({logid}, [{w.Op},{w.Num1},{w.Num2}])"</span><span class="p">);</span>
+ <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"Calculate({logid}, [{w.Op},{w.Num1},{w.Num2}])"</span><span class="p">);</span>
<span class="kt">int</span> <span class="n">val</span><span class="p">;</span>
<span class="k">switch</span> <span class="p">(</span><span class="n">w</span><span class="p">.</span><span class="n">Op</span><span class="p">)</span>
<span class="p">{</span>
<span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">ADD</span><span class="p">:</span>
+ <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">+</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">SUBTRACT</span><span class="p">:</span>
+ <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">-</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">MULTIPLY</span><span class="p">:</span>
+ <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">*</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">DIVIDE</span><span class="p">:</span>
+ <span class="k">if</span> <span class="p">(</span><span class="n">w</span><span class="p">.</span><span class="n">Num2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="n">var</span> <span class="n">io</span> <span class="o">=</span> <span class="k">new</span> <span class="n">InvalidOperation</span>
+ <span class="p">{</span>
+ <span class="n">WhatOp</span> <span class="o">=</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span> <span class="n">w</span><span class="p">.</span><span class="n">Op</span><span class="p">,</span>
+ <span class="n">Why</span> <span class="o">=</span> <span class="s">"Cannot divide by 0"</span>
+ <span class="p">};</span>
+
+ <span class="k">throw</span> <span class="n">io</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">/</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+ <span class="k">break</span><span class="p">;</span>
+
</code></pre></div>
<p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
<a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/netstd/Server/Program.cs">tutorial/netstd/Server/Program.cs</a>