gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r17950 - in gnunet-java: . src/org/gnunet/util/network src/


From: gnunet
Subject: [GNUnet-SVN] r17950 - in gnunet-java: . src/org/gnunet/util/network src/org/gnunet/util/scheduler
Date: Wed, 2 Nov 2011 21:34:10 +0100

Author: dold
Date: 2011-11-02 21:34:10 +0100 (Wed, 02 Nov 2011)
New Revision: 17950

Added:
   gnunet-java/src/org/gnunet/util/scheduler/Task.java
   gnunet-java/src/org/gnunet/util/scheduler/TaskPrerequisites.java
Removed:
   gnunet-java/src/org/gnunet/util/scheduler/TaskCallback.java
   gnunet-java/src/org/gnunet/util/scheduler/TaskContext.java
   gnunet-java/src/org/gnunet/util/scheduler/TaskInfo.java
Modified:
   gnunet-java/ISSUES
   gnunet-java/src/org/gnunet/util/network/Connection.java
   gnunet-java/src/org/gnunet/util/network/Receiver.java
   gnunet-java/src/org/gnunet/util/scheduler/Scheduler.java
Log:
improved scheduler interface

Modified: gnunet-java/ISSUES
===================================================================
--- gnunet-java/ISSUES  2011-11-02 19:31:21 UTC (rev 17949)
+++ gnunet-java/ISSUES  2011-11-02 20:34:10 UTC (rev 17950)
@@ -6,6 +6,7 @@
 * Client/Connection class hierarchy
 * how to handle disconnect/destroy (as java cannot directly dispose of objects)
 * why is configuration passed around so often?
+* wrt the scheduler: can you select on anything else than a Connection?
 
 
 

Modified: gnunet-java/src/org/gnunet/util/network/Connection.java
===================================================================
--- gnunet-java/src/org/gnunet/util/network/Connection.java     2011-11-02 
19:31:21 UTC (rev 17949)
+++ gnunet-java/src/org/gnunet/util/network/Connection.java     2011-11-02 
20:34:10 UTC (rev 17950)
@@ -24,7 +24,7 @@
                return new Connection(ss);
        }
 
-       public static Connection fromConnect(String hostname, long port) {
+       public static Connection fromConnect(String hostname, int port) {
                throw new UnsupportedOperationException();
        }
 

Modified: gnunet-java/src/org/gnunet/util/network/Receiver.java
===================================================================
--- gnunet-java/src/org/gnunet/util/network/Receiver.java       2011-11-02 
19:31:21 UTC (rev 17949)
+++ gnunet-java/src/org/gnunet/util/network/Receiver.java       2011-11-02 
20:34:10 UTC (rev 17950)
@@ -2,5 +2,5 @@
 
 public interface Receiver {
        public void receive(byte[] buf, long available, Object sockaddr, int 
addrlen, int errCode);
-
+       
 }

Modified: gnunet-java/src/org/gnunet/util/scheduler/Scheduler.java
===================================================================
--- gnunet-java/src/org/gnunet/util/scheduler/Scheduler.java    2011-11-02 
19:31:21 UTC (rev 17949)
+++ gnunet-java/src/org/gnunet/util/scheduler/Scheduler.java    2011-11-02 
20:34:10 UTC (rev 17950)
@@ -10,26 +10,6 @@
                STARTUP, SHUTDOWN, TIMEOUT, READ_READY, WRITE_READY, PREREQ_DONE
        };
 
-       public enum Priority {
-               KEEP, IDLE, BACKGROUND, DEFAULT, HIGH, UI, URGENT, SHUTDOWN
-       };
-
-       private LinkedList<Task> pending;
-       private LinkedList<Task> pending_timeout;
-
-       private LinkedList<Task> ready;
-
-       private Task pending_timeout_last;
-       private Task active_task;
-
-       private int last_id;
-
-       private int lowest_pending_id;
-
-       private int ready_count;
-
-       private long tasks_run;
-
        /**
         * Initialize and run scheduler. This function will return when all 
tasks
         * have completed. On systems with signals, receiving a SIGTERM (and 
other
@@ -43,20 +23,35 @@
         * @param task
         *            task to run first (and immediately)
         */
-
+       public void run(Task task, TaskPrerequisites pre) {
+               throw new UnsupportedOperationException();
+       }
+       
+       /**
+        * run with empty prerequisites
+        */
        public void run(Task task) {
                throw new UnsupportedOperationException();
        }
