extend API to enalbe exclusive port ranges to be specified for testing-system objects
[oweals/gnunet.git] / src / include / gnunet_scheduler_lib.h
index c0b33a400c4a37abc0701b6d5cd1dbfc1f516bb5..1e2a4000a22a943923d621f96b9449c1df8a0172 100644 (file)
@@ -212,6 +212,8 @@ typedef int (*GNUNET_SCHEDULER_select) (void *cls,
                                         struct GNUNET_NETWORK_FDSet * wfds,
                                         struct GNUNET_NETWORK_FDSet * efds,
                                         struct GNUNET_TIME_Relative timeout);
+
+
 /**
  * Initialize and run scheduler.  This function will return when all
  * tasks have completed.  On systems with signals, receiving a SIGTERM
@@ -238,7 +240,7 @@ GNUNET_SCHEDULER_run (GNUNET_SCHEDULER_Task task, void *task_cls);
  * scheduled AFTER this call may still be delayed arbitrarily.
  */
 void
-GNUNET_SCHEDULER_shutdown ();
+GNUNET_SCHEDULER_shutdown (void);
 
 
 /**
@@ -411,6 +413,30 @@ GNUNET_SCHEDULER_add_read_net (struct GNUNET_TIME_Relative delay,
                                GNUNET_SCHEDULER_Task task, void *task_cls);
 
 
+/**
+ * Schedule a new task to be run with a specified priority and to be
+ * run after the specified delay or when the specified file descriptor
+ * is ready for reading.  The delay can be used as a timeout on the
+ * socket being ready.  The task will be scheduled for execution once
+ * either the delay has expired or the socket operation is ready.  It
+ * will be run with the DEFAULT priority.
+ *
+ * @param delay when should this operation time out? Use
+ *        GNUNET_TIME_UNIT_FOREVER_REL for "on shutdown"
+ * @param priority priority to use for the task
+ * @param rfd read file-descriptor
+ * @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!
+ */
+GNUNET_SCHEDULER_TaskIdentifier
+GNUNET_SCHEDULER_add_read_net_with_priority (struct GNUNET_TIME_Relative delay,
+                                            enum GNUNET_SCHEDULER_Priority priority,
+                                            struct GNUNET_NETWORK_Handle *rfd,
+                                            GNUNET_SCHEDULER_Task task, void *task_cls);
+
+
 /**
  * Schedule a new task to be run with a specified delay or when the
  * specified file descriptor is ready for writing.  The delay can be