-rps: open channel when inserting peer in view
[oweals/gnunet.git] / src / testbed / testbed_api_operations.h
index 10a91fb21dbabd3c51cb0f0de13df8802181cca8..43f5034ab1a65caf550ed88ff9ae4bd95e03537d 100644 (file)
@@ -1,6 +1,6 @@
 /*
       This file is part of GNUnet
-      (C) 2008--2012 Christian Grothoff (and other contributing authors)
+      Copyright (C) 2008--2013 GNUnet e.V.
 
       GNUnet is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
       You should have received a copy of the GNU General Public License
       along with GNUnet; see the file COPYING.  If not, write to the
-      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-      Boston, MA 02111-1307, USA.
+      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+      Boston, MA 02110-1301, USA.
  */
 
 /**
 struct OperationQueue;
 
 
+/**
+ * The type of operation queue
+ */
+enum OperationQueueType
+{
+  /**
+   * Operation queue which permits a fixed maximum number of operations to be
+   * active at any time
+   */
+  OPERATION_QUEUE_TYPE_FIXED,
+
+  /**
+   * Operation queue which adapts the number of operations to be active based on
+   * the operation completion times of previously executed operation in it
+   */
+  OPERATION_QUEUE_TYPE_ADAPTIVE
+};
+
+
 /**
  * Create an operation queue.
  *
- * @param max_active maximum number of operations in this
- *        queue that can be active in parallel at the same time
+ * @param type the type of operation queue
+ * @param max_active maximum number of operations in this queue that can be
+ *   active in parallel at the same time.
  * @return handle to the queue
  */
 struct OperationQueue *
-GNUNET_TESTBED_operation_queue_create_ (unsigned int max_active);
+GNUNET_TESTBED_operation_queue_create_ (enum OperationQueueType type,
+                                        unsigned int max_active);
 
 
 /**
@@ -199,5 +220,14 @@ void
 GNUNET_TESTBED_operation_activate_ (struct GNUNET_TESTBED_Operation *op);
 
 
+/**
+ * Marks an operation as failed
+ *
+ * @param op the operation to be marked as failed
+ */
+void
+GNUNET_TESTBED_operation_mark_failed (struct GNUNET_TESTBED_Operation *op);
+
+
 #endif
 /* end of testbed_api_operations.h */