-
-       public void addContinuation(TaskCallback t, Reason r) {
+       
+       
+       /**
+        * Run the task as soon as its prerequisites are satisfied.
+        */
+       public void schedule(Task task) {
                throw new UnsupportedOperationException();
        }
-
-       public void addAfter(Task prereq, TaskCallback t) {
-
+       
+       
+       /**
+        * Run the task regardless of any prerequisites.
+        */
+       public void setNext(Task task, Reason reason) {
+               throw new UnsupportedOperationException();
        }
-
        
+       
+       
        /**
         * Request the shutdown of a scheduler.  Marks all currently
         * pending tasks as ready because of shutdown.  This will
@@ -69,7 +64,6 @@
        }
        
        
-       
        /**
         * Get information about the current load of this scheduler.  Use this
         * function to determine if an elective task should be added or simply
@@ -81,7 +75,7 @@
         *          all priority levels
         * @return number of tasks pending right now
         */
-       public int getLoad (Priority p) {
+       public int getLoad (Task.Priority p) {
                throw new UnsupportedOperationException();
        }
        
@@ -93,58 +87,16 @@
         *
         * * @return reason(s) why the current task is run
         */
-       public Reason GetReason() {
+       public Reason getReason() {
                throw new UnsupportedOperationException();
        }
 
        
        /**
-        * Cancel the task with the specified identifier.
+        * Cancel execution of the specified task.
         * The task must not yet have run.
-        *
-        * * @param task id of the task to cancel
-        * @return the closure of the callback of the cancelled task
         */
-       // XXX: do we need to return the task?
-       public void cancel (TaskIdentifier task) {
-               
+       public void cancel (Task task) {
+               throw new UnsupportedOperationException();
        }
-       
-       /**
-        * Schedule a new task to be run with a specified priority.
-        *
-        * * @param prio how important is the new task?
-        * @param task main function of the task
-        * @param task_cls closure of task
-        * @return unique task identifier for the job
-        *         only valid until "task" is started! (XXX: we don't need 
this, do we?)
-        */
-       public void addWithPriority (Priority prio, Task task) {
-               
-       }
-       
-       
-       
-       /**
-        * Schedule a new task to be run as soon as possible. The task
-        * will be run with the priority of the calling task.
-        *
-        * * @param task main function of the task
-        * @param task_cls closure of task
-        * @return unique task identifier for the job
-        *         only valid until "task" is started!
-        */
-       public void add_now (Task task, void *task_cls) {
-               
-       }
-
-
-       
-       
-       /*
-        * set_select is not relevant in java (we use java's nio api for 
sockets)
-        */
-
-
-
 }

Copied: gnunet-java/src/org/gnunet/util/scheduler/Task.java (from rev 17941, 
gnunet-java/src/org/gnunet/util/scheduler/TaskCallback.java)
===================================================================
--- gnunet-java/src/org/gnunet/util/scheduler/Task.java                         
(rev 0)
+++ gnunet-java/src/org/gnunet/util/scheduler/Task.java 2011-11-02 20:34:10 UTC 
(rev 17950)
@@ -0,0 +1,39 @@
+package org.gnunet.util.scheduler;
+
+import org.gnunet.util.time.AbsoluteTime;
+
+
+/*
+ * Task subsumes gnunet-c's TaskContext and TaskIdentifier
+ */
+
+public abstract class Task {
+       
+       public enum Priority {
+               KEEP, IDLE, BACKGROUND, DEFAULT, HIGH, UI, URGENT, SHUTDOWN
+       };
+       
+       
+       /*
+       // Unique Task Identifier, XXX do we need this?
+       int id;
+       
+       int prereq_id;
+       
+       AbsoluteTime timeout;
+       
+       AbsoluteTime start_time;
+       
+       int read_fd, write_fd;
+       
+       int lifeness;
+       */
+       
+       
+       
+       
+       /*
+        * The actual code a task is supposed to execute
+        */
+       abstract void run();
+}

Deleted: gnunet-java/src/org/gnunet/util/scheduler/TaskCallback.java
===================================================================
--- gnunet-java/src/org/gnunet/util/scheduler/TaskCallback.java 2011-11-02 
19:31:21 UTC (rev 17949)
+++ gnunet-java/src/org/gnunet/util/scheduler/TaskCallback.java 2011-11-02 
20:34:10 UTC (rev 17950)
@@ -1,5 +0,0 @@
-package org.gnunet.util.scheduler;
-
-public interface TaskCallback {
-
-}

Deleted: gnunet-java/src/org/gnunet/util/scheduler/TaskContext.java
===================================================================
--- gnunet-java/src/org/gnunet/util/scheduler/TaskContext.java  2011-11-02 
19:31:21 UTC (rev 17949)
+++ gnunet-java/src/org/gnunet/util/scheduler/TaskContext.java  2011-11-02 
20:34:10 UTC (rev 17950)
@@ -1,10 +0,0 @@
-package org.gnunet.util.scheduler;
-
-
-
-/**
- * Context information passed to each scheduler task.
- */
-public class TaskContext {
-
-}

Deleted: gnunet-java/src/org/gnunet/util/scheduler/TaskInfo.java
===================================================================
--- gnunet-java/src/org/gnunet/util/scheduler/TaskInfo.java     2011-11-02 
19:31:21 UTC (rev 17949)
+++ gnunet-java/src/org/gnunet/util/scheduler/TaskInfo.java     2011-11-02 
20:34:10 UTC (rev 17950)
@@ -1,23 +0,0 @@
-package org.gnunet.util.scheduler;
-
-import org.gnunet.util.time.AbsoluteTime;
-
-public class TaskInfo {
-       private TaskCallback cb;
-       
-       // Unique Task Identifier
-       int id;
-       
-       int prereq_id;
-       
-       AbsoluteTime timeout;
-       
-       AbsoluteTime start_time;
-       
-       int read_fd, write_fd;
-       
-       int lifeness;
-       
-       
-       
-}

Added: gnunet-java/src/org/gnunet/util/scheduler/TaskPrerequisites.java
===================================================================
--- gnunet-java/src/org/gnunet/util/scheduler/TaskPrerequisites.java            
                (rev 0)
+++ gnunet-java/src/org/gnunet/util/scheduler/TaskPrerequisites.java    
2011-11-02 20:34:10 UTC (rev 17950)
@@ -0,0 +1,5 @@
+package org.gnunet.util.scheduler;
+
+public class TaskPrerequisites {
+
+}




reply via email to

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