-int GNUNET_DISK_directory_scan (const char *dirName,
- GNUNET_FileNameCallback callback,
- void *callback_cls);
-
-
-/**
- * Opaque handle used for iterating over a directory.
- */
-struct GNUNET_DISK_DirectoryIterator;
-
-
-/**
- * Function called to iterate over a directory.
- *
- * @param cls closure
- * @param di argument to pass to "GNUNET_DISK_directory_iterator_next" to
- * get called on the next entry (or finish cleanly)
- * @param filename complete filename (absolute path)
- * @param dirname directory name (absolute path)
- */
-typedef void (*GNUNET_DISK_DirectoryIteratorCallback) (void *cls,
- struct
- GNUNET_DISK_DirectoryIterator
- * di,
- const char *filename,
- const char *dirname);
-
-
-/**
- * This function must be called during the DiskIteratorCallback
- * (exactly once) to schedule the task to process the next
- * filename in the directory (if there is one).
- *
- * @param iter opaque handle for the iterator
- * @param can set to GNUNET_YES to terminate the iteration early
- * @return GNUNET_YES if iteration will continue,
- * GNUNET_NO if this was the last entry (and iteration is complete),
- * GNUNET_SYSERR if "can" was YES
- */
-int GNUNET_DISK_directory_iterator_next (struct GNUNET_DISK_DirectoryIterator
- *iter, int can);
-
-
-/**
- * Scan a directory for files using the scheduler to run a task for
- * each entry. The name of the directory must be expanded first (!).
- * If a scheduler does not need to be used, GNUNET_DISK_directory_scan
- * may provide a simpler API.
- *
- * @param sched scheduler to use
- * @param prio priority to use
- * @param dirName the name of the directory
- * @param callback the method to call for each file
- * @param callback_cls closure for callback
- */
-void GNUNET_DISK_directory_iterator_start (struct GNUNET_SCHEDULER_Handle
- *sched,
- enum GNUNET_SCHEDULER_Priority
- prio, const char *dirName,
- GNUNET_DISK_DirectoryIteratorCallback
- callback, void *callback_cls);