blob: 6a527d5a2ef3e1bf3b6f767430ed4056cf0cecf3 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) -->
<title>ReadOnlyKeyValueStore (kafka 4.0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.kafka.streams.state, interface: ReadOnlyKeyValueStore">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">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#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li>Constr</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.kafka.streams.state</a></div>
<h1 title="Interface ReadOnlyKeyValueStore" class="title">Interface ReadOnlyKeyValueStore&lt;K,<wbr>V&gt;</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>K</code> - the key type</dd>
<dd><code>V</code> - the value type</dd>
</dl>
<dl class="notes">
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="KeyValueStore.html" title="interface in org.apache.kafka.streams.state">KeyValueStore</a>&lt;K,<wbr>V&gt;</code>, <code><a href="TimestampedKeyValueStore.html" title="interface in org.apache.kafka.streams.state">TimestampedKeyValueStore</a>&lt;K,<wbr>V&gt;</code>, <code><a href="VersionedBytesStore.html" title="interface in org.apache.kafka.streams.state">VersionedBytesStore</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">ReadOnlyKeyValueStore&lt;K,<wbr>V&gt;</span></div>
<div class="block">A key-value store that only supports read operations.
Implementations should be thread-safe as concurrent reads and writes are expected.
<p>
Please note that this contract defines the thread-safe read functionality only; it does not
guarantee anything about whether the actual instance is writable by another thread, or
whether it uses some locking mechanism under the hood. For this reason, making dependencies
between the read and write operations on different StateStore instances can cause concurrency
problems like deadlock.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a><wbr>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#all()" class="member-name-link">all</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Return an iterator over all keys in this store.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#approximateNumEntries()" class="member-name-link">approximateNumEntries</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Return an approximate count of key-value mappings in this store.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#get(K)" class="member-name-link">get</a><wbr>(<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;key)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Get the value corresponding to this key.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default &lt;PS extends <a href="../../common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a>&lt;P&gt;,<wbr>
P&gt;<br><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a><wbr>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#prefixScan(P,PS)" class="member-name-link">prefixScan</a><wbr>(P&nbsp;prefix,
PS&nbsp;prefixKeySerializer)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Return an iterator over all keys with the specified prefix.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a><wbr>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#range(K,K)" class="member-name-link">range</a><wbr>(<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;from,
<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;to)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Get an iterator over a given range of keys.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a><wbr>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#reverseAll()" class="member-name-link">reverseAll</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Return a reverse iterator over all keys in this store.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a><wbr>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#reverseRange(K,K)" class="member-name-link">reverseRange</a><wbr>(<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;from,
<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;to)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Get a reverse iterator over a given range of keys.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="get(K)">
<h3 id="get(java.lang.Object)">get</h3>
<div class="member-signature"><span class="return-type"><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a></span>&nbsp;<span class="element-name">get</span><wbr><span class="parameters">(<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;key)</span></div>
<div class="block">Get the value corresponding to this key.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>key</code> - The key to fetch</dd>
<dt>Returns:</dt>
<dd>The value or null if no value is found.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - If null is used for key.</dd>
<dd><code><a href="../errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if the store is not initialized</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="range(K,K)">
<h3 id="range(java.lang.Object,java.lang.Object)">range</h3>
<div class="member-signature"><span class="return-type"><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</span>&nbsp;<span class="element-name">range</span><wbr><span class="parameters">(<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;from,
<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;to)</span></div>
<div class="block">Get an iterator over a given range of keys. This iterator must be closed after use.
The returned iterator must be safe from <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/ConcurrentModificationException.html" title="class or interface in java.util" class="external-link"><code>ConcurrentModificationException</code></a>s
and must not return null values.
Order is based on the serialized byte[] of the keys, not the 'logical' key order.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>from</code> - The first key that could be in the range, where iteration starts from.
A null value indicates that the range starts with the first element in the store.</dd>
<dd><code>to</code> - The last key that could be in the range, where iteration ends.
A null value indicates that the range ends with the last element in the store.</dd>
<dt>Returns:</dt>
<dd>The iterator for this range, from key with the smallest bytes to the key with the largest bytes of keys.</dd>
<dt>Throws:</dt>
<dd><code><a href="../errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if the store is not initialized</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="reverseRange(K,K)">
<h3 id="reverseRange(java.lang.Object,java.lang.Object)">reverseRange</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</span>&nbsp;<span class="element-name">reverseRange</span><wbr><span class="parameters">(<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;from,
<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>&nbsp;to)</span></div>
<div class="block">Get a reverse iterator over a given range of keys. This iterator must be closed after use.
The returned iterator must be safe from <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/ConcurrentModificationException.html" title="class or interface in java.util" class="external-link"><code>ConcurrentModificationException</code></a>s
and must not return null values.
Order is based on the serialized byte[] of the keys, not the 'logical' key order.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>from</code> - The first key that could be in the range, where iteration ends.
A null value indicates that the range starts with the first element in the store.</dd>
<dd><code>to</code> - The last key that could be in the range, where iteration starts from.
A null value indicates that the range ends with the last element in the store.</dd>
<dt>Returns:</dt>
<dd>The iterator for this range, from key with the smallest bytes to the key with the largest bytes of keys.</dd>
<dt>Throws:</dt>
<dd><code><a href="../errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if the store is not initialized</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="all()">
<h3>all</h3>
<div class="member-signature"><span class="return-type"><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</span>&nbsp;<span class="element-name">all</span>()</div>
<div class="block">Return an iterator over all keys in this store. This iterator must be closed after use.
The returned iterator must be safe from <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/ConcurrentModificationException.html" title="class or interface in java.util" class="external-link"><code>ConcurrentModificationException</code></a>s
and must not return null values.
Order is not guaranteed as bytes lexicographical ordering might not represent key order.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>An iterator of all key/value pairs in the store, from smallest to largest bytes.</dd>
<dt>Throws:</dt>
<dd><code><a href="../errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if the store is not initialized</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="reverseAll()">
<h3>reverseAll</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</span>&nbsp;<span class="element-name">reverseAll</span>()</div>
<div class="block">Return a reverse iterator over all keys in this store. This iterator must be closed after use.
The returned iterator must be safe from <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/ConcurrentModificationException.html" title="class or interface in java.util" class="external-link"><code>ConcurrentModificationException</code></a>s
and must not return null values.
Order is not guaranteed as bytes lexicographical ordering might not represent key order.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A reverse iterator of all key/value pairs in the store, from largest to smallest key bytes.</dd>
<dt>Throws:</dt>
<dd><code><a href="../errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if the store is not initialized</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="prefixScan(P,PS)">
<h3 id="prefixScan(java.lang.Object,org.apache.kafka.common.serialization.Serializer)">prefixScan</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="type-parameters">&lt;PS extends <a href="../../common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a>&lt;P&gt;,<wbr>
P&gt;</span>
<span class="return-type"><a href="KeyValueIterator.html" title="interface in org.apache.kafka.streams.state">KeyValueIterator</a>&lt;<a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">K</a>,<wbr><a href="ReadOnlyKeyValueStore.html" title="type parameter in ReadOnlyKeyValueStore">V</a>&gt;</span>&nbsp;<span class="element-name">prefixScan</span><wbr><span class="parameters">(P&nbsp;prefix,
PS&nbsp;prefixKeySerializer)</span></div>
<div class="block">Return an iterator over all keys with the specified prefix.
Since the type of the prefix can be different from that of the key, a serializer to convert the
prefix into the format in which the keys are stored in the stores needs to be passed to this method.
The returned iterator must be safe from <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/ConcurrentModificationException.html" title="class or interface in java.util" class="external-link"><code>ConcurrentModificationException</code></a>s
and must not return null values.
Since <code>prefixScan()</code> relies on byte lexicographical ordering and not on the ordering of the key type, results for some types might be unexpected.
For example, if the key type is <code>Integer</code>, and the store contains keys [1, 2, 11, 13],
then running <code>store.prefixScan(1, new IntegerSerializer())</code> will return [1] and not [1,11,13].
In contrast, if the key type is <code>String</code> the keys will be sorted [1, 11, 13, 2] in the store and <code>store.prefixScan(1, new StringSerializer())</code> will return [1,11,13].
In both cases <code>prefixScan()</code> starts the scan at 1 and stops at 2.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>PS</code> - Prefix Serializer type</dd>
<dd><code>P</code> - Prefix Type.</dd>
<dt>Parameters:</dt>
<dd><code>prefix</code> - The prefix.</dd>
<dd><code>prefixKeySerializer</code> - Serializer for the Prefix key type</dd>
<dt>Returns:</dt>
<dd>The iterator for keys having the specified prefix.</dd>
<dt>Throws:</dt>
<dd><code><a href="../errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if the store is not initialized</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="approximateNumEntries()">
<h3>approximateNumEntries</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name">approximateNumEntries</span>()</div>
<div class="block">Return an approximate count of key-value mappings in this store.
<p>
The count is not guaranteed to be exact in order to accommodate stores
where an exact count is expensive to calculate.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an approximate count of key-value mappings in the store.</dd>
<dt>Throws:</dt>
<dd><code><a href="../errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if the store is not initialized</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>