blob: ceec7dfe8f3a2ad3758be0b42232c70d1e0c02a3 [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>UnboundedReaderImpl (Apache Beam 2.47.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="UnboundedReaderImpl (Apache Beam 2.47.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/beam/sdk/io/gcp/pubsublite/internal/TrackerWithProgress.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedSourceImpl.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html" target="_top">Frames</a></li>
<li><a href="UnboundedReaderImpl.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><a href="#fields.inherited.from.class.org.apache.beam.sdk.io.UnboundedSource.UnboundedReader">Field</a>&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.beam.sdk.io.gcp.pubsublite.internal</div>
<h2 title="Class UnboundedReaderImpl" class="title">Class UnboundedReaderImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html" title="class in org.apache.beam.sdk.io">org.apache.beam.sdk.io.Source.Reader</a>&lt;OutputT&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">org.apache.beam.sdk.io.UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.gcp.pubsublite.internal.UnboundedReaderImpl</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.lang.AutoCloseable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">UnboundedReaderImpl</span>
extends <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.beam.sdk.io.UnboundedSource.UnboundedReader">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.beam.sdk.io.<a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a></h3>
<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#BACKLOG_UNKNOWN">BACKLOG_UNKNOWN</a></code></li>
</ul>
</li>
</ul>
<!-- ========== 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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#advance--">advance</a></span>()</code>
<div class="block">Advances the reader to the next valid record.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#close--">close</a></span>()</code>
<div class="block">Closes the reader.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/CheckpointMarkImpl.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal">CheckpointMarkImpl</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#getCheckpointMark--">getCheckpointMark</a></span>()</code>
<div class="block">Returns a <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.CheckpointMark.html" title="interface in org.apache.beam.sdk.io"><code>UnboundedSource.CheckpointMark</code></a> representing the progress of this <code>UnboundedReader</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>com.google.cloud.pubsublite.proto.SequencedMessage</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#getCurrent--">getCurrent</a></span>()</code>
<div class="block">Returns the value of the data item that was read by the last <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#start--"><code>Source.Reader.start()</code></a> or <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#advance--"><code>Source.Reader.advance()</code></a> call.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.html" title="class in org.apache.beam.sdk.io">UnboundedSource</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage,<a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/CheckpointMarkImpl.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal">CheckpointMarkImpl</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#getCurrentSource--">getCurrentSource</a></span>()</code>
<div class="block">Returns the <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.html" title="class in org.apache.beam.sdk.io"><code>UnboundedSource</code></a> that created this reader.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#getCurrentTimestamp--">getCurrentTimestamp</a></span>()</code>
<div class="block">Returns the timestamp associated with the current data item.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#getSplitBacklogBytes--">getSplitBacklogBytes</a></span>()</code>
<div class="block">Returns the size of the backlog of unread data in the underlying data source represented by
this split of this source.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#getWatermark--">getWatermark</a></span>()</code>
<div class="block">Returns a timestamp before or at the timestamps of all future elements read by this reader.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html#start--">start</a></span>()</code>
<div class="block">Initializes the reader and advances the reader to the first record.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.io.UnboundedSource.UnboundedReader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.sdk.io.<a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a></h3>
<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getCurrentRecordId--">getCurrentRecordId</a>, <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getTotalBacklogBytes--">getTotalBacklogBytes</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</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="getCurrent--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrent</h4>
<pre>public&nbsp;com.google.cloud.pubsublite.proto.SequencedMessage&nbsp;getCurrent()
throws java.util.NoSuchElementException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#getCurrent--">Source.Reader</a></code></span></div>
<div class="block">Returns the value of the data item that was read by the last <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#start--"><code>Source.Reader.start()</code></a> or <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#advance--"><code>Source.Reader.advance()</code></a> call. The returned value must be effectively immutable and remain valid
indefinitely.
<p>Multiple calls to this method without an intervening call to <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#advance--"><code>Source.Reader.advance()</code></a> should
return the same result.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#getCurrent--">getCurrent</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html" title="class in org.apache.beam.sdk.io">Source.Reader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.util.NoSuchElementException</code> - if <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#start--"><code>Source.Reader.start()</code></a> was never called, or if the last
<a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#start--"><code>Source.Reader.start()</code></a> or <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#advance--"><code>Source.Reader.advance()</code></a> returned <code>false</code>.</dd>
</dl>
</li>
</ul>
<a name="getCurrentTimestamp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentTimestamp</h4>
<pre>public&nbsp;<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;getCurrentTimestamp()
throws java.util.NoSuchElementException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#getCurrentTimestamp--">Source.Reader</a></code></span></div>
<div class="block">Returns the timestamp associated with the current data item.
<p>If the source does not support timestamps, this should return <code>BoundedWindow.TIMESTAMP_MIN_VALUE</code>.
<p>Multiple calls to this method without an intervening call to <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#advance--"><code>Source.Reader.advance()</code></a> should
return the same result.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#getCurrentTimestamp--">getCurrentTimestamp</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html" title="class in org.apache.beam.sdk.io">Source.Reader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.util.NoSuchElementException</code> - if the reader is at the beginning of the input and <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#start--"><code>Source.Reader.start()</code></a> or <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#advance--"><code>Source.Reader.advance()</code></a> wasn't called, or if the last <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#start--"><code>Source.Reader.start()</code></a> or <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#advance--"><code>Source.Reader.advance()</code></a> returned <code>false</code>.</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()
throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#close--">Source.Reader</a></code></span></div>
<div class="block">Closes the reader. The reader cannot be used after this method is called.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#close--">close</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html" title="class in org.apache.beam.sdk.io">Source.Reader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;boolean&nbsp;start()
throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#start--">UnboundedSource.UnboundedReader</a></code></span></div>
<div class="block">Initializes the reader and advances the reader to the first record. If the reader has been
restored from a checkpoint then it should advance to the next unread record at the point the
checkpoint was taken.
<p>This method will be called exactly once. The invocation will occur prior to calling <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#advance--"><code>UnboundedSource.UnboundedReader.advance()</code></a> or <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#getCurrent--"><code>Source.Reader.getCurrent()</code></a>. This method may perform expensive operations that are
needed to initialize the reader.
<p>Returns <code>true</code> if a record was read, <code>false</code> if there is no more input
currently available. Future calls to <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#advance--"><code>UnboundedSource.UnboundedReader.advance()</code></a> may return <code>true</code> once more data
is available. Regardless of the return value of <code>start</code>, <code>start</code> will not be
called again on the same <code>UnboundedReader</code> object; it will only be called again when a
new reader object is constructed for the same source, e.g. on recovery.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#start--">start</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if a record was read, <code>false</code> if there is no more input available.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="advance--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>advance</h4>
<pre>public&nbsp;boolean&nbsp;advance()
throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#advance--">UnboundedSource.UnboundedReader</a></code></span></div>
<div class="block">Advances the reader to the next valid record.
<p>Returns <code>true</code> if a record was read, <code>false</code> if there is no more input
available. Future calls to <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#advance--"><code>UnboundedSource.UnboundedReader.advance()</code></a> may return <code>true</code> once more data is
available.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#advance--">advance</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if a record was read, <code>false</code> if there is no more input available.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getWatermark--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWatermark</h4>
<pre>public&nbsp;<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;getWatermark()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getWatermark--">UnboundedSource.UnboundedReader</a></code></span></div>
<div class="block">Returns a timestamp before or at the timestamps of all future elements read by this reader.
<p>This can be approximate. If records are read that violate this guarantee, they will be
considered late, which will affect how they will be processed. See <a href="../../../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> for more information on late data and how to
handle it.
<p>However, this value should be as late as possible. Downstream windows may not be able to
close until this watermark passes their end.
<p>For example, a source may know that the records it reads will be in timestamp order. In
this case, the watermark can be the timestamp of the last record read. For a source that does
not have natural timestamps, timestamps can be set to the time of reading, in which case the
watermark is the current clock time.
<p>See <a href="../../../../../../../../org/apache/beam/sdk/transforms/windowing/Window.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Window</code></a> and <a href="../../../../../../../../org/apache/beam/sdk/transforms/windowing/Trigger.html" title="class in org.apache.beam.sdk.transforms.windowing"><code>Trigger</code></a> for more information on timestamps and
watermarks.
<p>May be called after <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#advance--"><code>UnboundedSource.UnboundedReader.advance()</code></a> or <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#start--"><code>UnboundedSource.UnboundedReader.start()</code></a> has returned false, but not before
<a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#start--"><code>UnboundedSource.UnboundedReader.start()</code></a> has been called.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getWatermark--">getWatermark</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getCheckpointMark--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCheckpointMark</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/CheckpointMarkImpl.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal">CheckpointMarkImpl</a>&nbsp;getCheckpointMark()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getCheckpointMark--">UnboundedSource.UnboundedReader</a></code></span></div>
<div class="block">Returns a <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.CheckpointMark.html" title="interface in org.apache.beam.sdk.io"><code>UnboundedSource.CheckpointMark</code></a> representing the progress of this <code>UnboundedReader</code>.
<p>If this <code>UnboundedReader</code> does not support checkpoints, it may return a
CheckpointMark which does nothing, like:
<pre><code>
public UnboundedSource.CheckpointMark getCheckpointMark() {
return new UnboundedSource.CheckpointMark() {
public void finalizeCheckpoint() throws IOException {
// nothing to do
}
};
}
</code></pre>
<p>All elements read between the last time this method was called (or since this reader was
created, if this method has not been called on this reader) until this method is called will
be processed together as a bundle. (An element is considered 'read' if it could be returned
by a call to <a href="../../../../../../../../org/apache/beam/sdk/io/Source.Reader.html#getCurrent--"><code>Source.Reader.getCurrent()</code></a>.)
<p>Once the result of processing those elements and the returned checkpoint have been durably
committed, <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.CheckpointMark.html#finalizeCheckpoint--"><code>UnboundedSource.CheckpointMark.finalizeCheckpoint()</code></a> will be called at most once at some
later point on the returned <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.CheckpointMark.html" title="interface in org.apache.beam.sdk.io"><code>UnboundedSource.CheckpointMark</code></a> object. Checkpoint finalization is
best-effort, and checkpoints may not be finalized. If duplicate elements may be produced if
checkpoints are not finalized in a timely manner, <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.html#requiresDeduping--"><code>UnboundedSource.requiresDeduping()</code></a>
should be overridden to return true, and <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getCurrentRecordId--"><code>UnboundedSource.UnboundedReader.getCurrentRecordId()</code></a> should
be overridden to return unique record IDs.
<p>A checkpoint will be committed to durable storage only if all all previous checkpoints
produced by the same reader have also been committed.
<p>The returned object should not be modified.
<p>May not be called before <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#start--"><code>UnboundedSource.UnboundedReader.start()</code></a> has been called.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getCheckpointMark--">getCheckpointMark</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getCurrentSource--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentSource</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.html" title="class in org.apache.beam.sdk.io">UnboundedSource</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage,<a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/CheckpointMarkImpl.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal">CheckpointMarkImpl</a>&gt;&nbsp;getCurrentSource()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getCurrentSource--">UnboundedSource.UnboundedReader</a></code></span></div>
<div class="block">Returns the <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.html" title="class in org.apache.beam.sdk.io"><code>UnboundedSource</code></a> that created this reader. This will not change over the
life of the reader.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getCurrentSource--">getCurrentSource</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getSplitBacklogBytes--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSplitBacklogBytes</h4>
<pre>public&nbsp;long&nbsp;getSplitBacklogBytes()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getSplitBacklogBytes--">UnboundedSource.UnboundedReader</a></code></span></div>
<div class="block">Returns the size of the backlog of unread data in the underlying data source represented by
this split of this source.
<p>One of this or <a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getTotalBacklogBytes--"><code>UnboundedSource.UnboundedReader.getTotalBacklogBytes()</code></a> should be overridden in order to allow the
runner to scale the amount of resources allocated to the pipeline.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html#getSplitBacklogBytes--">getSplitBacklogBytes</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/io/UnboundedSource.UnboundedReader.html" title="class in org.apache.beam.sdk.io">UnboundedSource.UnboundedReader</a>&lt;com.google.cloud.pubsublite.proto.SequencedMessage&gt;</code></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/beam/sdk/io/gcp/pubsublite/internal/TrackerWithProgress.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedSourceImpl.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/pubsublite/internal/UnboundedReaderImpl.html" target="_top">Frames</a></li>
<li><a href="UnboundedReaderImpl.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><a href="#fields.inherited.from.class.org.apache.beam.sdk.io.UnboundedSource.UnboundedReader">Field</a>&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>