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

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Apache.Ignite.Core.Events
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Apache.Ignite.Core.Events
   | 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">
  
  <h1 id="Apache_Ignite_Core_Events" data-uid="Apache.Ignite.Core.Events" class="text-break">Namespace Apache.Ignite.Core.Events
  </h1>
  <div class="markdown level0 summary"></div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.CacheEvent.html">CacheEvent</a></h4>
      <section><p>In-memory database (cache) event.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.CacheQueryExecutedEvent.html">CacheQueryExecutedEvent</a></h4>
      <section><p>Cache query execution event.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.CacheQueryReadEvent.html">CacheQueryReadEvent</a></h4>
      <section><p>Cache query read event.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.CacheRebalancingEvent.html">CacheRebalancingEvent</a></h4>
      <section><p>In-memory database (cache) rebalancing event. Rebalance event happens every time there is a change</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.CheckpointEvent.html">CheckpointEvent</a></h4>
      <section><p>Grid checkpoint event.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.DiscoveryEvent.html">DiscoveryEvent</a></h4>
      <section><p>Grid discovery event.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.EventBase.html">EventBase</a></h4>
      <section><p>Base event implementation.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.EventType.html">EventType</a></h4>
      <section><p>Contains event type constants. The decision to use class and not enumeration is dictated 
by allowing users to create their own events and/or event types which would be impossible with enumerations.
<p>
Note that this interface defines not only individual type constants, 
but arrays of types as well to be conveniently used with <a class="xref" href="Apache.Ignite.Core.Events.IEvents.html">IEvents</a> methods.
<p>
NOTE: all types in range <strong>from 1 to 1000 are reserved</strong> for internal Ignite events 
and should not be used by user-defined events.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.JobEvent.html">JobEvent</a></h4>
      <section><p>Ignite job event.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.LocalEventListener.html">LocalEventListener</a></h4>
      <section><p>Abstract local event listener holder for <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html#Apache_Ignite_Core_IgniteConfiguration_LocalEventListeners">LocalEventListeners</a>.
Use <a class="xref" href="Apache.Ignite.Core.Events.LocalEventListener-1.html">LocalEventListener&lt;T&gt;</a> derived class.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.LocalEventListener-1.html">LocalEventListener&lt;T&gt;</a></h4>
      <section><p>Generic local event listener holder, see <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html#Apache_Ignite_Core_IgniteConfiguration_LocalEventListeners">LocalEventListeners</a>.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.MemoryEventStorageSpi.html">MemoryEventStorageSpi</a></h4>
      <section><p>In-memory event storage.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.NoopEventStorageSpi.html">NoopEventStorageSpi</a></h4>
      <section><p>No-op event storage interface, does not store anything.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.TaskEvent.html">TaskEvent</a></h4>
      <section><p>Ignite task event.</p>
</section>
    <h3 id="interfaces">Interfaces
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.IEvent.html">IEvent</a></h4>
      <section><p>Represents a Ignite event.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.IEventFilter-1.html">IEventFilter&lt;T&gt;</a></h4>
      <section><p>Represents an event filter.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.IEventListener-1.html">IEventListener&lt;T&gt;</a></h4>
      <section><p>Represents an event listener.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.IEvents.html">IEvents</a></h4>
      <section><p>Provides functionality for event notifications on nodes defined by <a class="xref" href="Apache.Ignite.Core.Events.IEvents.html#Apache_Ignite_Core_Events_IEvents_ClusterGroup">ClusterGroup</a>.
<p>
All members are thread-safe and may be used concurrently from multiple threads.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Events.IEventStorageSpi.html">IEventStorageSpi</a></h4>
      <section><p>Manages local event storage.
<p>
Only predefined implementations are supported: 
<a class="xref" href="Apache.Ignite.Core.Events.NoopEventStorageSpi.html">NoopEventStorageSpi</a>, <a class="xref" href="Apache.Ignite.Core.Events.MemoryEventStorageSpi.html">MemoryEventStorageSpi</a>.</p>
</section>
</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>
