You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by bu...@apache.org on 2019/02/12 12:43:52 UTC

svn commit: r1040314 - in /websites/staging/thrift/trunk/content: ./ docs/HowToContribute.html docs/Languages.html docs/idl.html index.html lib/cpp.html lib/csharp.html lib/hs.html lib/index.html test/ThriftTest.html tutorial/cpp.html

Author: buildbot
Date: Tue Feb 12 12:43:51 2019
New Revision: 1040314

Log:
Staging update by buildbot for thrift

Modified:
    websites/staging/thrift/trunk/content/   (props changed)
    websites/staging/thrift/trunk/content/docs/HowToContribute.html
    websites/staging/thrift/trunk/content/docs/Languages.html
    websites/staging/thrift/trunk/content/docs/idl.html
    websites/staging/thrift/trunk/content/index.html
    websites/staging/thrift/trunk/content/lib/cpp.html
    websites/staging/thrift/trunk/content/lib/csharp.html
    websites/staging/thrift/trunk/content/lib/hs.html
    websites/staging/thrift/trunk/content/lib/index.html
    websites/staging/thrift/trunk/content/test/ThriftTest.html
    websites/staging/thrift/trunk/content/tutorial/cpp.html

Propchange: websites/staging/thrift/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Feb 12 12:43:51 2019
@@ -1 +1 @@
-1852672
+1853430

Modified: websites/staging/thrift/trunk/content/docs/HowToContribute.html
==============================================================================
--- websites/staging/thrift/trunk/content/docs/HowToContribute.html (original)
+++ websites/staging/thrift/trunk/content/docs/HowToContribute.html Tue Feb 12 12:43:51 2019
@@ -98,13 +98,13 @@ on a variety of Linux and Windows config
 for a successful pull request:</p>
 <ol>
 <li>
-<p>All code changes require an <a href="http://issues.apache.org/jira/browse/THRIFT">Apache Jira THRIFT Issue</a> ticket.</p>
+<p>All significant changes require an <a href="http://issues.apache.org/jira/browse/THRIFT">Apache Jira THRIFT Issue</a> ticket.  Trivial changes such as fixing a typo or a compiler warning do not.</p>
 </li>
 <li>
 <p>All pull requests should contain a single commit per issue, or we will ask you to squash it.</p>
 </li>
 <li>
-<p>The pull request title must begin with the Jira THRIFT ticket identifier, for example:</p>
+<p>The pull request title must begin with the Jira THRIFT ticket identifier if it has an associated ticket, for example:</p>
 <div class="codehilite"><pre><span class="n">THRIFT</span><span class="o">-</span>9999<span class="p">:</span> <span class="n">an</span> <span class="n">example</span> <span class="n">pull</span> <span class="n">request</span> <span class="n">title</span>
 </pre></div>
 
@@ -113,7 +113,7 @@ for a successful pull request:</p>
 <li>
 <p>Commit messages must follow this pattern for code changes (deviations will not be merged):</p>
 <div class="codehilite"><pre><span class="n">THRIFT</span><span class="o">-</span>9999<span class="p">:</span> <span class="p">[</span><span class="n">summary</span> <span class="n">of</span> <span class="nb">fix</span><span class="p">,</span> <span class="n">one</span> <span class="n">line</span> <span class="k">if</span> <span class="n">possible</span><span class="p">]</span>
-<span class="n">Client</span><span class="p">:</span> <span class="p">[</span><span class="n">language</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="n">affected</span><span class="p">,</span> <span class="n">comma</span> <span class="n">separated</span><span class="p">,</span> <span class="n">use</span> <span class="n">lib</span><span class="o">/</span> <span class="n">directory</span> <span class="n">names</span> <span class="n">please</span><span class="p">]</span>
+<span class="n">Client</span><span class="p">:</span> <span class="p">[</span><span class="n">language</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="n">affected</span><span class="p">,</span> <span class="n">comma</span> <span class="n">separated</span><span class="p">,</span> <span class="k">for</span> <span class="n">example</span><span class="p">:</span> &quot;<span class="n">cpp</span><span class="p">,</span><span class="n">erl</span><span class="p">,</span><span class="n">perl</span>&quot;<span class="p">]</span>
 </pre></div>
 
 
