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

<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>RateTimeInterval
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_memory_policy_configuration.html#acfeefe4fbc9c76e8da9cc4ed93cdf610">Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_persistent_store_1_1_persistent_store_configuration.html#a68a5bca9c1d718306ffd463cb3e7aa6a">Apache.Ignite.Core.PersistentStore.PersistentStoreConfiguration</a>
</li>
<li>RawMode
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_binary_1_1_binary_reflective_serializer.html#a7e25e783c174e5c5d80b8ce96af3418d">Apache.Ignite.Core.Binary.BinaryReflectiveSerializer</a>
</li>
<li>ReadFromBackup
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#a2f40a06023380a9064326b7c91f75d5d">Apache.Ignite.Core.Cache.Configuration.CacheConfiguration</a>
</li>
<li>ReadThrough
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#aee14bad81e0eb1291a916ec9fa6948ec">Apache.Ignite.Core.Cache.Configuration.CacheConfiguration</a>
</li>
<li>RebalanceBatchSize
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#a37ab9222ba331a43110889abe776a79b">Apache.Ignite.Core.Cache.Configuration.CacheConfiguration</a>
</li>
<li>RebalanceDelay
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#a57e38ad679b3511c703cc774717faffe">Apache.Ignite.Core.Cache.Configuration.CacheConfiguration</a>
</li>
<li>RebalanceMode
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#a51884016304f69e136a3fa5c1e30ef1c">Apache.Ignite.Core.Cache.Configuration.CacheConfiguration</a>
</li>
<li>RebalanceThrottle
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#a0d7d291a5782a648748437300756c041">Apache.Ignite.Core.Cache.Configuration.CacheConfiguration</a>
</li>
<li>RebalanceTimeout
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#ae8dd854be91f5fdb5c87b1fa478bae31">Apache.Ignite.Core.Cache.Configuration.CacheConfiguration</a>
</li>
<li>ReceivedBytesCount
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster_metrics.html#addb501ed7d147639b133d8c7493753a6">Apache.Ignite.Core.Cluster.IClusterMetrics</a>
</li>
<li>ReceivedMessagesCount
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster_metrics.html#a802f016a97282956bd4928ccd202cb68">Apache.Ignite.Core.Cluster.IClusterMetrics</a>
</li>
<li>Receiver
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_datastream_1_1_i_data_streamer.html#aacd1f9298b1809c4e8e703c2b721aefc">Apache.Ignite.Core.Datastream.IDataStreamer&lt; TK, TV &gt;</a>
</li>
<li>ReconnectCount
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_communication_1_1_tcp_1_1_tcp_communication_spi.html#aad9424031bb4f3b00b03e450adef0422">Apache.Ignite.Core.Communication.Tcp.TcpCommunicationSpi</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_discovery_1_1_tcp_1_1_tcp_discovery_spi.html#a1cff23b4ec89924bdeec2221f6599512">Apache.Ignite.Core.Discovery.Tcp.TcpDiscoverySpi</a>
</li>
<li>ReplicatedOnly
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_query_1_1_sql_fields_query.html#a12f3257b8a3c3a876a32309ac03fcc12">Apache.Ignite.Core.Cache.Query.SqlFieldsQuery</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_query_1_1_sql_query.html#a66438a04fbcfdf7f37f73855ad979669">Apache.Ignite.Core.Cache.Query.SqlQuery</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_linq_1_1_query_options.html#a993a15c5d9e9b35a383fe1df853caa16">Apache.Ignite.Linq.QueryOptions</a>
</li>
<li>ResponseTimeout
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_discovery_1_1_tcp_1_1_multicast_1_1_tcp_discovery_multicast_ip_finder.html#a49944c8dfe2d1ba3532cc13ec74a33f5">Apache.Ignite.Core.Discovery.Tcp.Multicast.TcpDiscoveryMulticastIpFinder</a>
</li>
<li>Result
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_entry_processor_result.html#aed2ea6aea2a9154cd7660574dde8f3e7">Apache.Ignite.Core.Cache.ICacheEntryProcessorResult&lt; out out TK, out out T &gt;</a>
</li>
<li>RollbackTime
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_i_transaction_metrics.html#a77dfe0d2bacd31c12730b6603d17639b">Apache.Ignite.Core.Transactions.ITransactionMetrics</a>
</li>
<li>Row
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_cache_query_read_event.html#a3de0fc3d6d8df732b157de4385b39f9f">Apache.Ignite.Core.Events.CacheQueryReadEvent</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>
