1 package org
.lwes
.listener
;
3 import java
.net
.DatagramPacket
;
6 * Element objects to use in the threaded queueing system. This encapsulates
7 * datagrams and timestamps.
9 * @author Michael P. Lum
12 public class DatagramQueueElement
implements QueueElement
{
13 private DatagramPacket packet
= null;
14 private long timestamp
= 0L;
17 * Default constructor.
19 public DatagramQueueElement() {
23 * Gets the datagram packet payload.
25 * @return the DatagramPacket
27 public DatagramPacket
getPacket() {
32 * Sets the datagram packet payload
37 public void setPacket(DatagramPacket packet
) {
42 * Gets the timestamp associated with this packet
44 * @return the timestamp
46 public long getTimestamp() {
51 * Sets the timestamp associated with this packet
56 public void setTimestamp(long timestamp
) {
57 this.timestamp
= timestamp
;
61 * Resets this packet to null
69 * Determine equality with an object
70 * @param object the object to compare with
71 * @return true if the object is equal to this one, false if not
73 public boolean equals(Object object
) {
74 if(object
== null) return false;
76 if (object
instanceof DatagramQueueElement
)
77 return equals((DatagramQueueElement
) object
);
83 public int hashCode() {
84 int result
= packet
!= null ? packet
.hashCode() : 0;
85 result
= 31 * result
+ (int) (timestamp ^
(timestamp
>>> 32));
90 * Determine equality with another DatagramQueueElement
91 * @param element the object to compare with
92 * @return true if the object is equal to this one, false if not
94 public boolean equals(DatagramQueueElement element
) {
97 if (element
.getPacket() == null)
100 return ((element
.getPacket().equals(this.packet
)) && (element
.timestamp
== this.timestamp
));