@@ -157,12 +157,12 @@ for a successful pull request:</p>
 <li>Contribute your code changes using the GitHub pull request method:</li>
 </ol>
 <h2 id="contributing-via-patch">Contributing via Patch<a class="headerlink" href="#contributing-via-patch" title="Permanent link">&para;</a></h2>
-<p>Some changes do not require a build, for example in documentation.  For changes that are not code or build related, you can submit a patch on Jira for review.  To create a patch from changes in your local directory:</p>
+<p>To create a patch from changes in your local directory:</p>
 <div class="codehilite"><pre><span class="n">git</span> <span class="n">diff</span> <span class="o">&gt;</span> <span class="p">.</span><span class="o">./</span><span class="n">THRIFT</span><span class="o">-</span><span class="n">NNNN</span><span class="p">.</span><span class="n">patch</span>
 </pre></div>
 
 
-<p>then wait for contributors or committers to review your changes, and then for a committer to apply your patch.</p>
+<p>then wait for contributors or committers to review your changes, and then for a committer to apply your patch.  This is not the preferred way to submit changes and incurs additional overhead for committers who must then create a pull request for you.</p>
 <h2 id="github-recipes-for-pull-requests">GitHub recipes for Pull Requests<a class="headerlink" href="#github-recipes-for-pull-requests" title="Permanent link">&para;</a></h2>
 <p>Sometimes commmitters may ask you to take actions in your pull requests.  Here are some recipes that will help you accomplish those requests.  These examples assume you are working on Jira issue THRIFT-9999.  You should also be familiar with the <a href="https://help.github.com/articles/syncing-a-fork/">upstream</a> repository concept.</p>
 <h3 id="squash-your-changes">Squash your changes<a class="headerlink" href="#squash-your-changes" title="Permanent link">&para;</a></h3>

Modified: websites/staging/thrift/trunk/content/docs/Languages.html
==============================================================================
--- websites/staging/thrift/trunk/content/docs/Languages.html (original)
+++ websites/staging/thrift/trunk/content/docs/Languages.html Tue Feb 12 12:43:51 2019
@@ -117,8 +117,8 @@ h2:hover > .headerlink, h3:hover > .head
 <tr align=center>
 <td align=left><a href="https://github.com/apache/thrift/blob/master/lib/as3/README.md">ActionScript</a></td>
 <!-- Since -----------------><td>0.3.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 colspan=2>ActionScript 3</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 colspan=2>FLEX SDK 4.6</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/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/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td>

Modified: websites/staging/thrift/trunk/content/docs/idl.html
==============================================================================
--- websites/staging/thrift/trunk/content/docs/idl.html (original)
+++ websites/staging/thrift/trunk/content/docs/idl.html Tue Feb 12 12:43:51 2019
@@ -85,7 +85,7 @@
 }
 h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
 <h2 id="thrift-interface-description-language">Thrift interface description language<a class="headerlink" href="#thrift-interface-description-language" title="Permanent link">&para;</a></h2>
-<p>For Thrift version 1.0.0.</p>
+<p>For Thrift version 0.13.0.</p>
 <p>The Thrift interface definition language (IDL) allows for the definition of <a href="/docs/types">Thrift Types</a>. A Thrift IDL file is processed by the Thrift code generator to produce code for the various target languages to support the defined structs and services in the IDL file.</p>
 <h2 id="description">Description<a class="headerlink" href="#description" title="Permanent link">&para;</a></h2>
 <p>Here is a description of the Thrift IDL.</p>

Modified: websites/staging/thrift/trunk/content/index.html
==============================================================================
--- websites/staging/thrift/trunk/content/index.html (original)
+++ websites/staging/thrift/trunk/content/index.html Tue Feb 12 12:43:51 2019
@@ -152,7 +152,8 @@
   visibility: hidden;
 }
 h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
