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

<META NAME="ROBOTS" CONTENT="NOINDEX">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class EventBase
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class EventBase
   | 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.EventBase">
  
  
  <h1 id="Apache_Ignite_Core_Events_EventBase" data-uid="Apache.Ignite.Core.Events.EventBase" class="text-break">Class EventBase
  </h1>
  <div class="markdown level0 summary"><p>Base event implementation.</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"><span class="xref">EventBase</span></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.CacheEvent.html">CacheEvent</a></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.CacheQueryExecutedEvent.html">CacheQueryExecutedEvent</a></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.CacheQueryReadEvent.html">CacheQueryReadEvent</a></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.CacheRebalancingEvent.html">CacheRebalancingEvent</a></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.CheckpointEvent.html">CheckpointEvent</a></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.DiscoveryEvent.html">DiscoveryEvent</a></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.JobEvent.html">JobEvent</a></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Events.TaskEvent.html">TaskEvent</a></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>
      <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_EventBase_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class EventBase : IEvent, IEquatable&lt;EventBase&gt;</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <a id="Apache_Ignite_Core_Events_EventBase__ctor_" data-uid="Apache.Ignite.Core.Events.EventBase.#ctor*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase__ctor_Apache_Ignite_Core_Binary_IBinaryRawReader_" data-uid="Apache.Ignite.Core.Events.EventBase.#ctor(Apache.Ignite.Core.Binary.IBinaryRawReader)">EventBase(IBinaryRawReader)</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html">EventBase</a> class.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">protected EventBase(IBinaryRawReader r)</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.Binary.IBinaryRawReader.html">IBinaryRawReader</a></td>
        <td><span class="parametername">r</span></td>
        <td><p>The reader to read data from.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Events_EventBase_Id_" data-uid="Apache.Ignite.Core.Events.EventBase.Id*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Id" data-uid="Apache.Ignite.Core.Events.EventBase.Id">Id</h4>
  <div class="markdown level1 summary"><p>Gets globally unique ID of 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 IgniteGuid Id { 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.Common.IgniteGuid.html">IgniteGuid</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_EventBase_LocalOrder_" data-uid="Apache.Ignite.Core.Events.EventBase.LocalOrder*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_LocalOrder" data-uid="Apache.Ignite.Core.Events.EventBase.LocalOrder">LocalOrder</h4>
  <div class="markdown level1 summary"><p>Gets locally unique ID that is atomically incremented for each event. Unlike global <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_Id">Id</a>
this local ID can be used for ordering events on this node.
<p>
Note that for performance considerations Ignite doesn&apos;t order events globally.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public long LocalOrder { 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.Int64</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_EventBase_Message_" data-uid="Apache.Ignite.Core.Events.EventBase.Message*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Message" data-uid="Apache.Ignite.Core.Events.EventBase.Message">Message</h4>
  <div class="markdown level1 summary"><p>Gets optional message 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 string Message { 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_EventBase_Name_" data-uid="Apache.Ignite.Core.Events.EventBase.Name*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Name" data-uid="Apache.Ignite.Core.Events.EventBase.Name">Name</h4>
  <div class="markdown level1 summary"><p>Gets name of 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 string Name { 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_EventBase_Node_" data-uid="Apache.Ignite.Core.Events.EventBase.Node*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Node" data-uid="Apache.Ignite.Core.Events.EventBase.Node">Node</h4>
  <div class="markdown level1 summary"><p>Node where event occurred and was recorded.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IClusterNode Node { 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_EventBase_Timestamp_" data-uid="Apache.Ignite.Core.Events.EventBase.Timestamp*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Timestamp" data-uid="Apache.Ignite.Core.Events.EventBase.Timestamp">Timestamp</h4>
  <div class="markdown level1 summary"><p>Gets event timestamp. Timestamp is local to the node on which this event was produced.
Note that more than one event can be generated with the same timestamp.
For ordering purposes use <a class="xref" href="Apache.Ignite.Core.Events.EventBase.html#Apache_Ignite_Core_Events_EventBase_LocalOrder">LocalOrder</a> instead.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public DateTime Timestamp { 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.DateTime</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_EventBase_Type_" data-uid="Apache.Ignite.Core.Events.EventBase.Type*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Type" data-uid="Apache.Ignite.Core.Events.EventBase.Type">Type</h4>
  <div class="markdown level1 summary"><p>Gets type of this event. All system event types are defined in <a class="xref" href="Apache.Ignite.Core.Events.EventType.html">EventType</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 Type { 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>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Events_EventBase_Equals_" data-uid="Apache.Ignite.Core.Events.EventBase.Equals*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Equals_Apache_Ignite_Core_Events_EventBase_" data-uid="Apache.Ignite.Core.Events.EventBase.Equals(Apache.Ignite.Core.Events.EventBase)">Equals(EventBase)</h4>
  <div class="markdown level1 summary"><p>Determines whether the specified object is equal to this instance.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public bool Equals(EventBase other)</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.Events.EventBase.html">EventBase</a></td>
        <td><span class="parametername">other</span></td>
        <td><p>The object to compare with this instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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.Boolean</span></td>
        <td><p><code>true</code> if the specified object is equal to this instance; otherwise, <code>false</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_EventBase_Equals_" data-uid="Apache.Ignite.Core.Events.EventBase.Equals*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_Equals_System_Object_" data-uid="Apache.Ignite.Core.Events.EventBase.Equals(System.Object)">Equals(Object)</h4>
  <div class="markdown level1 summary"><p>Determines whether the specified object is equal to this instance.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override bool Equals(object obj)</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><span class="xref">System.Object</span></td>
        <td><span class="parametername">obj</span></td>
        <td><p>The object to compare with this instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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.Boolean</span></td>
        <td><p><code>true</code> if the specified object is equal to this instance; otherwise, <code>false</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Object.Equals(System.Object)</span></div>
  <a id="Apache_Ignite_Core_Events_EventBase_GetHashCode_" data-uid="Apache.Ignite.Core.Events.EventBase.GetHashCode*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_GetHashCode" data-uid="Apache.Ignite.Core.Events.EventBase.GetHashCode">GetHashCode()</h4>
  <div class="markdown level1 summary"><p>Returns a hash code for this instance.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override int GetHashCode()</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.Int32</span></td>
        <td><p>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Object.GetHashCode()</span></div>
  <a id="Apache_Ignite_Core_Events_EventBase_ReadNode_" data-uid="Apache.Ignite.Core.Events.EventBase.ReadNode*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_ReadNode_Apache_Ignite_Core_Binary_IBinaryRawReader_" data-uid="Apache.Ignite.Core.Events.EventBase.ReadNode(Apache.Ignite.Core.Binary.IBinaryRawReader)">ReadNode(IBinaryRawReader)</h4>
  <div class="markdown level1 summary"><p>Reads a node from stream.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">protected static IClusterNode ReadNode(IBinaryRawReader reader)</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.Binary.IBinaryRawReader.html">IBinaryRawReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Reader.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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><a class="xref" href="Apache.Ignite.Core.Cluster.IClusterNode.html">IClusterNode</a></td>
        <td><p>Node or null.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_EventBase_ToShortString_" data-uid="Apache.Ignite.Core.Events.EventBase.ToShortString*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_ToShortString" data-uid="Apache.Ignite.Core.Events.EventBase.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 virtual 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>
  <a id="Apache_Ignite_Core_Events_EventBase_ToString_" data-uid="Apache.Ignite.Core.Events.EventBase.ToString*"></a>
  <h4 id="Apache_Ignite_Core_Events_EventBase_ToString" data-uid="Apache.Ignite.Core.Events.EventBase.ToString">ToString()</h4>
  <div class="markdown level1 summary"><p>Returns a <span class="xref">System.String</span> that represents this instance.</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 ToString()</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><p>A <span class="xref">System.String</span> that represents this instance.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Object.ToString()</span></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 - 2018 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>
