<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<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.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache Geode Native .NET Reference: Apache::Geode::Client::IDelta 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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</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="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Apache Geode Native .NET Reference
   &#160;<span id="projectnumber">1.13.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00950.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Apache::Geode::Client::IDelta Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This interface is used for delta propagation.  
 <a href="a00950.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:ac35842a6484aea9e011fbbf45d5f9481"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00950.html#ac35842a6484aea9e011fbbf45d5f9481">FromDelta</a> (<a class="el" href="a00602.html">DataInput</a>^ in)</td></tr>
<tr class="memdesc:ac35842a6484aea9e011fbbf45d5f9481"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads in delta information to this object in a user-defined format.  <a href="#ac35842a6484aea9e011fbbf45d5f9481">More...</a><br /></td></tr>
<tr class="separator:ac35842a6484aea9e011fbbf45d5f9481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9598787b15d0f633923f4dc8fde7194c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00950.html#a9598787b15d0f633923f4dc8fde7194c">HasDelta</a> ()</td></tr>
<tr class="memdesc:a9598787b15d0f633923f4dc8fde7194c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="a00950.html#a9598787b15d0f633923f4dc8fde7194c" title="HasDelta( ) is invoked by Geode during Region.Put( ICacheableKey, ISerializable ) to determine if the...">HasDelta( )</a></code> is invoked by <a class="el" href="a00381.html" title="This namespace contains all the Geode .NET classes and utility classes.">Geode</a> during <code>Region.Put( ICacheableKey, ISerializable )</code> to determine if the object contains a delta.  <a href="#a9598787b15d0f633923f4dc8fde7194c">More...</a><br /></td></tr>
<tr class="separator:a9598787b15d0f633923f4dc8fde7194c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae596a2c12886ef4c156114c6912366c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00950.html#ae596a2c12886ef4c156114c6912366c3">ToDelta</a> (<a class="el" href="a00606.html">DataOutput</a>^ out)</td></tr>
<tr class="memdesc:ae596a2c12886ef4c156114c6912366c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes out delta information to out in a user-defined format.  <a href="#ae596a2c12886ef4c156114c6912366c3">More...</a><br /></td></tr>
<tr class="separator:ae596a2c12886ef4c156114c6912366c3"><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>This interface is used for delta propagation. </p>
<p>To use delta propagation, an application class must implement interfaces <code><a class="el" href="a00950.html" title="This interface is used for delta propagation.">IDelta</a></code> as well as <code><a class="el" href="a00934.html" title="An interface for objects whose contents can be serialized as primitive types.">IDataSerializable</a></code>. The <code><a class="el" href="a00950.html" title="This interface is used for delta propagation.">IDelta</a></code> interface methods <code><a class="el" href="a00950.html#a9598787b15d0f633923f4dc8fde7194c" title="HasDelta( ) is invoked by Geode during Region.Put( ICacheableKey, ISerializable ) to determine if the...">HasDelta( )</a>, <a class="el" href="a00950.html#ae596a2c12886ef4c156114c6912366c3" title="Writes out delta information to out in a user-defined format.">ToDelta( )</a></code> and <code><a class="el" href="a00950.html#ac35842a6484aea9e011fbbf45d5f9481" title="Reads in delta information to this object in a user-defined format.">FromDelta( )</a></code> must be implemented by the class, as these methods are used by <a class="el" href="a00381.html" title="This namespace contains all the Geode .NET classes and utility classes.">Geode</a> to detect the presence of delta in an object, to serialize the delta, and to apply a serialized delta to an existing object of the class. If a customized cloning method is required, the class must also implement the interface <code>System.ICloneable</code>. To use cloning in delta propagation for a region, the region attribute for cloning must be enabled. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac35842a6484aea9e011fbbf45d5f9481"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac35842a6484aea9e011fbbf45d5f9481">&#9670;&nbsp;</a></span>FromDelta()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Apache::Geode::Client::IDelta::FromDelta </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00602.html">DataInput</a>^&#160;</td>
          <td class="paramname"><em>in</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads in delta information to this object in a user-defined format. </p>
<p>This is invoked on an existing application object after <a class="el" href="a00381.html" title="This namespace contains all the Geode .NET classes and utility classes.">Geode</a> determines the presence of delta in <code><a class="el" href="a00602.html" title="Provides operations for reading primitive data values, byte arrays, strings, ISerializable objects fr...">DataInput</a></code> instance. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">InvalidDeltaException</td><td>if the delta in the <code><a class="el" href="a00602.html" title="Provides operations for reading primitive data values, byte arrays, strings, ISerializable objects fr...">DataInput</a></code> instance cannot be applied to this instance (possible causes may include mismatch of Delta version or logic error). </td></tr>
    <tr><td class="paramname"><a class="el" href="a00726.html" title="Thrown when there is an input/output error.">GeodeIOException</a></td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9598787b15d0f633923f4dc8fde7194c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9598787b15d0f633923f4dc8fde7194c">&#9670;&nbsp;</a></span>HasDelta()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Apache::Geode::Client::IDelta::HasDelta </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code><a class="el" href="a00950.html#a9598787b15d0f633923f4dc8fde7194c" title="HasDelta( ) is invoked by Geode during Region.Put( ICacheableKey, ISerializable ) to determine if the...">HasDelta( )</a></code> is invoked by <a class="el" href="a00381.html" title="This namespace contains all the Geode .NET classes and utility classes.">Geode</a> during <code>Region.Put( ICacheableKey, ISerializable )</code> to determine if the object contains a delta. </p>
<p>If <code><a class="el" href="a00950.html#a9598787b15d0f633923f4dc8fde7194c" title="HasDelta( ) is invoked by Geode during Region.Put( ICacheableKey, ISerializable ) to determine if the...">HasDelta( )</a></code> returns true, the delta in the object is serialized by invoking <code>ToDelta( DataOutput )</code>. If <code><a class="el" href="a00950.html#a9598787b15d0f633923f4dc8fde7194c" title="HasDelta( ) is invoked by Geode during Region.Put( ICacheableKey, ISerializable ) to determine if the...">HasDelta( )</a></code> returns false, the object is serialized by invoking <code>ISerializable.ToData( DataOutput )</code>. </p>

</div>
</div>
<a id="ae596a2c12886ef4c156114c6912366c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae596a2c12886ef4c156114c6912366c3">&#9670;&nbsp;</a></span>ToDelta()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Apache::Geode::Client::IDelta::ToDelta </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00606.html">DataOutput</a>^&#160;</td>
          <td class="paramname"><em>out</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes out delta information to out in a user-defined format. </p>
<p>This is invoked on an application object after <a class="el" href="a00381.html" title="This namespace contains all the Geode .NET classes and utility classes.">Geode</a> determines the presence of delta in it by calling <code><a class="el" href="a00950.html#a9598787b15d0f633923f4dc8fde7194c" title="HasDelta( ) is invoked by Geode during Region.Put( ICacheableKey, ISerializable ) to determine if the...">HasDelta()</a></code> on the object. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00726.html" title="Thrown when there is an input/output error.">GeodeIOException</a></td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at
     http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<HR><address style="align: right;"><small>Apache Geode C++ Cache .NET API Documentation</small></address>