-<div class="codehilite"><pre> * Ahh, now onto the cool part, defining a service. Services just need a name
+<div class="codehilite"><pre>/**
+ * Ahh, now onto the cool part, defining a service. Services just need a name
  * and can optionally inherit from another service using the extends keyword.
  */
 service Calculator extends shared.SharedService {
@@ -174,7 +175,6 @@ service Calculator extends shared.Shared
     * This method has a oneway modifier. That means the client only makes
     * a request and does not listen for any response at all. Oneway methods
     * must be void.
-    */
 </pre></div>
 <p class='snippet_footer'>
   This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:

Modified: websites/staging/thrift/trunk/content/lib/cpp.html
==============================================================================
--- websites/staging/thrift/trunk/content/lib/cpp.html (original)
+++ websites/staging/thrift/trunk/content/lib/cpp.html Tue Feb 12 12:43:51 2019
@@ -256,6 +256,9 @@ tell CMake through BUILD_SHARED_LIBS whe
 libraries now.  This is CMake standard behavior.</p>
 <p>THRIFT-4735:
 Qt4 support was removed.</p>
+<p>THRIFT-4762:
+Added <code>const</code> specifier to <code>TTransport::getOrigin()</code>. This changes its function signature.
+It's recommended to add the <code>override</code> specifier in implementations derived from <code>TTransport</code>.</p>
 <h2 id="0110">0.11.0<a class="headerlink" href="#0110" title="Permanent link">&para;</a></h2>
 <p>Older versions of thrift depended on the <boost/smart_ptr.hpp> classes which
 were used in thrift headers to define interfaces.  Thrift now detects C++11

Modified: websites/staging/thrift/trunk/content/lib/csharp.html
==============================================================================
--- websites/staging/thrift/trunk/content/lib/csharp.html (original)
+++ websites/staging/thrift/trunk/content/lib/csharp.html Tue Feb 12 12:43:51 2019
@@ -84,6 +84,12 @@
   visibility: hidden;
 }
 h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.</p>
 <h1 id="using-thrift-with-c">Using Thrift with C#<a class="headerlink" href="#using-thrift-with-c" title="Permanent link">&para;</a></h1>
 <p>Thrift requires Mono &gt;= 1.2.6 or .NET framework &gt;= 3.5
 <p class='snippet_footer'>

