new timeout tests for WLAN and bluetooth
[oweals/gnunet.git] / src / set / gnunet-service-set.h
index 62e8cbc87769ffb102b5cf73fda07f5111669199..95a24119b3c0722b564f03c9ef950974a8807454 100644 (file)
@@ -91,7 +91,12 @@ struct OperationSpecification
   uint32_t salt;
 
   /**
-   * ID used to identify an operation between service and client 
+   * Remote peers element count
+   */
+  uint32_t remote_element_count;
+
+  /**
+   * ID used to identify an operation between service and client
    */
   uint32_t client_request_id;
 
@@ -276,7 +281,7 @@ struct ElementEntry
   /**
    * GNUNET_YES if the element is a remote element, and does not belong
    * to the operation's set.
-   * 
+   *
    * //TODO: Move to Union, unless additional set-operations are implemented ever
    */
   int remote;
@@ -288,7 +293,7 @@ struct Operation
   /**
    * V-Table for the operation belonging
    * to the tunnel contest.
-   * 
+   *
    * Used for all operation specific operations after receiving the ops request
    */
   const struct SetVT *vt;
@@ -306,8 +311,6 @@ struct Operation
   /**
    * GNUNET_YES if this is not a "real" set operation yet, and we still
    * need to wait for the other peer to give us more details.
-   * 
-   * //TODO: replace with state-enum
    */
   int is_incoming;
 
@@ -341,6 +344,12 @@ struct Operation
     * a linked list.
     */
   struct Operation *prev;
+
+  /**
+   * Set to GNUNET_YES if the set service should not free
+   * the operation, as it is still needed (e.g. in some scheduled task).
+   */
+  int keep;
 };
 
 
@@ -369,8 +378,8 @@ struct Set
   /**
    * Virtual table for this set.
    * Determined by the operation type of this set.
-   * 
-   * Used only for Add/remove of elements and when receiving an incoming 
+   *
+   * Used only for Add/remove of elements and when receiving an incoming
    * operation from a remote peer.
    */
   const struct SetVT *vt;
@@ -435,7 +444,7 @@ _GSS_operation_destroy (struct Operation *op);
 /**
  * Get the table with implementing functions for
  * set union.
- * 
+ *
  * @return the operation specific VTable
  */
 const struct SetVT *
@@ -445,7 +454,7 @@ _GSS_union_vt (void);
 /**
  * Get the table with implementing functions for
  * set intersection.
- * 
+ *
  * @return the operation specific VTable
  */
 const struct SetVT *