ProtocolLib/Javadoc/com/comphenix/protocol/async/AsyncMarker.html
2012-10-17 08:16:18 +02:00

707 lines
30 KiB
HTML

<!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 (version 1.7.0_07) on Wed Oct 17 08:12:19 CEST 2012 -->
<title>AsyncMarker</title>
<meta name="date" content="2012-10-17">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AsyncMarker";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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="class-use/AsyncMarker.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/comphenix/protocol/async/AsyncListenerHandler.html" title="class in com.comphenix.protocol.async"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../com/comphenix/protocol/async/AsyncRunnable.html" title="interface in com.comphenix.protocol.async"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/comphenix/protocol/async/AsyncMarker.html" target="_top">Frames</a></li>
<li><a href="AsyncMarker.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All 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="#field_summary">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><a href="#field_detail">Field</a>&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">com.comphenix.protocol.async</div>
<h2 title="Class AsyncMarker" class="title">Class AsyncMarker</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.comphenix.protocol.async.AsyncMarker</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable, java.lang.Comparable&lt;<a href="../../../../com/comphenix/protocol/async/AsyncMarker.html" title="class in com.comphenix.protocol.async">AsyncMarker</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">AsyncMarker</span>
extends java.lang.Object
implements java.io.Serializable, java.lang.Comparable&lt;<a href="../../../../com/comphenix/protocol/async/AsyncMarker.html" title="class in com.comphenix.protocol.async">AsyncMarker</a>&gt;</pre>
<div class="block">Contains information about the packet that is being processed by asynchronous listeners.
<p>
Asynchronous listeners can use this to set packet timeout or transmission order.</div>
<dl><dt><span class="strong">Author:</span></dt>
<dd>Kristian</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#com.comphenix.protocol.async.AsyncMarker">Serialized Form</a></dd></dl>
</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>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#DEFAULT_SENDING_DELTA">DEFAULT_SENDING_DELTA</a></strong></code>
<div class="block">Default number of packets to skip.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#DEFAULT_TIMEOUT_DELTA">DEFAULT_TIMEOUT_DELTA</a></strong></code>
<div class="block">Default number of milliseconds until a packet will rejected.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#compareTo(com.comphenix.protocol.async.AsyncMarker)">compareTo</a></strong>(<a href="../../../../com/comphenix/protocol/async/AsyncMarker.html" title="class in com.comphenix.protocol.async">AsyncMarker</a>&nbsp;o)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getInitialTime()">getInitialTime</a></strong>()</code>
<div class="block">Retrieve the time the packet was initially queued for asynchronous processing.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../com/comphenix/protocol/async/AsyncListenerHandler.html" title="class in com.comphenix.protocol.async">AsyncListenerHandler</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getListenerHandler()">getListenerHandler</a></strong>()</code>
<div class="block">Retrieve the current asynchronous listener handler.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getNewSendingIndex()">getNewSendingIndex</a></strong>()</code>
<div class="block">Retrieve the desired sending order after processing has completed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getOriginalSendingIndex()">getOriginalSendingIndex</a></strong>()</code>
<div class="block">Retrieve the order the packet was originally transmitted.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../com/comphenix/protocol/PacketStream.html" title="interface in com.comphenix.protocol">PacketStream</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getPacketStream()">getPacketStream</a></strong>()</code>
<div class="block">Retrieve the packet stream responsible for transmitting this packet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getProcessingDelay()">getProcessingDelay</a></strong>()</code>
<div class="block">Retrieve the number of times a packet must be signalled to be done before it's sent.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getProcessingLock()">getProcessingLock</a></strong>()</code>
<div class="block">Processing lock used to synchronize access to the parent PacketEvent and PacketContainer.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getQueuedSendingIndex()">getQueuedSendingIndex</a></strong>()</code>
<div class="block">Retrieve the sending index when the packet was queued.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getTimeout()">getTimeout</a></strong>()</code>
<div class="block">Retrieve the time the packet will be forcefully rejected.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getWorkerID()">getWorkerID</a></strong>()</code>
<div class="block">Retrieve the current worker ID.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#hasExpired()">hasExpired</a></strong>()</code>
<div class="block">Determine if this packet has expired.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#hasExpired(long)">hasExpired</a></strong>(long&nbsp;currentTime)</code>
<div class="block">Determine if this packet has expired given this time.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#incrementProcessingDelay()">incrementProcessingDelay</a></strong>()</code>
<div class="block">Increment the number of times this packet must be signalled as done before its transmitted.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#isAsyncCancelled()">isAsyncCancelled</a></strong>()</code>
<div class="block">Determine if the asynchronous handling should be cancelled.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#isMinecraftAsync(com.comphenix.protocol.events.PacketEvent)">isMinecraftAsync</a></strong>(<a href="../../../../com/comphenix/protocol/events/PacketEvent.html" title="class in com.comphenix.protocol.events">PacketEvent</a>&nbsp;event)</code>
<div class="block">Determine if Minecraft allows asynchronous processing of this packet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#isProcessed()">isProcessed</a></strong>()</code>
<div class="block">Retrieve whether or not this packet has been processed by the async listeners.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#isQueued()">isQueued</a></strong>()</code>
<div class="block">Whether or not this packet is or has been queued for processing.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#isTransmitted()">isTransmitted</a></strong>()</code>
<div class="block">Retrieve whether or not this packet has already been sent.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#setAsyncCancelled(boolean)">setAsyncCancelled</a></strong>(boolean&nbsp;asyncCancelled)</code>
<div class="block">Set whether or not the asynchronous handling should be cancelled.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#setNewSendingIndex(long)">setNewSendingIndex</a></strong>(long&nbsp;newSendingIndex)</code>
<div class="block">Sets the desired sending order after processing has completed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#setPacketStream(com.comphenix.protocol.PacketStream)">setPacketStream</a></strong>(<a href="../../../../com/comphenix/protocol/PacketStream.html" title="interface in com.comphenix.protocol">PacketStream</a>&nbsp;packetStream)</code>
<div class="block">Sets the output packet stream responsible for transmitting this packet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#setProcessingLock(java.lang.Object)">setProcessingLock</a></strong>(java.lang.Object&nbsp;processingLock)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#setTimeout(long)">setTimeout</a></strong>(long&nbsp;timeout)</code>
<div class="block">Set the time the packet will be forcefully rejected.</div>
</td>
</tr>
</table>
<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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DEFAULT_TIMEOUT_DELTA">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_TIMEOUT_DELTA</h4>
<pre>public static final&nbsp;int DEFAULT_TIMEOUT_DELTA</pre>
<div class="block">Default number of milliseconds until a packet will rejected.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#com.comphenix.protocol.async.AsyncMarker.DEFAULT_TIMEOUT_DELTA">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DEFAULT_SENDING_DELTA">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT_SENDING_DELTA</h4>
<pre>public static final&nbsp;int DEFAULT_SENDING_DELTA</pre>
<div class="block">Default number of packets to skip.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#com.comphenix.protocol.async.AsyncMarker.DEFAULT_SENDING_DELTA">Constant Field Values</a></dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getInitialTime()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInitialTime</h4>
<pre>public&nbsp;long&nbsp;getInitialTime()</pre>
<div class="block">Retrieve the time the packet was initially queued for asynchronous processing.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>The initial time in number of milliseconds since 01.01.1970 00:00.</dd></dl>
</li>
</ul>
<a name="getTimeout()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimeout</h4>
<pre>public&nbsp;long&nbsp;getTimeout()</pre>
<div class="block">Retrieve the time the packet will be forcefully rejected.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>The time to reject the packet, in milliseconds since 01.01.1970 00:00.</dd></dl>
</li>
</ul>
<a name="setTimeout(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeout</h4>
<pre>public&nbsp;void&nbsp;setTimeout(long&nbsp;timeout)</pre>
<div class="block">Set the time the packet will be forcefully rejected.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>timeout</code> - - time to reject the packet, in milliseconds since 01.01.1970 00:00.</dd></dl>
</li>
</ul>
<a name="getOriginalSendingIndex()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOriginalSendingIndex</h4>
<pre>public&nbsp;long&nbsp;getOriginalSendingIndex()</pre>
<div class="block">Retrieve the order the packet was originally transmitted.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>The original packet index.</dd></dl>
</li>
</ul>
<a name="getNewSendingIndex()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNewSendingIndex</h4>
<pre>public&nbsp;long&nbsp;getNewSendingIndex()</pre>
<div class="block">Retrieve the desired sending order after processing has completed.
<p>
Higher sending order means lower priority.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Desired sending order.</dd></dl>
</li>
</ul>
<a name="setNewSendingIndex(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNewSendingIndex</h4>
<pre>public&nbsp;void&nbsp;setNewSendingIndex(long&nbsp;newSendingIndex)</pre>
<div class="block">Sets the desired sending order after processing has completed.
<p>
Higher sending order means lower priority.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newSendingIndex</code> - - new packet send index.</dd></dl>
</li>
</ul>
<a name="getPacketStream()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPacketStream</h4>
<pre>public&nbsp;<a href="../../../../com/comphenix/protocol/PacketStream.html" title="interface in com.comphenix.protocol">PacketStream</a>&nbsp;getPacketStream()</pre>
<div class="block">Retrieve the packet stream responsible for transmitting this packet.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>The packet stream.</dd></dl>
</li>
</ul>
<a name="setPacketStream(com.comphenix.protocol.PacketStream)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPacketStream</h4>
<pre>public&nbsp;void&nbsp;setPacketStream(<a href="../../../../com/comphenix/protocol/PacketStream.html" title="interface in com.comphenix.protocol">PacketStream</a>&nbsp;packetStream)</pre>
<div class="block">Sets the output packet stream responsible for transmitting this packet.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>packetStream</code> - - new output packet stream.</dd></dl>
</li>
</ul>
<a name="isProcessed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isProcessed</h4>
<pre>public&nbsp;boolean&nbsp;isProcessed()</pre>
<div class="block">Retrieve whether or not this packet has been processed by the async listeners.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>TRUE if it has been processed, FALSE otherwise.</dd></dl>
</li>
</ul>
<a name="incrementProcessingDelay()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incrementProcessingDelay</h4>
<pre>public&nbsp;int&nbsp;incrementProcessingDelay()</pre>
<div class="block">Increment the number of times this packet must be signalled as done before its transmitted.
<p>
This is useful if an asynchronous listener is waiting for further information before the
packet can be sent to the user. A packet listener <b>MUST</b> eventually call
<a href="../../../../com/comphenix/protocol/async/AsyncFilterManager.html#signalPacketTransmission(com.comphenix.protocol.events.PacketEvent)"><code>AsyncFilterManager.signalPacketTransmission(PacketEvent)</code></a>,
even if the packet is cancelled, after this method is called.
<p>
It is recommended that processing outside a packet listener is wrapped in a synchronized block
using the <a href="../../../../com/comphenix/protocol/async/AsyncMarker.html#getProcessingLock()"><code>getProcessingLock()</code></a> method.
<p>
To decrement the processing delay, call signalPacketUpdate. A thread that calls this method
multiple times must call signalPacketUpdate at least that many times.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>The new processing delay.</dd></dl>
</li>
</ul>
<a name="getProcessingDelay()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessingDelay</h4>
<pre>public&nbsp;int&nbsp;getProcessingDelay()</pre>
<div class="block">Retrieve the number of times a packet must be signalled to be done before it's sent.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Number of processing delays.</dd></dl>
</li>
</ul>
<a name="isQueued()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isQueued</h4>
<pre>public&nbsp;boolean&nbsp;isQueued()</pre>
<div class="block">Whether or not this packet is or has been queued for processing.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>TRUE if it has, FALSE otherwise.</dd></dl>
</li>
</ul>
<a name="getQueuedSendingIndex()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueuedSendingIndex</h4>
<pre>public&nbsp;long&nbsp;getQueuedSendingIndex()</pre>
<div class="block">Retrieve the sending index when the packet was queued.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Queued sending index.</dd></dl>
</li>
</ul>
<a name="getProcessingLock()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessingLock</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getProcessingLock()</pre>
<div class="block">Processing lock used to synchronize access to the parent PacketEvent and PacketContainer.
<p>
This lock is automatically acquired for every asynchronous packet listener. It should only be
used to synchronize access to a PacketEvent if it's processing has been delayed.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>A processing lock.</dd></dl>
</li>
</ul>
<a name="setProcessingLock(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setProcessingLock</h4>
<pre>public&nbsp;void&nbsp;setProcessingLock(java.lang.Object&nbsp;processingLock)</pre>
</li>
</ul>
<a name="isTransmitted()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTransmitted</h4>
<pre>public&nbsp;boolean&nbsp;isTransmitted()</pre>
<div class="block">Retrieve whether or not this packet has already been sent.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>TRUE if it has been sent before, FALSE otherwise.</dd></dl>
</li>
</ul>
<a name="hasExpired()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasExpired</h4>
<pre>public&nbsp;boolean&nbsp;hasExpired()</pre>
<div class="block">Determine if this packet has expired.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>TRUE if it has, FALSE otherwise.</dd></dl>
</li>
</ul>
<a name="hasExpired(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasExpired</h4>
<pre>public&nbsp;boolean&nbsp;hasExpired(long&nbsp;currentTime)</pre>
<div class="block">Determine if this packet has expired given this time.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>currentTime</code> - - the current time in milliseconds since 01.01.1970 00:00.</dd>
<dt><span class="strong">Returns:</span></dt><dd>TRUE if it has, FALSE otherwise.</dd></dl>
</li>
</ul>
<a name="isAsyncCancelled()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAsyncCancelled</h4>
<pre>public&nbsp;boolean&nbsp;isAsyncCancelled()</pre>
<div class="block">Determine if the asynchronous handling should be cancelled.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>TRUE if it should, FALSE otherwise.</dd></dl>
</li>
</ul>
<a name="setAsyncCancelled(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAsyncCancelled</h4>
<pre>public&nbsp;void&nbsp;setAsyncCancelled(boolean&nbsp;asyncCancelled)</pre>
<div class="block">Set whether or not the asynchronous handling should be cancelled.
<p>
This is only relevant during the synchronous processing. Asynchronous
listeners should use the normal cancel-field to cancel a PacketEvent.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>asyncCancelled</code> - - TRUE to cancel it, FALSE otherwise.</dd></dl>
</li>
</ul>
<a name="getListenerHandler()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getListenerHandler</h4>
<pre>public&nbsp;<a href="../../../../com/comphenix/protocol/async/AsyncListenerHandler.html" title="class in com.comphenix.protocol.async">AsyncListenerHandler</a>&nbsp;getListenerHandler()</pre>
<div class="block">Retrieve the current asynchronous listener handler.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Asychronous listener handler, or NULL if this packet is not asynchronous.</dd></dl>
</li>
</ul>
<a name="getWorkerID()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWorkerID</h4>
<pre>public&nbsp;int&nbsp;getWorkerID()</pre>
<div class="block">Retrieve the current worker ID.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Current worker ID.</dd></dl>
</li>
</ul>
<a name="isMinecraftAsync(com.comphenix.protocol.events.PacketEvent)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMinecraftAsync</h4>
<pre>public&nbsp;boolean&nbsp;isMinecraftAsync(<a href="../../../../com/comphenix/protocol/events/PacketEvent.html" title="class in com.comphenix.protocol.events">PacketEvent</a>&nbsp;event)
throws <a href="../../../../com/comphenix/protocol/reflect/FieldAccessException.html" title="class in com.comphenix.protocol.reflect">FieldAccessException</a></pre>
<div class="block">Determine if Minecraft allows asynchronous processing of this packet.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>TRUE if it does, FALSE otherwise.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../com/comphenix/protocol/reflect/FieldAccessException.html" title="class in com.comphenix.protocol.reflect">FieldAccessException</a></code></dd></dl>
</li>
</ul>
<a name="compareTo(com.comphenix.protocol.async.AsyncMarker)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>compareTo</h4>
<pre>public&nbsp;int&nbsp;compareTo(<a href="../../../../com/comphenix/protocol/async/AsyncMarker.html" title="class in com.comphenix.protocol.async">AsyncMarker</a>&nbsp;o)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code>compareTo</code>&nbsp;in interface&nbsp;<code>java.lang.Comparable&lt;<a href="../../../../com/comphenix/protocol/async/AsyncMarker.html" title="class in com.comphenix.protocol.async">AsyncMarker</a>&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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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="class-use/AsyncMarker.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/comphenix/protocol/async/AsyncListenerHandler.html" title="class in com.comphenix.protocol.async"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../com/comphenix/protocol/async/AsyncRunnable.html" title="interface in com.comphenix.protocol.async"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/comphenix/protocol/async/AsyncMarker.html" target="_top">Frames</a></li>
<li><a href="AsyncMarker.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All 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="#field_summary">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><a href="#field_detail">Field</a>&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>