[Top][All Lists]
[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 {
+
+}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r17950 - in gnunet-java: . src/org/gnunet/util/network src/org/gnunet/util/scheduler,
gnunet <=