﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.0/dotnetdoc/api/Apache.Ignite.Core.Events.CacheEvent.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">



    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class CacheEvent
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class CacheEvent
   | 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.Events.CacheEvent">
  
  
  <h1 id="Apache_Ignite_Core_Events_CacheEvent" data-uid="Apache.Ignite.Core.Events.CacheEvent" class="text-break">Class CacheEvent
  </h1>
  <div class="markdown level0 summary"><p>In-memory database (cache) event.</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.Events.EventBase.html">EventBase</a></div>
    <div class="level2"><span class="xref">CacheEvent</span></div>
  </div>
  <div classs="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="Apache.Ignite.Core.Events.IEvent.html">IEvent</a></div>
    <div><span class="xref">System.IEquatable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Events.EventBase.html">EventBase</a>&gt;</div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Id">EventBase.Id</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_LocalOrder">EventBase.LocalOrder</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Node">EventBase.Node</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Message">EventBase.Message</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Type">EventBase.Type</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Name">EventBase.Name</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Timestamp">EventBase.Timestamp</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Equals_Apache_Ignite_Core_Events_EventBase_">EventBase.Equals(EventBase)</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Equals_System_Object_">EventBase.Equals(Object)</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_GetHashCode">EventBase.GetHashCode()</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_ToString">EventBase.ToString()</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_ReadNode_Apache_Ignite_Core_Binary_IBinaryRawReader_">EventBase.ReadNode(IBinaryRawReader)</a>
    </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.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Events.html">Apache.Ignite.Core.Events</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Events_CacheEvent_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public sealed class CacheEvent : EventBase, IEvent, IEquatable&lt;EventBase&gt;</code></pre>
  </div>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Events_CacheEvent_CacheName_" data-uid="Apache.Ignite.Core.Events.CacheEvent.CacheName*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_CacheName" data-uid="Apache.Ignite.Core.Events.CacheEvent.CacheName">CacheName</h4>
  <div class="markdown level1 summary"><p>Gets cache name. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public string CacheName { get; }</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.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_ClosureClassName_" data-uid="Apache.Ignite.Core.Events.CacheEvent.ClosureClassName*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_ClosureClassName" data-uid="Apache.Ignite.Core.Events.CacheEvent.ClosureClassName">ClosureClassName</h4>
  <div class="markdown level1 summary"><p>Gets closure class name (applicable only for TRANSFORM operations). </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public string ClosureClassName { get; }</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.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_EventNode_" data-uid="Apache.Ignite.Core.Events.CacheEvent.EventNode*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_EventNode" data-uid="Apache.Ignite.Core.Events.CacheEvent.EventNode">EventNode</h4>
  <div class="markdown level1 summary"><p>Gets node which initiated cache operation or null if that node is not available. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IClusterNode EventNode { get; }</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.Cluster.IClusterNode.html">IClusterNode</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_HasNewValue_" data-uid="Apache.Ignite.Core.Events.CacheEvent.HasNewValue*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_HasNewValue" data-uid="Apache.Ignite.Core.Events.CacheEvent.HasNewValue">HasNewValue</h4>
  <div class="markdown level1 summary"><p>Gets flag indicating whether cache entry has new value in case if we only have new value in serialized form 
in which case <a class="xref" href="Apache.Ignite.Core.Events.CacheEvent.html#Apache_Ignite_Core_Events_CacheEvent_NewValue">NewValue</a> will return null. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public bool HasNewValue { get; }</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_Events_CacheEvent_HasOldValue_" data-uid="Apache.Ignite.Core.Events.CacheEvent.HasOldValue*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_HasOldValue" data-uid="Apache.Ignite.Core.Events.CacheEvent.HasOldValue">HasOldValue</h4>
  <div class="markdown level1 summary"><p>Gets flag indicating whether cache entry has old value in case if we only have old value in serialized form 
