﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Interface IEvents
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Interface IEvents
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.58.4.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="../">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <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">Search Results for <span></span></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></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.IEvents">
  
  
  <h1 id="Apache_Ignite_Core_Events_IEvents" data-uid="Apache.Ignite.Core.Events.IEvents" class="text-break">Interface IEvents
  </h1>
  <div class="markdown level0 summary"><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>
</div>
  <div class="markdown level0 conceptual"></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_IEvents_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public interface IEvents</code></pre>
  </div>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Events_IEvents_ClusterGroup_" data-uid="Apache.Ignite.Core.Events.IEvents.ClusterGroup*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_ClusterGroup" data-uid="Apache.Ignite.Core.Events.IEvents.ClusterGroup">ClusterGroup</h4>
  <div class="markdown level1 summary"><p>Gets the cluster group to which this instance belongs.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IClusterGroup ClusterGroup { 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.IClusterGroup.html">IClusterGroup</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Events_IEvents_DisableLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.DisableLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_DisableLocal_IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.DisableLocal(IEnumerable{System.Int32})">DisableLocal(IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Disables provided events. Allows to stop recording events that were enabled before. Note that specified 
events will be disabled regardless of whether local node is in this cluster group or not.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void DisableLocal(IEnumerable&lt;int&gt; types)</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">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Events to disable.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_DisableLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.DisableLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_DisableLocal_System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.DisableLocal(System.Int32[])">DisableLocal(Int32[])</h4>
  <div class="markdown level1 summary"><p>Disables provided events. Allows to stop recording events that were enabled before. Note that specified 
events will be disabled regardless of whether local node is in this cluster group or not.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void DisableLocal(params int[] types)</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.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Events to disable.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_EnableLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.EnableLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_EnableLocal_IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.EnableLocal(IEnumerable{System.Int32})">EnableLocal(IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Enables provided events. Allows to start recording events that were disabled before. 
Note that provided events will be enabled regardless of whether local node is in this cluster group or not.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void EnableLocal(IEnumerable&lt;int&gt; types)</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">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Events to enable.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_EnableLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.EnableLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_EnableLocal_System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.EnableLocal(System.Int32[])">EnableLocal(Int32[])</h4>
  <div class="markdown level1 summary"><p>Enables provided events. Allows to start recording events that were disabled before. 
Note that provided events will be enabled regardless of whether local node is in this cluster group or not.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void EnableLocal(params int[] types)</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.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Events to enable.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_GetEnabledEvents_" data-uid="Apache.Ignite.Core.Events.IEvents.GetEnabledEvents*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_GetEnabledEvents" data-uid="Apache.Ignite.Core.Events.IEvents.GetEnabledEvents">GetEnabledEvents()</h4>
  <div class="markdown level1 summary"><p>Gets types of enabled events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;int&gt; GetEnabledEvents()</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">ICollection</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><p>Types of enabled events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_IsEnabled_" data-uid="Apache.Ignite.Core.Events.IEvents.IsEnabled*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_IsEnabled_System_Int32_" data-uid="Apache.Ignite.Core.Events.IEvents.IsEnabled(System.Int32)">IsEnabled(Int32)</h4>
  <div class="markdown level1 summary"><p>Determines whether the specified event is enabled.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool IsEnabled(int type)</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.Int32</span></td>
        <td><span class="parametername">type</span></td>
        <td><p>Event type.</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>Value indicating whether the specified event is enabled.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_LocalListen_" data-uid="Apache.Ignite.Core.Events.IEvents.LocalListen*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_LocalListen__1_Apache_Ignite_Core_Events_IEventListener___0__IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.LocalListen``1(Apache.Ignite.Core.Events.IEventListener{``0},IEnumerable{System.Int32})">LocalListen&lt;T&gt;(IEventListener&lt;T&gt;, IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Adds an event listener for local events. Note that listener will be added regardless of whether 
local node is in this cluster group or not.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LocalListen&lt;T&gt;(IEventListener&lt;T&gt; listener, IEnumerable&lt;int&gt; types)
    where T : IEvent</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.IEventListener-1.html">IEventListener</a>&lt;T&gt;</td>
        <td><span class="parametername">listener</span></td>
        <td><p>Predicate that is called on each received event. If predicate returns false,
it will be unregistered and will stop receiving events.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types for which this listener will be notified, should not be empty.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_LocalListen_" data-uid="Apache.Ignite.Core.Events.IEvents.LocalListen*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_LocalListen__1_Apache_Ignite_Core_Events_IEventListener___0__System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.LocalListen``1(Apache.Ignite.Core.Events.IEventListener{``0},System.Int32[])">LocalListen&lt;T&gt;(IEventListener&lt;T&gt;, Int32[])</h4>
  <div class="markdown level1 summary"><p>Adds an event listener for local events. Note that listener will be added regardless of whether 
local node is in this cluster group or not.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void LocalListen&lt;T&gt;(IEventListener&lt;T&gt; listener, params int[] types)
    where T : IEvent</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.IEventListener-1.html">IEventListener</a>&lt;T&gt;</td>
        <td><span class="parametername">listener</span></td>
        <td><p>Predicate that is called on each received event. If predicate returns false,
it will be unregistered and will stop receiving events.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types for which this listener will be notified, should not be empty.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_LocalQuery_" data-uid="Apache.Ignite.Core.Events.IEvents.LocalQuery*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_LocalQuery_IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.LocalQuery(IEnumerable{System.Int32})">LocalQuery(IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Queries local node for events using of specified types.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;IEvent&gt; LocalQuery(IEnumerable&lt;int&gt; types)</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">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types to be queried. Optional.</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">ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Events.IEvent.html">IEvent</a>&gt;</td>
        <td><p>Collection of Ignite events found on local node.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_LocalQuery_" data-uid="Apache.Ignite.Core.Events.IEvents.LocalQuery*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_LocalQuery_System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.LocalQuery(System.Int32[])">LocalQuery(Int32[])</h4>
  <div class="markdown level1 summary"><p>Queries local node for events using of specified types.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;IEvent&gt; LocalQuery(params int[] types)</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.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types to be queried. Optional.</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">ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Events.IEvent.html">IEvent</a>&gt;</td>
        <td><p>Collection of Ignite events found on local node.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_RecordLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.RecordLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_RecordLocal_Apache_Ignite_Core_Events_IEvent_" data-uid="Apache.Ignite.Core.Events.IEvents.RecordLocal(Apache.Ignite.Core.Events.IEvent)">RecordLocal(IEvent)</h4>
  <div class="markdown level1 summary"><p>Records customer user generated event. All registered local listeners will be notified.
<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.
Attempt to record internal event with this method will cause <see cref="!:ArgumentException"></see> to be thrown.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void RecordLocal(IEvent evt)</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.IEvent.html">IEvent</a></td>
        <td><span class="parametername">evt</span></td>
        <td><p>Locally generated event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_RemoteQuery_" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQuery*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_RemoteQuery__1_Apache_Ignite_Core_Events_IEventFilter___0__System_Nullable_TimeSpan__IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQuery``1(Apache.Ignite.Core.Events.IEventFilter{``0},System.Nullable{TimeSpan},IEnumerable{System.Int32})">RemoteQuery&lt;T&gt;(IEventFilter&lt;T&gt;, Nullable&lt;TimeSpan&gt;, IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Queries nodes in this cluster group for events using passed in predicate filter for event selection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;T&gt; RemoteQuery&lt;T&gt;(IEventFilter&lt;T&gt; filter, TimeSpan? timeout = null, IEnumerable&lt;int&gt; types = null)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Predicate filter used to query events on remote nodes.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Nullable</span>&lt;<span class="xref">TimeSpan</span>&gt;</td>
        <td><span class="parametername">timeout</span></td>
        <td><p>Maximum time to wait for result, null or 0 to wait forever.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types to be queried.</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">ICollection</span>&lt;T&gt;</td>
        <td><p>Collection of Ignite events returned from specified nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_RemoteQuery_" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQuery*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_RemoteQuery__1_Apache_Ignite_Core_Events_IEventFilter___0__System_Nullable_TimeSpan__System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQuery``1(Apache.Ignite.Core.Events.IEventFilter{``0},System.Nullable{TimeSpan},System.Int32[])">RemoteQuery&lt;T&gt;(IEventFilter&lt;T&gt;, Nullable&lt;TimeSpan&gt;, Int32[])</h4>
  <div class="markdown level1 summary"><p>Queries nodes in this cluster group for events using passed in predicate filter for event selection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;T&gt; RemoteQuery&lt;T&gt;(IEventFilter&lt;T&gt; filter, TimeSpan? timeout = null, params int[] types)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Predicate filter used to query events on remote nodes.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Nullable</span>&lt;<span class="xref">TimeSpan</span>&gt;</td>
        <td><span class="parametername">timeout</span></td>
        <td><p>Maximum time to wait for result, null or 0 to wait forever.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types to be queried.</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">ICollection</span>&lt;T&gt;</td>
        <td><p>Collection of Ignite events returned from specified nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_RemoteQueryAsync_" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQueryAsync*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_RemoteQueryAsync__1_Apache_Ignite_Core_Events_IEventFilter___0__System_Nullable_TimeSpan__IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQueryAsync``1(Apache.Ignite.Core.Events.IEventFilter{``0},System.Nullable{TimeSpan},IEnumerable{System.Int32})">RemoteQueryAsync&lt;T&gt;(IEventFilter&lt;T&gt;, Nullable&lt;TimeSpan&gt;, IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Queries nodes in this cluster group for events using passed in predicate filter for event selection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;ICollection&lt;T&gt;&gt; RemoteQueryAsync&lt;T&gt;(IEventFilter&lt;T&gt; filter, TimeSpan? timeout = null, IEnumerable&lt;int&gt; types = null)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Predicate filter used to query events on remote nodes.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Nullable</span>&lt;<span class="xref">TimeSpan</span>&gt;</td>
        <td><span class="parametername">timeout</span></td>
        <td><p>Maximum time to wait for result, null or 0 to wait forever.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types to be queried.</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">Task</span>&lt;<span class="xref">ICollection</span>&lt;T&gt;&gt;</td>
        <td><p>Collection of Ignite events returned from specified nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_RemoteQueryAsync_" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQueryAsync*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_RemoteQueryAsync__1_Apache_Ignite_Core_Events_IEventFilter___0__System_Nullable_TimeSpan__System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.RemoteQueryAsync``1(Apache.Ignite.Core.Events.IEventFilter{``0},System.Nullable{TimeSpan},System.Int32[])">RemoteQueryAsync&lt;T&gt;(IEventFilter&lt;T&gt;, Nullable&lt;TimeSpan&gt;, Int32[])</h4>
  <div class="markdown level1 summary"><p>Queries nodes in this cluster group for events using passed in predicate filter for event selection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;ICollection&lt;T&gt;&gt; RemoteQueryAsync&lt;T&gt;(IEventFilter&lt;T&gt; filter, TimeSpan? timeout = null, params int[] types)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Predicate filter used to query events on remote nodes.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Nullable</span>&lt;<span class="xref">TimeSpan</span>&gt;</td>
        <td><span class="parametername">timeout</span></td>
        <td><p>Maximum time to wait for result, null or 0 to wait forever.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Event types to be queried.</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">Task</span>&lt;<span class="xref">ICollection</span>&lt;T&gt;&gt;</td>
        <td><p>Collection of Ignite events returned from specified nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_StopLocalListen_" data-uid="Apache.Ignite.Core.Events.IEvents.StopLocalListen*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_StopLocalListen__1_Apache_Ignite_Core_Events_IEventListener___0__IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.StopLocalListen``1(Apache.Ignite.Core.Events.IEventListener{``0},IEnumerable{System.Int32})">StopLocalListen&lt;T&gt;(IEventListener&lt;T&gt;, IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Removes local event listener.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool StopLocalListen&lt;T&gt;(IEventListener&lt;T&gt; listener, IEnumerable&lt;int&gt; types)
    where T : IEvent</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.IEventListener-1.html">IEventListener</a>&lt;T&gt;</td>
        <td><span class="parametername">listener</span></td>
        <td><p>Local event listener to remove.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of events for which to remove listener. If not specified, then listener
will be removed for all types it was registered for.</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>True if listener was removed, false otherwise.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_StopLocalListen_" data-uid="Apache.Ignite.Core.Events.IEvents.StopLocalListen*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_StopLocalListen__1_Apache_Ignite_Core_Events_IEventListener___0__System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.StopLocalListen``1(Apache.Ignite.Core.Events.IEventListener{``0},System.Int32[])">StopLocalListen&lt;T&gt;(IEventListener&lt;T&gt;, Int32[])</h4>
  <div class="markdown level1 summary"><p>Removes local event listener.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool StopLocalListen&lt;T&gt;(IEventListener&lt;T&gt; listener, params int[] types)
    where T : IEvent</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.IEventListener-1.html">IEventListener</a>&lt;T&gt;</td>
        <td><span class="parametername">listener</span></td>
        <td><p>Local event listener to remove.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of events for which to remove listener. If not specified, then listener
will be removed for all types it was registered for.</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>True if listener was removed, false otherwise.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocal_IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal(IEnumerable{System.Int32})">WaitForLocal(IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IEvent WaitForLocal(IEnumerable&lt;int&gt; types)</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">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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.Events.IEvent.html">IEvent</a></td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocal_System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal(System.Int32[])">WaitForLocal(Int32[])</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IEvent WaitForLocal(params int[] types)</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.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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.Events.IEvent.html">IEvent</a></td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocal__1_Apache_Ignite_Core_Events_IEventFilter___0__IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal``1(Apache.Ignite.Core.Events.IEventFilter{``0},IEnumerable{System.Int32})">WaitForLocal&lt;T&gt;(IEventFilter&lt;T&gt;, IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">T WaitForLocal&lt;T&gt;(IEventFilter&lt;T&gt; filter, IEnumerable&lt;int&gt; types)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Optional filtering predicate. Event wait will end as soon as it returns false.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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">T</span></td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocal_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocal__1_Apache_Ignite_Core_Events_IEventFilter___0__System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocal``1(Apache.Ignite.Core.Events.IEventFilter{``0},System.Int32[])">WaitForLocal&lt;T&gt;(IEventFilter&lt;T&gt;, Int32[])</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">T WaitForLocal&lt;T&gt;(IEventFilter&lt;T&gt; filter, params int[] types)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Optional filtering predicate. Event wait will end as soon as it returns false.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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">T</span></td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync_IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync(IEnumerable{System.Int32})">WaitForLocalAsync(IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;IEvent&gt; WaitForLocalAsync(IEnumerable&lt;int&gt; types)</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">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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">Task</span>&lt;<a class="xref" href="Apache.Ignite.Core.Events.IEvent.html">IEvent</a>&gt;</td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync_System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync(System.Int32[])">WaitForLocalAsync(Int32[])</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;IEvent&gt; WaitForLocalAsync(params int[] types)</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.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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">Task</span>&lt;<a class="xref" href="Apache.Ignite.Core.Events.IEvent.html">IEvent</a>&gt;</td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync__1_Apache_Ignite_Core_Events_IEventFilter___0__IEnumerable_System_Int32__" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync``1(Apache.Ignite.Core.Events.IEventFilter{``0},IEnumerable{System.Int32})">WaitForLocalAsync&lt;T&gt;(IEventFilter&lt;T&gt;, IEnumerable&lt;Int32&gt;)</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;T&gt; WaitForLocalAsync&lt;T&gt;(IEventFilter&lt;T&gt; filter, IEnumerable&lt;int&gt; types)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Optional filtering predicate. Event wait will end as soon as it returns false.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">IEnumerable</span>&lt;<span class="xref">System.Int32</span>&gt;</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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">Task</span>&lt;T&gt;</td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync_" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync*"></a>
  <h4 id="Apache_Ignite_Core_Events_IEvents_WaitForLocalAsync__1_Apache_Ignite_Core_Events_IEventFilter___0__System_Int32___" data-uid="Apache.Ignite.Core.Events.IEvents.WaitForLocalAsync``1(Apache.Ignite.Core.Events.IEventFilter{``0},System.Int32[])">WaitForLocalAsync&lt;T&gt;(IEventFilter&lt;T&gt;, Int32[])</h4>
  <div class="markdown level1 summary"><p>Waits for the specified events.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Task&lt;T&gt; WaitForLocalAsync&lt;T&gt;(IEventFilter&lt;T&gt; filter, params int[] types)
    where T : IEvent</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.IEventFilter-1.html">IEventFilter</a>&lt;T&gt;</td>
        <td><span class="parametername">filter</span></td>
        <td><p>Optional filtering predicate. Event wait will end as soon as it returns false.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span>[]</td>
        <td><span class="parametername">types</span></td>
        <td><p>Types of the events to wait for. 
If not provided, all events will be passed to the filter.</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">Task</span>&lt;T&gt;</td>
        <td><p>Ignite event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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">T</span></td>
        <td><p>Type of events.</p>
</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">
                <h5>In This Article</h5>
                <div></div>
              </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>
