extend API to enalbe exclusive port ranges to be specified for testing-system objects
[oweals/gnunet.git] / src / include / gnunet_fs_service.h
index 3eb58921a71fef5d87fabedd994a3071e7031df2..f93f4e856a710513a459008d5ba5a42f22a2df65 100644 (file)
@@ -91,7 +91,7 @@ typedef int (*GNUNET_FS_KeywordIterator) (void *cls, const char *keyword,
  * @param key wherer to store the unique key
  */
 void
-GNUNET_FS_uri_to_key (const struct GNUNET_FS_Uri *uri, GNUNET_HashCode * key);
+GNUNET_FS_uri_to_key (const struct GNUNET_FS_Uri *uri, struct GNUNET_HashCode * key);
 
 /**
  * Convert a URI to a UTF-8 String.
@@ -341,7 +341,7 @@ GNUNET_FS_uri_sks_create (struct GNUNET_FS_Namespace *ns, const char *id,
  * @return an FS URI for the given namespace and identifier
  */
 struct GNUNET_FS_Uri *
-GNUNET_FS_uri_sks_create_from_nsid (GNUNET_HashCode * nsid, const char *id);
+GNUNET_FS_uri_sks_create_from_nsid (struct GNUNET_HashCode * nsid, const char *id);
 
 
 /**
@@ -354,7 +354,7 @@ GNUNET_FS_uri_sks_create_from_nsid (GNUNET_HashCode * nsid, const char *id);
  */
 int
 GNUNET_FS_uri_sks_get_namespace (const struct GNUNET_FS_Uri *uri,
-                                 GNUNET_HashCode * nsid);
+                                 struct GNUNET_HashCode * nsid);
 
 
 /**
@@ -1017,6 +1017,12 @@ struct GNUNET_FS_ProgressInfo
           */
           uint64_t data_len;
 
+          /**
+          * How much time passed between us asking for this block and
+           * actually getting it? GNUNET_TIME_UNIT_FOREVER_REL if unknown.
+          */
+          struct GNUNET_TIME_Relative block_download_duration;
+
           /**
           * Depth of the given block in the tree;
           * 0 would be the lowest level (DBLOCKS).
@@ -1024,15 +1030,20 @@ struct GNUNET_FS_ProgressInfo
           unsigned int depth;
 
           /**
-          * How much trust did we offer for downloading this block?
+          * How much respect did we offer for downloading this block? (estimate,
+          * because we might have the same request pending for multiple clients,
+          * and of course because a transmission may have failed at a lower
+          * layer).
           */
-          unsigned int trust_offered;
+          uint32_t respect_offered;
 
           /**
-          * How much time passed between us asking for this block and
-           * actually getting it? GNUNET_TIME_UNIT_FOREVER_REL if unknown.
+          * How often did we transmit the request? (estimate,
+          * because we might have the same request pending for multiple clients,
+          * and of course because a transmission may have failed at a lower
+          * layer).
           */
-          struct GNUNET_TIME_Relative block_download_duration;
+          uint32_t num_transmissions;
 
         } progress;
 
@@ -1383,7 +1394,7 @@ struct GNUNET_FS_ProgressInfo
           /**
           * Hash-identifier for the namespace.
           */
-          GNUNET_HashCode id;
+          struct GNUNET_HashCode id;
 
         } namespace;
 
@@ -1820,7 +1831,11 @@ GNUNET_FS_file_information_create_from_data (struct GNUNET_FS_Handle *h,
  * @param cls closure
  * @param offset offset to read from; it is possible
  *            that the caller might need to go backwards
- *            a bit at times
+ *            a bit at times; set to UINT64_MAX to tell
+ *            the reader that we won't be reading for a while
+ *            (used to close the file descriptor but NOT fully
+ *             clean up the reader's state); in this case,
+ *            a value of '0' for max should be ignored
  * @param max maximum number of bytes that should be
  *            copied to buf; readers are not allowed
  *            to provide less data unless there is an error;
@@ -2108,7 +2123,7 @@ GNUNET_FS_publish_sks_cancel (struct GNUNET_FS_PublishSksContext *psc);
  * @return GNUNET_OK to continue iteration, GNUNET_SYSERR to abort
  */
 typedef int (*GNUNET_FS_IndexedFileProcessor) (void *cls, const char *filename,
-                                               const GNUNET_HashCode * file_id);
+                                               const struct GNUNET_HashCode * file_id);
 
 
 /**
@@ -2207,7 +2222,7 @@ GNUNET_FS_namespace_advertise_cancel (struct GNUNET_FS_AdvertisementContext *ac)
  *
  * @param h handle to the file sharing subsystem
  * @param name name to use for the namespace
- * @return handle to the namespace, NULL on error
+ * @return handle to the namespace, NULL on error (i.e. invalid filename)
  */
 struct GNUNET_FS_Namespace *
 GNUNET_FS_namespace_create (struct GNUNET_FS_Handle *h, const char *name);
@@ -2248,7 +2263,7 @@ GNUNET_FS_namespace_delete (struct GNUNET_FS_Namespace *namespace, int freeze);
  * @param id hash identifier for the namespace
  */
 typedef void (*GNUNET_FS_NamespaceInfoProcessor) (void *cls, const char *name,
-                                                  const GNUNET_HashCode * id);
+                                                  const struct GNUNET_HashCode * id);
 
 
 /**