<!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.0.0/dotnetdoc/functions_prop_o.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 - Properties</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_prop_o.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;

<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
<li>OffHeapAllocatedSize
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a56bbaba01261a7504a51bd0dd4d5b295">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapBackupEntriesCount
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a64303c3c720eb7c655e2284a0d48e48c">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapEntriesCount
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a32c02a925e928c025c59e9128bc96cba">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapEvictions
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a8d740f313fb006b36c8897630d82abf7">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapGets
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a2f31775bba9c98a224758dc953495339">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapHitPercentage
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a771c354783cba3466fe33b64cb11ef09">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapHits
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#af4f4b4580e4a868179a3edcfbac2a898">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapMisses
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a20e80e51ba55abccc8d8b0fa9b887034">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapMissPercentage
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a0df0f716477fd975750afe7d75a321d9">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapPrimaryEntriesCount
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a4431a8ab3a9f883056c922d475c896b9">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapPuts
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#ad5ed6fc204753f9265008627ea0578cd">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OffHeapRemovals
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_metrics.html#a6e200550cee180342b25a0c58f088f88">Apache.Ignite.Core.Cache.ICacheMetrics</a>
</li>
<li>OldValue
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_event_1_1_i_cache_entry_event.html#aea58a51620388e933f838c175d12d7ba">Apache.Ignite.Core.Cache.Event.ICacheEntryEvent&lt; out out TK, out out TV &gt;</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_cache_event.html#a4b4492091796d4935f43b3b23810687a">Apache.Ignite.Core.Events.CacheEvent</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_cache_query_read_event.html#acca6b959d2e545b42c5b40e5fdd93b9c">Apache.Ignite.Core.Events.CacheQueryReadEvent</a>
</li>
<li>Order
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster_node.html#a7d36f8bea9b4746d0ac5b423d9e71d9e">Apache.Ignite.Core.Cluster.IClusterNode</a>
</li>
<li>OriginNodeId
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_service_descriptor.html#a9a5d6a8abfcdafbaf434148fe24c04b1">Apache.Ignite.Core.Services.IServiceDescriptor</a>
</li>
<li>OutboundMessagesQueueSize
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster_metrics.html#a7c26cd3b891ade23f46e5550e73ae3bc">Apache.Ignite.Core.Cluster.IClusterMetrics</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 Sun Apr 30 2017 12:15:06 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>
