[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r21413 - in gnunet-java: . src/org/gnunet/construct src/org
From: |
gnunet |
Subject: |
[GNUnet-SVN] r21413 - in gnunet-java: . src/org/gnunet/construct src/org/gnunet/core src/org/gnunet/dht src/org/gnunet/util |
Date: |
Thu, 10 May 2012 15:50:54 +0200 |
Author: dold
Date: 2012-05-10 15:50:54 +0200 (Thu, 10 May 2012)
New Revision: 21413
Modified:
gnunet-java/ISSUES
gnunet-java/src/org/gnunet/construct/MsgMap.txt
gnunet-java/src/org/gnunet/core/Core.java
gnunet-java/src/org/gnunet/dht/DistributedHashTable.java
gnunet-java/src/org/gnunet/util/RequestQueue.java
Log:
issues / request queue
Modified: gnunet-java/ISSUES
===================================================================
--- gnunet-java/ISSUES 2012-05-10 13:18:54 UTC (rev 21412)
+++ gnunet-java/ISSUES 2012-05-10 13:50:54 UTC (rev 21413)
@@ -8,7 +8,7 @@
====================================================================
-* IzPack is ~15MB, do we really have it in the svn repo?
+* IzPack is ~15MB, do we really want to have it in the svn repo?
* the Runabout can now be an anonymous inner class
@@ -17,6 +17,9 @@
* only issue left: visit methods have to be public, but this is a non issue.
+* review the RequestQueue mechanism
+
+
* Statistics:
* currently watches can't be canceled on the service level, only on the api
level, is this intentional?
@@ -34,6 +37,4 @@
May 09 09:21:49-194786 util-11121 WARNING `socket' failed at
connection.c:892 with error: Too many open files
-* review the RequestQueue mechanism
- * implementing core with the RequestQueue not yet fully possible
Modified: gnunet-java/src/org/gnunet/construct/MsgMap.txt
===================================================================
--- gnunet-java/src/org/gnunet/construct/MsgMap.txt 2012-05-10 13:18:54 UTC
(rev 21412)
+++ gnunet-java/src/org/gnunet/construct/MsgMap.txt 2012-05-10 13:50:54 UTC
(rev 21413)
@@ -3,7 +3,7 @@
org.gnunet.util.Resolver$Address|0=org.gnunet.util.Resolver$TextualAddress
org.gnunet.util.Resolver$Address|1=org.gnunet.util.Resolver$NumericAddress
org.gnunet.util.GnunetMessage$Body|68=org.gnunet.core.Core$DisconnectNotifyMessage
-org.gnunet.util.GnunetMessage$Body|1=org.gnunet.statistics.Statistics$TESTMessage
+org.gnunet.util.GnunetMessage$Body|1=org.gnunet.util.TESTMessage
org.gnunet.util.GnunetMessage$Body|70=org.gnunet.core.Core$NotifyInboundTrafficMessage
org.gnunet.util.GnunetMessage$Body|71=org.gnunet.core.Core$NotifyOutboundTrafficMessage
org.gnunet.util.GnunetMessage$Body|4=org.gnunet.util.Resolver$GetMessage
@@ -16,8 +16,9 @@
org.gnunet.util.GnunetMessage$Body|76=org.gnunet.core.Core$SendMessage
org.gnunet.util.GnunetMessage$Body|74=org.gnunet.core.Core$SendMessageRequest
org.gnunet.util.GnunetMessage$Body|75=org.gnunet.core.Core$SendMessageReady
-org.gnunet.util.GnunetMessage$Body|153=org.gnunet.dht.MonitorStartMessage
+org.gnunet.util.GnunetMessage$Body|153=org.gnunet.dht.MonitorStartStop
org.gnunet.util.GnunetMessage$Body|42001=org.gnunet.core.Core$MyMessage
+org.gnunet.util.GnunetMessage$Body|155=org.gnunet.dht.ClientPutConfirmationMessage
org.gnunet.util.GnunetMessage$Body|323=org.gnunet.nse.NetworkSizeEstimation$UpdateMessage
org.gnunet.util.GnunetMessage$Body|321=org.gnunet.nse.NetworkSizeEstimation$StartMessage
org.gnunet.util.GnunetMessage$Body|144=org.gnunet.dht.ClientGetStopMessage
@@ -31,4 +32,4 @@
org.gnunet.util.GnunetMessage$Body|168=org.gnunet.statistics.SetMessage
org.gnunet.util.GnunetMessage$Body|173=org.gnunet.statistics.WatchResponseMessage
org.gnunet.util.GnunetMessage$Body|172=org.gnunet.statistics.WatchMessage
-# generated 2012/05/09 02:24:00
+# generated 2012/05/09 15:57:52
Modified: gnunet-java/src/org/gnunet/core/Core.java
===================================================================
--- gnunet-java/src/org/gnunet/core/Core.java 2012-05-10 13:18:54 UTC (rev
21412)
+++ gnunet-java/src/org/gnunet/core/Core.java 2012-05-10 13:50:54 UTC (rev
21413)
@@ -23,14 +23,21 @@
.getLogger(Core.class);
+ private final static int
+ CORE_OPTION_FULL_INBOUND = 8,
+ CORE_OPTION_HDR_INBOUND = 16,
+ CORE_OPTION_FULL_OUTBOUND = 32,
+ CORE_OPTION_HDR_OUTBOUND = 64;
+
+
private final Client client;
/**
* set to null once connected for the first time
*/
- private InitCallback init;
+ private InitCallback initCallback;
- // private final RequestQueue requestQueue;
+ private final RequestQueue requestQueue;
/*
* Callbacks for traffic notifications. null if not used.
@@ -56,16 +63,9 @@
LinkedList<SendMessage> approvedSendMessages = new
LinkedList<SendMessage>();
-
private Cancelable currentClientTransmitHandle;
- private final static int
- CORE_OPTION_FULL_INBOUND = 8,
- CORE_OPTION_HDR_INBOUND = 16,
- CORE_OPTION_FULL_OUTBOUND = 32,
- CORE_OPTION_HDR_OUTBOUND = 64;
-
/**
* Represents a request for transmission.
*/
@@ -85,10 +85,11 @@
public Core(Configuration cfg) {
client = new Client("core", cfg);
+ requestQueue = new RequestQueue(client, new CoreReceiver());
}
public void init(InitCallback initCallback) {
- this.init = initCallback;
+ this.initCallback = initCallback;
reconnect();
}
@@ -102,6 +103,8 @@
logger.info("we are interested in " + i);
}
+ //requestQueue.sendNext();
+
client.transmitAndGetResponse(initMessage, RelativeTime.FOREVER, true,
new CoreReceiver());
}
@@ -110,9 +113,9 @@
PeerIdentity myIdentity = m.myIdentity;
connectedPeers.put(myIdentity, new ConnectedPeerInfo());
- if (init != null) {
- init.onInit(m.myIdentity);
- init = null;
+ if (initCallback != null) {
+ initCallback.onInit(m.myIdentity);
+ initCallback = null;
}
client.receive(RelativeTime.FOREVER, this);
Modified: gnunet-java/src/org/gnunet/dht/DistributedHashTable.java
===================================================================
--- gnunet-java/src/org/gnunet/dht/DistributedHashTable.java 2012-05-10
13:18:54 UTC (rev 21412)
+++ gnunet-java/src/org/gnunet/dht/DistributedHashTable.java 2012-05-10
13:50:54 UTC (rev 21413)
@@ -151,6 +151,20 @@
sink.send(mss);
}
+
+ @Override
+ public void onCancel(boolean alreadyTransmitted) {
+ if (alreadyTransmitted) {
+ MonitorRequest cancelRequest = new MonitorRequest();
+ cancelRequest.getHandler = null;
+ cancelRequest.getResponseHandler = null;
+ cancelRequest.putHandler = null;
+ requestQueue.add(new MonitorRequest());
+ }
+ if (currentMonitorRequest == this) {
+ currentMonitorRequest = null;
+ }
+ }
}
public class DHTMessageReceiver extends RunaboutMessageReceiver {
Modified: gnunet-java/src/org/gnunet/util/RequestQueue.java
===================================================================
--- gnunet-java/src/org/gnunet/util/RequestQueue.java 2012-05-10 13:18:54 UTC
(rev 21412)
+++ gnunet-java/src/org/gnunet/util/RequestQueue.java 2012-05-10 13:50:54 UTC
(rev 21413)
@@ -12,14 +12,12 @@
*/
private final LinkedList<Request> requestsAwaitingTransmit = new
LinkedList<Request>();
-
/**
* Persistent requests. Will be informed about reconnect / destroy events
even
* if already transmitted. Have to be canceled manually.
*/
private final LinkedList<Request> persistentRequests = new
LinkedList<Request>();
-
/**
* List of all requests from requestAwaitingTransmit and
persistentRequest, containing no duplicates.
*/
@@ -43,7 +41,6 @@
private boolean destroyed = false;
private final Client client;
-
public static abstract class Request {
public boolean onTransmitTimeout() {
@@ -160,11 +157,28 @@
}
+ /**
+ * Add a request so that it will get notified about reconnect/destroy
events,
+ * even if it already has been transmitted.
+ */
public Cancelable addPersistent(final Request request) {
persistentRequests.add(request);
return add(request);
}
+ /**
+ * Add a message to the queue that will be sent before all other messages
in the queue.
+ * @return
+ */
+ // should this really be cancelable?
+ public Cancelable sendNext(final Request request) {
+ // todo
+ return null;
+ }
+
+ /**
+ * Reconnect the client and notify all pending request of the reconnect.
+ */
public void reconnect() {
client.reconnect();
currentReceive = null;
@@ -192,6 +206,9 @@
handleNextTransmit();
}
+ /**
+ * Notify all request of the shutdown.
+ */
public void shutdown() {
final LinkedList<Request> remove = new LinkedList<Request>();
@@ -214,6 +231,9 @@
handleReceive();
}
+ /**
+ * Cancel all requests and destroy the connection.
+ */
public void destroy() {
destroyed = true;
allRequests.clear();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21413 - in gnunet-java: . src/org/gnunet/construct src/org/gnunet/core src/org/gnunet/dht src/org/gnunet/util,
gnunet <=