<!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.2.0/dotnetdoc/functions_j.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.9.1"/>
<title>Apache Ignite.NET: Class Members</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 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.9.1 -->
</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('functions_j.html','');});
</script>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>

<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
<li>JavaClassName
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_common_1_1_java_exception.html#aee568f76e489d59d187e2e8eb2e2e533">Apache.Ignite.Core.Common.JavaException</a>
</li>
<li>JavaException()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_common_1_1_java_exception.html#a6e50b283eab7398acee3f2fbd5432b03">Apache.Ignite.Core.Common.JavaException</a>
</li>
<li>JavaMessage
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_common_1_1_java_exception.html#aead22f775f0e394a42109a291b4af01f">Apache.Ignite.Core.Common.JavaException</a>
</li>
<li>JavaObject()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_interop_1_1_java_object.html#a38c4641f26437e93903697764947d9d2">Apache.Ignite.Core.Interop.JavaObject</a>
</li>
<li>Job
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute_job_result.html#a477b0c67b0274a39e81da947cc75077c">Apache.Ignite.Core.Compute.IComputeJobResult&lt; out out TRes &gt;</a>
</li>
<li>JobCancelled
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#a2c9b116d8c7d920d3829f8fccb3f3028">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobExecutionAll
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#a8b4ac4ab4792b4185f3bb97424110b0c">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobFailed
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#ab23152a38efc47b25e6145f0c184e178">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobFailedOver
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#acdb9ad61e0a769c6096e44738a5b23b7">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobFinished
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#ac95b17ac7cc82139bb1b2b6fe8408532">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobId
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_job_event.html#a2cdc33cdbb4478c89feab51b1dc5eb3d">Apache.Ignite.Core.Events.JobEvent</a>
</li>
<li>JobMapped
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#ada4037f5217ad666a3c2f32756757c5c">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobQueued
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#ac86ce2a99209a5ccd7b7f507b341c1b1">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobRejected
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#a3029856fba7bb905bc26b2d8e37f76a3">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobResulted
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#a514bcb191bc5b210c3700b2639745f16">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobStarted
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#a0843e9e1be1eb0c1c995935a2272be7e">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JobTimedout
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_type.html#a5e402634beae34da2f42bc0382871e24">Apache.Ignite.Core.Events.EventType</a>
</li>
<li>JoinTimeout
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_discovery_1_1_tcp_1_1_tcp_discovery_spi.html#adcb5ae920ba4a40d9676885a904e0ac5">Apache.Ignite.Core.Discovery.Tcp.TcpDiscoverySpi</a>
</li>
<li>JvmClasspath
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_ignite_configuration.html#a2ac1b8ceddcb7419e210700ed095fd54">Apache.Ignite.Core.IgniteConfiguration</a>
</li>
<li>JvmDllPath
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_ignite_configuration.html#a7cf955377991e4e4a4d27b5a0d4db560">Apache.Ignite.Core.IgniteConfiguration</a>
</li>
<li>JvmInitialMemoryMb
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_ignite_configuration.html#ade3390ed22c66a67ec8f52b22eb0a19d">Apache.Ignite.Core.IgniteConfiguration</a>
</li>
<li>JvmMaxMemoryMb
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_ignite_configuration.html#a7bbb8397300aa0913c6d601ee7f5a47c">Apache.Ignite.Core.IgniteConfiguration</a>
</li>
<li>JvmOptions
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_ignite_configuration.html#a5a4125ed097f12200f5cf948d9157df7">Apache.Ignite.Core.IgniteConfiguration</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Fri Sep 15 2017 11:37:30 for Apache Ignite.NET by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
  </ul>
</div>
</body>
</html>
