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


    <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>
