<!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/struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.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: Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion Struct 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 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('struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Affinity topology version.  
 <a href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion:</div>
<div class="dyncontent">
 <div class="center">
  <img src="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.png" usemap="#Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion_map" alt=""/>
  <map id="Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion_map" name="Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion_map">
</map>
 </div></div>
<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:ad70dd41aa8ba1490668a3f7868ff5d6f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#ad70dd41aa8ba1490668a3f7868ff5d6f">AffinityTopologyVersion</a> (long version, int minorVersion)</td></tr>
<tr class="memdesc:ad70dd41aa8ba1490668a3f7868ff5d6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new instance of the <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html" title="Affinity topology version. ">AffinityTopologyVersion</a> struct.  <a href="#ad70dd41aa8ba1490668a3f7868ff5d6f">More...</a><br /></td></tr>
<tr class="separator:ad70dd41aa8ba1490668a3f7868ff5d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f9c5fcc0b05bf3619b5ec5afbeca130"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#a8f9c5fcc0b05bf3619b5ec5afbeca130">Equals</a> (<a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a> other)</td></tr>
<tr class="memdesc:a8f9c5fcc0b05bf3619b5ec5afbeca130"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the current object is equal to another object of the same type.  <a href="#a8f9c5fcc0b05bf3619b5ec5afbeca130">More...</a><br /></td></tr>
<tr class="separator:a8f9c5fcc0b05bf3619b5ec5afbeca130"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b5cbd74c7d81124cbeecbbc9de7acc1"><td class="memItemLeft" align="right" valign="top">override bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#a0b5cbd74c7d81124cbeecbbc9de7acc1">Equals</a> (object obj)</td></tr>
<tr class="memdesc:a0b5cbd74c7d81124cbeecbbc9de7acc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether the specified System.Object, is equal to this instance.  <a href="#a0b5cbd74c7d81124cbeecbbc9de7acc1">More...</a><br /></td></tr>
<tr class="separator:a0b5cbd74c7d81124cbeecbbc9de7acc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ddfc154259ff4a98251cc626e005ccd"><td class="memItemLeft" align="right" valign="top">override int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#a1ddfc154259ff4a98251cc626e005ccd">GetHashCode</a> ()</td></tr>
<tr class="memdesc:a1ddfc154259ff4a98251cc626e005ccd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a hash code for this instance.  <a href="#a1ddfc154259ff4a98251cc626e005ccd">More...</a><br /></td></tr>
<tr class="separator:a1ddfc154259ff4a98251cc626e005ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e84fd83ff00be4fbba4ff153543eae"><td class="memItemLeft" align="right" valign="top">override string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#a39e84fd83ff00be4fbba4ff153543eae">ToString</a> ()</td></tr>
<tr class="memdesc:a39e84fd83ff00be4fbba4ff153543eae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string that represents this instance.  <a href="#a39e84fd83ff00be4fbba4ff153543eae">More...</a><br /></td></tr>
<tr class="separator:a39e84fd83ff00be4fbba4ff153543eae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:af6e710a85d79ac26652f5e86882ebdcc"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#af6e710a85d79ac26652f5e86882ebdcc">operator==</a> (<a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a> left, <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a> right)</td></tr>
<tr class="memdesc:af6e710a85d79ac26652f5e86882ebdcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements the operator ==.  <a href="#af6e710a85d79ac26652f5e86882ebdcc">More...</a><br /></td></tr>
<tr class="separator:af6e710a85d79ac26652f5e86882ebdcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe2f306a6e6ff1bdb09aaeccc9bbfdaa"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#afe2f306a6e6ff1bdb09aaeccc9bbfdaa">operator!=</a> (<a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a> left, <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a> right)</td></tr>
<tr class="memdesc:afe2f306a6e6ff1bdb09aaeccc9bbfdaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements the operator !=.  <a href="#afe2f306a6e6ff1bdb09aaeccc9bbfdaa">More...</a><br /></td></tr>
<tr class="separator:afe2f306a6e6ff1bdb09aaeccc9bbfdaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:a10082ca6d129c7b5e1a3d530afbd4378"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#a10082ca6d129c7b5e1a3d530afbd4378">Version</a><code> [get]</code></td></tr>
<tr class="memdesc:a10082ca6d129c7b5e1a3d530afbd4378"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the major version, same as <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster.html#a224017e0d57d21db9fc1d7399a3887e1" title="Gets current topology version. In case of TCP discovery topology versions are sequential ...">ICluster.TopologyVersion</a>.  <a href="#a10082ca6d129c7b5e1a3d530afbd4378">More...</a><br /></td></tr>
<tr class="separator:a10082ca6d129c7b5e1a3d530afbd4378"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fe446eb834a48fcff27ee674758e00b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html#a6fe446eb834a48fcff27ee674758e00b">MinorVersion</a><code> [get]</code></td></tr>
<tr class="memdesc:a6fe446eb834a48fcff27ee674758e00b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the minor version, which is increased when new caches start.  <a href="#a6fe446eb834a48fcff27ee674758e00b">More...</a><br /></td></tr>
<tr class="separator:a6fe446eb834a48fcff27ee674758e00b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ad70dd41aa8ba1490668a3f7868ff5d6f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.AffinityTopologyVersion </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>version</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>minorVersion</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</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">version</td><td>The version.</td></tr>
    <tr><td class="paramname">minorVersion</td><td>The minor version.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a8f9c5fcc0b05bf3619b5ec5afbeca130"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.Equals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a>&#160;</td>
          <td class="paramname"><em>other</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">other</td><td>An object to compare with this object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the current object is equal to the <em>other</em>  parameter; otherwise, false. </dd></dl>

</div>
</div>
<a class="anchor" id="a0b5cbd74c7d81124cbeecbbc9de7acc1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override bool Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.Equals </td>
          <td>(</td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>obj</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">obj</td><td>The System.Object to compare with this instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the specified System.Object is equal to this instance; otherwise, <code>false</code>. </dd></dl>

</div>
</div>
<a class="anchor" id="a1ddfc154259ff4a98251cc626e005ccd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override int Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.GetHashCode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. </dd></dl>

</div>
</div>
<a class="anchor" id="afe2f306a6e6ff1bdb09aaeccc9bbfdaa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.operator!= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a>&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a>&#160;</td>
          <td class="paramname"><em>right</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">left</td><td>The left.</td></tr>
    <tr><td class="paramname">right</td><td>The right.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the operator. </dd></dl>

</div>
</div>
<a class="anchor" id="af6e710a85d79ac26652f5e86882ebdcc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.operator== </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a>&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a>&#160;</td>
          <td class="paramname"><em>right</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">left</td><td>The left.</td></tr>
    <tr><td class="paramname">right</td><td>The right.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the operator. </dd></dl>

</div>
</div>
<a class="anchor" id="a39e84fd83ff00be4fbba4ff153543eae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override string Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.ToString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A string that represents this instance. </dd></dl>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="a6fe446eb834a48fcff27ee674758e00b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.MinorVersion</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a10082ca6d129c7b5e1a3d530afbd4378"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long Apache.Ignite.Core.Cache.Affinity.AffinityTopologyVersion.Version</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</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_cache.html">Cache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity.html">Affinity</a></li><li class="navelem"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_topology_version.html">AffinityTopologyVersion</a></li>
    <li class="footer">Generated on Sun Apr 30 2017 12:15:05 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>
