aboutsummaryrefslogtreecommitdiff
path: root/src/org/gnunet/mq/MessageQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/gnunet/mq/MessageQueue.java')
-rw-r--r--src/org/gnunet/mq/MessageQueue.java41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/org/gnunet/mq/MessageQueue.java b/src/org/gnunet/mq/MessageQueue.java
deleted file mode 100644
index de08edf..0000000
--- a/src/org/gnunet/mq/MessageQueue.java
+++ /dev/null
@@ -1,41 +0,0 @@
1package org.gnunet.mq;
2
3
4import org.gnunet.util.GnunetMessage;
5
6import java.util.LinkedList;
7
8/**
9 * General-purpose message queue
10 */
11public abstract class MessageQueue {
12 private LinkedList<Envelope> queued_envelopes = new LinkedList<>();
13 protected Envelope current_envelope;
14
15 protected abstract void sendImmediate(Envelope ev);
16
17 public void send(GnunetMessage.Body body) {
18 send(new Envelope(body));
19 }
20
21 public void send(Envelope ev) {
22 if (null == current_envelope) {
23 current_envelope = ev;
24 sendImmediate(current_envelope);
25 } else {
26 queued_envelopes.addLast(ev);
27 }
28 }
29
30 protected void reportMessageSent() {
31 if (null == current_envelope)
32 throw new AssertionError();
33 current_envelope.invokeSentNotification();
34 if (queued_envelopes.isEmpty())
35 return;
36 current_envelope = queued_envelopes.pop();
37 sendImmediate(current_envelope);
38 }
39
40 public abstract void destroy();
41}