blob: 8eb09a1d5f628cbca18fd6b589d2c42b78a3fd70 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Delta (Apache Geode 1.15.0)</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Delta (Apache Geode 1.15.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":18,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/geode/DataSerializer.html" title="class in org.apache.geode"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/geode/DeltaSerializationException.html" title="class in org.apache.geode"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/geode/Delta.html" target="_top">Frames</a></li>
<li><a href="Delta.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.geode</div>
<h2 title="Interface Delta" class="title">Interface Delta</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../org/apache/geode/modules/session/catalina/DeltaSession.html" title="class in org.apache.geode.modules.session.catalina">DeltaSession</a>, <a href="../../../org/apache/geode/modules/session/catalina/DeltaSession7.html" title="class in org.apache.geode.modules.session.catalina">DeltaSession7</a>, <a href="../../../org/apache/geode/modules/session/catalina/DeltaSession8.html" title="class in org.apache.geode.modules.session.catalina">DeltaSession8</a>, <a href="../../../org/apache/geode/modules/session/catalina/DeltaSession9.html" title="class in org.apache.geode.modules.session.catalina">DeltaSession9</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Delta</span></pre>
<div class="block">This interface defines a contract between the application and GemFire that allows GemFire to
determine whether an application object contains a delta, allows GemFire to extract the delta
from an application object, and generate a new application object by applying a delta to an
existing application object. The difference in object state is contained in the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io"><code>DataOutput</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io"><code>DataInput</code></a> parameters.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.1</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/geode/Delta.html#fromDelta-java.io.DataInput-">fromDelta</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;in)</code>
<div class="block">This method is invoked on an existing application object when an update is received as a delta.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/geode/Delta.html#getForceRecalculateSize--">getForceRecalculateSize</a></span>()</code>
<div class="block">By default, entry sizes are not recalculated when deltas are applied.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/geode/Delta.html#hasDelta--">hasDelta</a></span>()</code>
<div class="block">Returns true if this object has pending changes it can write out as a delta.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/geode/Delta.html#toDelta-java.io.DataOutput-">toDelta</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)</code>
<div class="block">This method is invoked on an application object at the delta sender, if GemFire determines the
presence of a delta by calling <a href="../../../org/apache/geode/Delta.html#hasDelta--"><code>hasDelta()</code></a> on the object.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="hasDelta--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasDelta</h4>
<pre>boolean&nbsp;hasDelta()</pre>
<div class="block">Returns true if this object has pending changes it can write out as a delta. Returns false if
this object must be transmitted in its entirety.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether this object has pending changes it can write out as a delta</dd>
</dl>
</li>
</ul>
<a name="toDelta-java.io.DataOutput-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toDelta</h4>
<pre>void&nbsp;toDelta(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">This method is invoked on an application object at the delta sender, if GemFire determines the
presence of a delta by calling <a href="../../../org/apache/geode/Delta.html#hasDelta--"><code>hasDelta()</code></a> on the object. The delta is written to
the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io"><code>DataOutput</code></a> object provided by GemFire.
<p>
Any delta state should be reset in this method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io"><code>DataOutput</code></a> to write to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if a problem occurs while writing to <code>out</code></dd>
</dl>
</li>
</ul>
<a name="fromDelta-java.io.DataInput-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromDelta</h4>
<pre>void&nbsp;fromDelta(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;in)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="../../../org/apache/geode/InvalidDeltaException.html" title="class in org.apache.geode">InvalidDeltaException</a></pre>
<div class="block">This method is invoked on an existing application object when an update is received as a delta.
This method throws an <a href="../../../org/apache/geode/InvalidDeltaException.html" title="class in org.apache.geode"><code>InvalidDeltaException</code></a> when the delta in the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io"><code>DataInput</code></a>
cannot be applied to the object. GemFire automatically handles an <a href="../../../org/apache/geode/InvalidDeltaException.html" title="class in org.apache.geode"><code>InvalidDeltaException</code></a>
by reattempting the update by sending the full application object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>in</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io"><code>DataInput</code></a> to read from</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if a problem occurs while reading from <code>in</code></dd>
<dd><code><a href="../../../org/apache/geode/InvalidDeltaException.html" title="class in org.apache.geode">InvalidDeltaException</a></code></dd>
</dl>
</li>
</ul>
<a name="getForceRecalculateSize--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getForceRecalculateSize</h4>
<pre>default&nbsp;boolean&nbsp;getForceRecalculateSize()</pre>
<div class="block">By default, entry sizes are not recalculated when deltas are applied. This optimizes for the
case where the size of an entry does not change. However, if an entry size does increase or
decrease, this default behavior can result in the memory usage statistics becoming inaccurate.
These are used to monitor the health of Geode instances, and for balancing memory usage across
partitioned regions.
<p>
There is a system property, gemfire.DELTAS_RECALCULATE_SIZE, which can be used to cause all
deltas to trigger entry size recalculation when deltas are applied. By default, this is set
to 'false' because of potential performance impacts when every delta triggers a recalculation.
<p>
To allow entry size recalculation on a per-delta basis, classes that extend the Delta interface
should override this method to return 'true'. This may impact performance of specific delta
types, but will not globally affect the performance of other Geode delta operations.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether entry sizes should be recalculated when deltas are applied</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.14</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/geode/DataSerializer.html" title="class in org.apache.geode"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/geode/DeltaSerializationException.html" title="class in org.apache.geode"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/geode/Delta.html" target="_top">Frames</a></li>
<li><a href="Delta.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>