summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/net/rmulticast/ReceivedSet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/derms/net/rmulticast/ReceivedSet.java')
-rw-r--r--src/main/java/derms/net/rmulticast/ReceivedSet.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/derms/net/rmulticast/ReceivedSet.java b/src/main/java/derms/net/rmulticast/ReceivedSet.java
new file mode 100644
index 0000000..339a714
--- /dev/null
+++ b/src/main/java/derms/net/rmulticast/ReceivedSet.java
@@ -0,0 +1,25 @@
+package derms.net.rmulticast;
+
+import java.io.Serializable;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+class ReceivedSet<T extends Serializable & Hashable> {
+ private final Set<Message<T>> received;
+
+ ReceivedSet() {
+ this.received = new ConcurrentHashMap<Message<T>, Void>().keySet();
+ }
+
+ void add(Message<T> e) {
+ received.add(e);
+ }
+
+ // TODO: faster search.
+ boolean contains(MessageID mid) {
+ for (Message<T> msg : received)
+ if (msg.id().equals(mid))
+ return true;
+ return false;
+ }
+}