Modified: websites/staging/thrift/trunk/content/lib/hs.html
==============================================================================
--- websites/staging/thrift/trunk/content/lib/hs.html (original)
+++ websites/staging/thrift/trunk/content/lib/hs.html Tue Feb 12 12:43:51 2019
@@ -128,7 +128,19 @@ class and proceeding down (all the while
 label to process as the handler.</p>
 <h1 id="processor">Processor<a class="headerlink" href="#processor" title="Permanent link">&para;</a></h1>
 <p>Just a function that takes a handler label, protocols. It calls the
-superclasses process if there is a superclass.
+superclasses process if there is a superclass.</p>
+<h1 id="releasing-to-hackage">Releasing to Hackage<a class="headerlink" href="#releasing-to-hackage" title="Permanent link">&para;</a></h1>
+<p>Using the <a href="../../build/docker/README">Docker Container for Ubuntu Bionic</a>, run:</p>
+<div class="codehilite"><pre><span class="n">root</span><span class="p">@</span><span class="n">e941f5311545</span><span class="p">:</span><span class="o">/</span><span class="n">thrift</span><span class="o">/</span><span class="n">src</span># <span class="o">./</span><span class="n">bootstrap</span><span class="p">.</span><span class="n">sh</span> <span class="o">&amp;&amp;</span> <span class="o">./</span><span class="n">configure</span>
+<span class="n">root</span><span class="p">@</span><span class="n">e941f5311545</span><span class="p">:</span><span class="o">/</span><span class="n">thrift</span><span class="o">/</span><span class="n">src</span># <span class="n">cd</span> <span class="n">lib</span><span class="o">/</span><span class="n">hs</span> <span class="o">&amp;&amp;</span> <span class="n">make</span> <span class="n">dist</span><span class="o">-</span><span class="n">local</span>
+</pre></div>
+
+
+<p>This will produce a <code>lib/hs/dist/thrift-&lt;version&gt;.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 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;f=lib/hs/README.md;hb=HEAD"</a>lib/hs/README.md</a>

Modified: websites/staging/thrift/trunk/content/lib/index.html
==============================================================================
--- websites/staging/thrift/trunk/content/lib/index.html (original)
+++ websites/staging/thrift/trunk/content/lib/index.html Tue Feb 12 12:43:51 2019
@@ -150,7 +150,7 @@ h2:hover > .headerlink, h3:hover > .head
             <td class="packurl"><a href=""></a></td>
             <td class="ctrlfile"></td>
             <td class="maintainer"></td>
-            <td class="remarks">no official ASF package available</td>
+            <td class="remarks">language has no package manager</td>
         </tr>
         
         <tr class="">
@@ -159,7 +159,7 @@ h2:hover > .headerlink, h3:hover > .head
             <td class="packurl"><a href=""></a></td>
             <td class="ctrlfile"></td>
             <td class="maintainer"></td>
-            <td class="remarks">no official ASF package available</td>
+            <td class="remarks">see THRIFT-4800</td>
         </tr>
         
         <tr class="">
@@ -177,7 +177,7 @@ h2:hover > .headerlink, h3:hover > .head
             <td class="packurl"><a href=""></a></td>
             <td class="ctrlfile"></td>
             <td class="maintainer"></td>
-            <td class="remarks">no official ASF package available</td>
+            <td class="remarks">deprecated on 0.12.0 - use swift</td>
         </tr>
         
         <tr class="">
@@ -284,8 +284,8 @@ h2:hover > .headerlink, h3:hover > .head
             <td class="packman">npm</td>
             <td class="packurl"><a href="https://www.npmjs.com/package/thrift">https://www.npmjs.com/package/thrift</a></td>
             <td class="ctrlfile">package.json</td>
-            <td class="maintainer">jfarrell, wadey</td>
-            <td class="remarks">stale at 0.11.0 - see THRIFT-4688</td>
+            <td class="maintainer">jfarrell, wadey, jking</td>
+            <td class="remarks"></td>
         </tr>
         
         <tr class="">

Modified: websites/staging/thrift/trunk/content/test/ThriftTest.html
==============================================================================
--- websites/staging/thrift/trunk/content/test/ThriftTest.html (original)
+++ websites/staging/thrift/trunk/content/test/ThriftTest.html Tue Feb 12 12:43:51 2019
@@ -505,7 +505,8 @@ h2:hover > .headerlink, h3:hover > .head
 407
 408
 409
-410</pre></div></td><td class="code"><div class="codehilite"><pre>/*
+410
+411</pre></div></td><td class="code"><div class="codehilite"><pre>/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
@@ -537,6 +538,7 @@ namespace java thrift.test
 namespace js ThriftTest
 namespace lua ThriftTest
 namespace netcore ThriftTest
+namespace netstd ThriftTest
 namespace perl ThriftTest
 namespace php ThriftTest
 namespace py ThriftTest

Modified: websites/staging/thrift/trunk/content/tutorial/cpp.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/cpp.html (original)
+++ websites/staging/thrift/trunk/content/tutorial/cpp.html Tue Feb 12 12:43:51 2019
@@ -225,16 +225,16 @@ h2:hover > .headerlink, h3:hover > .head
 
 <span class="k">class</span> <span class="nc">CalculatorHandler</span> <span class="o">:</span> <span class="k">public</span> <span class="n">CalculatorIf</span> <span class="p">{</span>
 <span class="k">public</span><span class="o">:</span>
-  <span class="n">CalculatorHandler</span><span class="p">()</span> <span class="p">{}</span>
+  <span class="n">CalculatorHandler</span><span class="p">()</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
 
-  <span class="kt">void</span> <span class="n">ping</span><span class="p">()</span> <span class="p">{</span> <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;ping()&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span> <span class="p">}</span>
+  <span class="kt">void</span> <span class="n">ping</span><span class="p">()</span> <span class="n">override</span> <span class="p">{</span> <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;ping()&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span> <span class="p">}</span>
 
-  <span class="n">int32_t</span> <span class="n">add</span><span class="p">(</span><span class="k">const</span> <span class="n">int32_t</span> <span class="n">n1</span><span class="p">,</span> <span class="k">const</span> <span class="n">int32_t</span> <span class="n">n2</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">int32_t</span> <span class="n">add</span><span class="p">(</span><span class="k">const</span> <span class="n">int32_t</span> <span class="n">n1</span><span class="p">,</span> <span class="k">const</span> <span class="n">int32_t</span> <span class="n">n2</span><span class="p">)</span> <span class="n">override</span> <span class="p">{</span>
     <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;add(&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">n1</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;, &quot;</span> <span class="o">&lt;&lt;</span> <span class="n">n2</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;)&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
     <span class="k">return</span> <span class="n">n1</span> <span class="o">+</span> <span class="n">n2</span><span class="p">;</span>
   <span class="p">}</span>
 
-  <span class="n">int32_t</span> <span class="n">calculate</span><span class="p">(</span><span class="k">const</span> <span class="n">int32_t</span> <span class="n">logid</span><span class="p">,</span> <span class="k">const</span> <span class="n">Work</span><span class="o">&amp;</span> <span class="n">work</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">int32_t</span> <span class="n">calculate</span><span class="p">(</span><span class="k">const</span> <span class="n">int32_t</span> <span class="n">logid</span><span class="p">,</span> <span class="k">const</span> <span class="n">Work</span><span class="o">&amp;</span> <span class="n">work</span><span class="p">)</span> <span class="n">override</span> <span class="p">{</span>
     <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;calculate(&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">logid</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;, &quot;</span> <span class="o">&lt;&lt;</span> <span class="n">work</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;)&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
     <span class="n">int32_t</span> <span class="n">val</span><span class="p">;</span>
 
@@ -273,12 +273,12 @@ h2:hover > .headerlink, h3:hover > .head
     <span class="k">return</span> <span class="n">val</span><span class="p">;</span>
   <span class="p">}</span>
 
-  <span class="kt">void</span> <span class="n">getStruct</span><span class="p">(</span><span class="n">SharedStruct</span><span class="o">&amp;</span> <span class="n">ret</span><span class="p">,</span> <span class="k">const</span> <span class="n">int32_t</span> <span class="n">logid</span><span class="p">)</span> <span class="p">{</span>
+  <span class="kt">void</span> <span class="n">getStruct</span><span class="p">(</span><span class="n">SharedStruct</span><span class="o">&amp;</span> <span class="n">ret</span><span class="p">,</span> <span class="k">const</span> <span class="n">int32_t</span> <span class="n">logid</span><span class="p">)</span> <span class="n">override</span> <span class="p">{</span>
     <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;getStruct(&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">logid</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;)&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
     <span class="n">ret</span> <span class="o">=</span> <span class="n">log</span><span class="p">[</span><span class="n">logid</span><span class="p">];</span>
   <span class="p">}</span>
 
-  <span class="kt">void</span> <span class="n">zip</span><span class="p">()</span> <span class="p">{</span> <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;zip()&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span> <span class="p">}</span>
+  <span class="kt">void</span> <span class="n">zip</span><span class="p">()</span> <span class="n">override</span> <span class="p">{</span> <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;zip()&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span> <span class="p">}</span>
 
 <span class="k">protected</span><span class="o">:</span>
   <span class="n">map</span><span class="o">&lt;</span><span class="n">int32_t</span><span class="p">,</span> <span class="n">SharedStruct</span><span class="o">&gt;</span> <span class="n">log</span><span class="p">;</span>
@@ -292,8 +292,8 @@ h2:hover > .headerlink, h3:hover > .head
 <span class="cm">*/</span>
 <span class="k">class</span> <span class="nc">CalculatorCloneFactory</span> <span class="o">:</span> <span class="k">virtual</span> <span class="k">public</span> <span class="n">CalculatorIfFactory</span> <span class="p">{</span>
  <span class="k">public</span><span class="o">:</span>
-  <span class="k">virtual</span> <span class="o">~</span><span class="n">CalculatorCloneFactory</span><span class="p">()</span> <span class="p">{}</span>
-  <span class="k">virtual</span> <span class="n">CalculatorIf</span><span class="o">*</span> <span class="n">getHandler</span><span class="p">(</span><span class="k">const</span> <span class="o">::</span><span class="n">apache</span><span class="o">::</span><span class="n">thrift</span><span class="o">::</span><span class="n">TConnectionInfo</span><span class="o">&amp;</span> <span class="n">connInfo</span><span class="p">)</span>
+  <span class="o">~</span><span class="n">CalculatorCloneFactory</span><span class="p">()</span> <span class="n">override</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
+  <span class="n">CalculatorIf</span><span class="o">*</span> <span class="n">getHandler</span><span class="p">(</span><span class="k">const</span> <span class="o">::</span><span class="n">apache</span><span class="o">::</span><span class="n">thrift</span><span class="o">::</span><span class="n">TConnectionInfo</span><span class="o">&amp;</span> <span class="n">connInfo</span><span class="p">)</span> <span class="n">override</span>
   <span class="p">{</span>
     <span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o">&lt;</span><span class="n">TSocket</span><span class="o">&gt;</span> <span class="n">sock</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">dynamic_pointer_cast</span><span class="o">&lt;</span><span class="n">TSocket</span><span class="o">&gt;</span><span class="p">(</span><span class="n">connInfo</span><span class="p">.</span><span class="n">transport</span><span class="p">);</span>
     <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;Incoming connection</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
@@ -303,7 +303,7 @@ h2:hover > .headerlink, h3:hover > .head
     <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;</span><span class="se">\t</span><span class="s">PeerPort: &quot;</span>    <span class="o">&lt;&lt;</span> <span class="n">sock</span><span class="o">-&gt;</span><span class="n">getPeerPort</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
     <span class="k">return</span> <span class="k">new</span> <span class="n">CalculatorHandler</span><span class="p">;</span>
   <span class="p">}</span>
-  <span class="k">virtual</span> <span class="kt">void</span> <span class="n">releaseHandler</span><span class="p">(</span> <span class="o">::</span><span class="n">shared</span><span class="o">::</span><span class="n">SharedServiceIf</span><span class="o">*</span> <span class="n">handler</span><span class="p">)</span> <span class="p">{</span>
+  <span class="kt">void</span> <span class="n">releaseHandler</span><span class="p">(</span> <span class="o">::</span><span class="n">shared</span><span class="o">::</span><span class="n">SharedServiceIf</span><span class="o">*</span> <span class="n">handler</span><span class="p">)</span> <span class="n">override</span> <span class="p">{</span>
     <span class="k">delete</span> <span class="n">handler</span><span class="p">;</span>
   <span class="p">}</span>
 <span class="p">};</span>
@@ -358,7 +358,7 @@ h2:hover > .headerlink, h3:hover > .head
     <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;</span><span class="se">\t</span><span class="s">PeerPort: &quot;</span>    <span class="o">&lt;&lt;</span> <span class="n">sock</span><span class="o">-&gt;</span><span class="n">getPeerPort</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
     <span class="k">return</span> <span class="k">new</span> <span class="n">CalculatorHandler</span><span class="p">;</span>
   <span class="p">}</span>
-  <span class="k">virtual</span> <span class="kt">void</span> <span class="n">releaseHandler</span><span class="p">(</span> <span class="o">::</span><span class="n">shared</span><span class="o">::</span><span class="n">SharedServiceIf</span><span class="o">*</span> <span class="n">handler</span><span class="p">)</span> <span class="p">{</span>
+  <span class="kt">void</span> <span class="n">releaseHandler</span><span class="p">(</span> <span class="o">::</span><span class="n">shared</span><span class="o">::</span><span class="n">SharedServiceIf</span><span class="o">*</span> <span class="n">handler</span><span class="p">)</span> <span class="n">override</span> <span class="p">{</span>
     <span class="k">delete</span> <span class="n">handler</span><span class="p">;</span>
   <span class="p">}</span>
 <span class="p">};</span>