blob: 1d47e13bc3edcefeb3159715ff66d69e418dfcfb [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.1/dotnetdoc/api/Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery-2.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Class ContinuousQuery&lt;TK, TV&gt;
| Apache Ignite.NET </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class ContinuousQuery&lt;TK, TV&gt;
| Apache Ignite.NET ">
<meta name="generator" content="docfx 2.24.0.0">
<link rel="shortcut icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/docfx.vendor.css">
<link rel="stylesheet" href="../styles/docfx.css">
<link rel="stylesheet" href="../styles/main.css">
<meta property="docfx:navrel" content="../toc.html">
<meta property="docfx:tocrel" content="toc.html">
<meta property="docfx:rel" content="../">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body data-spy="scroll" data-target="#affix">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items"></div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2">
<h1 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2" class="text-break">Class ContinuousQuery&lt;TK, TV&gt;
</h1>
<div class="markdown level0 summary"><p>API for configuring continuous cache queries.
<p>
Continuous queries allow to register a remote and a listener for cache update events.
If an update event passes the filter, it will be sent to the node that executed the
query and listener will be notified on that node.
<p>
Continuous query can either be executed on the whole topology or only on local node.
<p>
In case query is distributed and a new node joins, it will get the filter for the query
during discovery process before it actually joins topology, so no updates will be missed.
<p>
To execute the query use method
<a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_QueryContinuous_Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery__0__1__">QueryContinuous(ContinuousQuery&lt;TK, TV&gt;)</a>.</p>
</div>
<div class="markdown level0 conceptual"></div>
<div class="inheritance">
<h5>Inheritance</h5>
<div class="level0"><span class="xref">System.Object</span></div>
<div class="level1"><a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery.html">ContinuousQuery</a></div>
<div class="level2"><span class="xref">ContinuousQuery&lt;TK, TV&gt;</span></div>
</div>
<div class="inheritedMembers">
<h5>Inherited Members</h5>
<div>
<a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery.html#Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_DefaultBufferSize">ContinuousQuery.DefaultBufferSize</a>
</div>
<div>
<a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery.html#Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_DefaultTimeInterval">ContinuousQuery.DefaultTimeInterval</a>
</div>
<div>
<a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery.html#Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_DefaultAutoUnsubscribe">ContinuousQuery.DefaultAutoUnsubscribe</a>
</div>
<div>
<span class="xref">System.Object.ToString()</span>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object)</span>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.GetHashCode()</span>
</div>
<div>
<span class="xref">System.Object.GetType()</span>
</div>
<div>
<span class="xref">System.Object.MemberwiseClone()</span>
</div>
</div>
<h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.html">Apache.Ignite.Core.Cache.Query.Continuous</a></h6>
<h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
<h5 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class ContinuousQuery&lt;TK, TV&gt; : ContinuousQuery</code></pre>
</div>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">TK</span></td>
<td></td>
</tr>
<tr>
<td><span class="parametername">TV</span></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="constructors">Constructors
</h3>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_Apache_Ignite_Core_Cache_Event_ICacheEntryEventListener__0__1__" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor(Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener{`0,`1})">ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt;)</h4>
<div class="markdown level1 summary"><p>Constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt; lsnr)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener-2.html">ICacheEntryEventListener</a>&lt;TK, TV&gt;</td>
<td><span class="parametername">lsnr</span></td>
<td><p>Listener.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_Apache_Ignite_Core_Cache_Event_ICacheEntryEventListener__0__1__Apache_Ignite_Core_Cache_Event_ICacheEntryEventFilter__0__1__" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor(Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener{`0,`1},Apache.Ignite.Core.Cache.Event.ICacheEntryEventFilter{`0,`1})">ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt;, ICacheEntryEventFilter&lt;TK, TV&gt;)</h4>
<div class="markdown level1 summary"><p>Constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt; lsnr, ICacheEntryEventFilter&lt;TK, TV&gt; filter)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener-2.html">ICacheEntryEventListener</a>&lt;TK, TV&gt;</td>
<td><span class="parametername">lsnr</span></td>
<td><p>Listener.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventFilter-2.html">ICacheEntryEventFilter</a>&lt;TK, TV&gt;</td>
<td><span class="parametername">filter</span></td>
<td><p>Filter.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_Apache_Ignite_Core_Cache_Event_ICacheEntryEventListener__0__1__Apache_Ignite_Core_Cache_Event_ICacheEntryEventFilter__0__1__System_Boolean_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor(Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener{`0,`1},Apache.Ignite.Core.Cache.Event.ICacheEntryEventFilter{`0,`1},System.Boolean)">ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt;, ICacheEntryEventFilter&lt;TK, TV&gt;, Boolean)</h4>
<div class="markdown level1 summary"><p>Constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt; lsnr, ICacheEntryEventFilter&lt;TK, TV&gt; filter, bool loc)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener-2.html">ICacheEntryEventListener</a>&lt;TK, TV&gt;</td>
<td><span class="parametername">lsnr</span></td>
<td><p>Listener.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventFilter-2.html">ICacheEntryEventFilter</a>&lt;TK, TV&gt;</td>
<td><span class="parametername">filter</span></td>
<td><p>Filter.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td><span class="parametername">loc</span></td>
<td><p>Whether query should be executed locally.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2__ctor_Apache_Ignite_Core_Cache_Event_ICacheEntryEventListener__0__1__System_Boolean_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.#ctor(Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener{`0,`1},System.Boolean)">ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt;, Boolean)</h4>
<div class="markdown level1 summary"><p>Constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ContinuousQuery(ICacheEntryEventListener&lt;TK, TV&gt; lsnr, bool loc)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener-2.html">ICacheEntryEventListener</a>&lt;TK, TV&gt;</td>
<td><span class="parametername">lsnr</span></td>
<td><p>Listener.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td><span class="parametername">loc</span></td>
<td><p>Whether query should be executed locally.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="properties">Properties
</h3>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_AutoUnsubscribe_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.AutoUnsubscribe*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_AutoUnsubscribe" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.AutoUnsubscribe">AutoUnsubscribe</h4>
<div class="markdown level1 summary"><p>Automatic unsubscribe flag. This flag indicates that query filters on remote nodes
should be automatically unregistered if master node (node that initiated the query)
leaves topology. If this flag is <code>false</code>, filters will be unregistered only
when the query is cancelled from master node, and won&apos;t ever be unregistered if
master node leaves grid.
<p>
Defaults to <code>true</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool AutoUnsubscribe { get; set; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_BufferSize_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.BufferSize*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_BufferSize" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.BufferSize">BufferSize</h4>
<div class="markdown level1 summary"><p>Buffer size. When a cache update happens, entry is first put into a buffer.
Entries from buffer will be sent to the master node only if the buffer is
full or time provided via <a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery-2.html#Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_TimeInterval">TimeInterval</a> is exceeded.
<p>
Defaults to <a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery.html#Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_DefaultBufferSize">DefaultBufferSize</a></p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int BufferSize { get; set; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_Filter_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.Filter*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_Filter" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.Filter">Filter</h4>
<div class="markdown level1 summary"><p>Optional cache entry filter. Invoked on a node where cache event occurred. If filter
returns <code>false</code>, then cache entry event will not be sent to a node where
continuous query has been started.
<p>
Must be either binary or serializable in case query is not local.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ICacheEntryEventFilter&lt;TK, TV&gt; Filter { get; set; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventFilter-2.html">ICacheEntryEventFilter</a>&lt;TK, TV&gt;</td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_Listener_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.Listener*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_Listener" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.Listener">Listener</h4>
<div class="markdown level1 summary"><p>Cache entry event listener. Invoked on the node where continuous query execution
has been started.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ICacheEntryEventListener&lt;TK, TV&gt; Listener { get; set; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cache.Event.ICacheEntryEventListener-2.html">ICacheEntryEventListener</a>&lt;TK, TV&gt;</td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_Local_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.Local*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_Local" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.Local">Local</h4>
<div class="markdown level1 summary"><p>Local flag. When set query will be executed only on local node, so only local
entries will be returned as query result.
<p>
Defaults to <code>false</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool Local { get; set; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_TimeInterval_" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.TimeInterval*"></a>
<h4 id="Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_TimeInterval" data-uid="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery`2.TimeInterval">TimeInterval</h4>
<div class="markdown level1 summary"><p>Time interval. When a cache update happens, entry is first put into a buffer.
Entries from buffer will be sent to the master node only if the buffer is full
(its size can be provided via <a class="xref" href="Apache.Ignite.Core.Cache.Query.Continuous.ContinuousQuery-2.html#Apache_Ignite_Core_Cache_Query_Continuous_ContinuousQuery_2_BufferSize">BufferSize</a> property) or time provided
via this method is exceeded.
<p>
Defaults to <code>0</code> which means that time check is disabled and entries will be
sent only when buffer is full.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TimeSpan TimeInterval { get; set; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.TimeSpan</span></td>
<td></td>
</tr>
</tbody>
</table>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
© 2015 - 2019 The Apache Software Foundation
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../styles/docfx.js"></script>
<script type="text/javascript" src="../styles/main.js"></script>
</body>
</html>