<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.1.0/dotnetdoc/interface_apache_1_1_ignite_1_1_core_1_1_lifecycle_1_1_i_lifecycle_handler.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Apache Ignite.NET: Apache.Ignite.Core.Lifecycle.ILifecycleHandler Interface Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<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>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Apache Ignite.NET
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('interface_apache_1_1_ignite_1_1_core_1_1_lifecycle_1_1_i_lifecycle_handler.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="interface_apache_1_1_ignite_1_1_core_1_1_lifecycle_1_1_i_lifecycle_handler-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Ignite.Core.Lifecycle.ILifecycleHandler Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Handles lifecycle events defined in <a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_lifecycle.html#a97125ee1dd4cdb99a54f86706d41dd89" title="Ignite lifecycle event types. These events are used to notify lifecycle beans about changes in Ignite...">LifecycleEventType</a>. Use this interface whenever you need to plug some custom logic before or after Ignite startup and stopping routines.  
 <a href="interface_apache_1_1_ignite_1_1_core_1_1_lifecycle_1_1_i_lifecycle_handler.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a12808c4bc05fbe6cebb9cf02e80841a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_lifecycle_1_1_i_lifecycle_handler.html#a12808c4bc05fbe6cebb9cf02e80841a5">OnLifecycleEvent</a> (<a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_lifecycle.html#a97125ee1dd4cdb99a54f86706d41dd89">LifecycleEventType</a> evt)</td></tr>
<tr class="memdesc:a12808c4bc05fbe6cebb9cf02e80841a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called when lifecycle event occurs.  <a href="#a12808c4bc05fbe6cebb9cf02e80841a5">More...</a><br /></td></tr>
<tr class="separator:a12808c4bc05fbe6cebb9cf02e80841a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>There are four events you can react to: </p><ul>
<li>
BeforeNodeStart Invoked before Ignite startup routine is initiated. Note that Ignite is not available during this event, therefore if you injected an Ignite instance via InstanceResourceAttribute attribute, you cannot use it yet.  </li>
<li>
AfterNodeStart Invoked right after Ignite has started. At this point, if you injected an Ignite instance via InstanceResourceAttribute attribute, you can start using it.  </li>
<li>
BeforeNodeStop Invoked right before Ignite stop routine is initiated. Ignite is still available at this stage, so if you injected an Ignite instance via InstanceResourceAttribute attribute, you can use it.   </li>
<li>
AfterNodeStop Invoked right after Ignite has stopped. Note that Ignite is not available during this event.  </li>
</ul>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a12808c4bc05fbe6cebb9cf02e80841a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Apache.Ignite.Core.Lifecycle.ILifecycleHandler.OnLifecycleEvent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_lifecycle.html#a97125ee1dd4cdb99a54f86706d41dd89">LifecycleEventType</a>&#160;</td>
          <td class="paramname"><em>evt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">evt</td><td>Lifecycle event.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_apache.html">Apache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite.html">Ignite</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core.html">Core</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_lifecycle.html">Lifecycle</a></li><li class="navelem"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_lifecycle_1_1_i_lifecycle_handler.html">ILifecycleHandler</a></li>
    <li class="footer">Generated on Thu Jul 20 2017 19:19:56 for Apache Ignite.NET by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