in which case <a class="xref" href="Apache.Ignite.Core.Events.CacheEvent.html#Apache_Ignite_Core_Events_CacheEvent_OldValue">OldValue</a> will return null. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public bool HasOldValue { get; }</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_Events_CacheEvent_IsNear_" data-uid="Apache.Ignite.Core.Events.CacheEvent.IsNear*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_IsNear" data-uid="Apache.Ignite.Core.Events.CacheEvent.IsNear">IsNear</h4>
  <div class="markdown level1 summary"><p>Gets flag indicating whether event happened on near or partitioned cache. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public bool IsNear { get; }</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_Events_CacheEvent_Key_" data-uid="Apache.Ignite.Core.Events.CacheEvent.Key*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_Key" data-uid="Apache.Ignite.Core.Events.CacheEvent.Key">Key</h4>
  <div class="markdown level1 summary"><p>Gets cache entry associated with event. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public object Key { get; }</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.Object</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_NewValue_" data-uid="Apache.Ignite.Core.Events.CacheEvent.NewValue*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_NewValue" data-uid="Apache.Ignite.Core.Events.CacheEvent.NewValue">NewValue</h4>
  <div class="markdown level1 summary"><p>Gets new value for this event. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public object NewValue { get; }</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.Object</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_OldValue_" data-uid="Apache.Ignite.Core.Events.CacheEvent.OldValue*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_OldValue" data-uid="Apache.Ignite.Core.Events.CacheEvent.OldValue">OldValue</h4>
  <div class="markdown level1 summary"><p>Gets old value associated with this event. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public object OldValue { get; }</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.Object</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_Partition_" data-uid="Apache.Ignite.Core.Events.CacheEvent.Partition*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_Partition" data-uid="Apache.Ignite.Core.Events.CacheEvent.Partition">Partition</h4>
  <div class="markdown level1 summary"><p>Gets partition for the event which is the partition the key belongs to. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public int Partition { get; }</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_Events_CacheEvent_SubjectId_" data-uid="Apache.Ignite.Core.Events.CacheEvent.SubjectId*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_SubjectId" data-uid="Apache.Ignite.Core.Events.CacheEvent.SubjectId">SubjectId</h4>
  <div class="markdown level1 summary"><p>Gets security subject ID initiated this cache event, if available. This property is available only for <a class="xref" href="Apache.Ignite.Core.Events.EventType.html#Apache_Ignite_Core_Events_EventType_CacheObjectPut">CacheObjectPut</a>, <a class="xref" href="Apache.Ignite.Core.Events.EventType.html#Apache_Ignite_Core_Events_EventType_CacheObjectRemoved">CacheObjectRemoved</a> and <a class="xref" href="Apache.Ignite.Core.Events.EventType.html#Apache_Ignite_Core_Events_EventType_CacheObjectRead">CacheObjectRead</a> cache events. Subject ID will be set either to nodeId initiated 
cache update or read or client ID initiated cache update or read. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Guid? SubjectId { get; }</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.Nullable</span>&lt;<span class="xref">System.Guid</span>&gt;</td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_TaskName_" data-uid="Apache.Ignite.Core.Events.CacheEvent.TaskName*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_TaskName" data-uid="Apache.Ignite.Core.Events.CacheEvent.TaskName">TaskName</h4>
  <div class="markdown level1 summary"><p>Gets task name if cache event was caused by an operation initiated within task execution. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public string TaskName { get; }</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.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_CacheEvent_Xid_" data-uid="Apache.Ignite.Core.Events.CacheEvent.Xid*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_Xid" data-uid="Apache.Ignite.Core.Events.CacheEvent.Xid">Xid</h4>
  <div class="markdown level1 summary"><p>ID of surrounding cache cache transaction or null if there is no surrounding transaction. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgniteGuid? Xid { get; }</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.Nullable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Common.IgniteGuid.html">IgniteGuid</a>&gt;</td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Events_CacheEvent_ToShortString_" data-uid="Apache.Ignite.Core.Events.CacheEvent.ToShortString*"></a>
  <h4 id="Apache_Ignite_Core_Events_CacheEvent_ToShortString" data-uid="Apache.Ignite.Core.Events.CacheEvent.ToShortString">ToShortString()</h4>
  <div class="markdown level1 summary"><p>Gets shortened version of ToString result.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override string ToShortString()</code></pre>
  </div>
  <h5 class="returns">Returns</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.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_ToShortString">EventBase.ToShortString()</a></div>
  <h3 id="implements">Implements</h3>
  <div>
      <a class="xref" href="Apache.Ignite.Core.Events.IEvent.html">IEvent</a>
  </div>
  <div>
      <span class="xref">System.IEquatable&lt;T&gt;</span>
  </div>
</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>
