gnunet-svn
[Top][All Lists]
Advanced

[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();




reply via email to

[Prev in Thread] Current Thread [Next in Thread]