Index: runtime/bin/directory.dart |
diff --git a/runtime/bin/directory.dart b/runtime/bin/directory.dart |
index 050f601e1727cb9eb85db7cfbb9b02c6f9ab458b..6cda57c8441a0995fc2160aedcc7114f8de03bfd 100644 |
--- a/runtime/bin/directory.dart |
+++ b/runtime/bin/directory.dart |
@@ -20,11 +20,10 @@ interface Directory default _Directory { |
Directory.current(); |
/** |
- * Check whether a directory with this name already exists. If the |
- * operation completes successfully the callback is called with the |
- * result. Otherwise [onError] is called. |
+ * Check whether a directory with this name already exists. Returns |
+ * a [:Future<bool>:] that completes with the result. |
*/ |
- void exists(void callback(bool exists)); |
+ Future<bool> exists(); |
/** |
* Synchronously check whether a directory with this name already exists. |
@@ -32,11 +31,11 @@ interface Directory default _Directory { |
bool existsSync(); |
/** |
- * Creates the directory with this name if it does not exist. If |
- * the directory is successfully created the callback is |
- * called. Otherwise [onError] is called. |
+ * Creates the directory with this name if it does not |
+ * exist. Returns a [:Future<Directory>:] that completes with this |
+ * directory once it has been created. |
*/ |
- void create(void callback()); |
+ Future<Directory> create(); |
/** |
* Synchronously creates the directory with this name if it does not exist. |
@@ -51,36 +50,26 @@ interface Directory default _Directory { |
* directory name. If the path is the empty string, a default |
* system temp directory and name are used for the template. |
* |
- * The path is modified to be the path of the new directory. After |
- * the new directory is created, and the path modified, the callback |
- * will be called. The error handler is called if the temporary |
- * directory cannot be created. |
+ * Returns a [:Future<Directory>:] that completes with the newly |
+ * created temporary directory. |
*/ |
- void createTemp(void callback()); |
+ Future<Directory> createTemp(); |
/** |
* Synchronously creates a temporary directory with a name based on the |
* current path. This name and path is used as a template, and additional |
* characters are appended to it by the call to make a unique directory name. |
* If the path is the empty string, a default system temp directory and name |
- * are used for the template. |
- * The path is modified to be the path of the new directory. |
+ * are used for the template. Returns the newly created temporary directory. |
*/ |
- void createTempSync(); |
+ Directory createTempSync(); |
/** |
* Deletes the directory with this name. The directory must be |
- * empty. If the operation completes successfully the callback is |
- * called. Otherwise [onError] is called. |
+ * empty. Returns a [:Future<Directory>:] that completes with |
+ * this directory when the deletion is done. |
*/ |
- void delete(void callback()); |
- |
- /** |
- * Deletes this directory and all sub-directories and files in the |
- * directories. If the operation completes successfully the callback |
- * is called. Otherwise [onError] is called. |
- */ |
- void deleteRecursively(void callback()); |
+ Future<Directory> delete(); |
/** |
* Synchronously deletes the directory with this name. The directory |
@@ -90,6 +79,13 @@ interface Directory default _Directory { |
void deleteSync(); |
/** |
+ * Deletes this directory and all sub-directories and files in the |
+ * directories. Returns a [:Future<Directory>:] that completes with |
+ * this directory when the deletion is done. |
+ */ |
+ Future<Directory> deleteRecursively(); |
+ |
+ /** |
* Synchronously deletes this directory and all sub-directories and |
* files in the directories. Throws an exception if the directory |
* cannot be deleted. |
@@ -98,49 +94,54 @@ interface Directory default _Directory { |
/** |
* List the sub-directories and files of this |
- * [Directory]. Optionally recurse into sub-directories. For each |
- * file and directory, the file or directory handler is called. When |
- * all directories have been listed the done handler is called. If |
- * the listing operation is recursive, the error handler is called |
- * if a subdirectory cannot be opened for listing. |
+ * [Directory]. Optionally recurse into sub-directories. Returns a |
+ * [DirectoryLister] object representing the active listing |
+ * operation. Handlers for files and directories should be |
+ * registered on this DirectoryLister object. |
+ */ |
+ DirectoryLister list([bool recursive]); |
+ |
+ /** |
+ * Gets the path of this directory. |
*/ |
- // TODO(ager): Should we change this to return an event emitting |
- // DirectoryLister object. Alternatively, pass in one callback that |
- // gets called with an indication of whether what it is called with |
- // is a file, a directory or an indication that the listing is over. |
- void list([bool recursive]); |
+ final String path; |
+} |
+ |
+/** |
+ * A [DirectoryLister] represents an actively running listing operation. |
+ * |
+ * For each file and directory, the file or directory handler is |
+ * called. When all directories have been listed the done handler is |
+ * called. If the listing operation is recursive, the error handler is |
+ * called if a subdirectory cannot be opened for listing. |
+ */ |
+interface DirectoryLister default _DirectoryLister { |
/** |
* Sets the directory handler that is called for all directories |
- * during listing operations. The directory handler is called with |
- * the full path of the directory. |
+ * during listing. The directory handler is called with the full |
+ * path of the directory. |
*/ |
void set onDir(void onDir(String dir)); |
/** |
- * Sets the handler that is called for all files during listing |
- * operations. The file handler is called with the full path of the |
- * file. |
+ * Sets the handler that is called for all files during listing. The |
+ * file handler is called with the full path of the file. |
*/ |
void set onFile(void onFile(String file)); |
/** |
- * Set the handler that is called when a directory listing is |
- * done. The handler is called with an indication of whether or not |
- * the listing operation completed. |
+ * Set the handler that is called when a listing is done. The |
+ * handler is called with an indication of whether or not the |
+ * listing operation completed. |
*/ |
void set onDone(void onDone(bool completed)); |
/** |
- * Sets the handler that is called if there is an error while listing |
- * or creating directories. |
+ * Sets the handler that is called if there is an error while |
+ * listing directories. |
*/ |
void set onError(void onError(e)); |
- |
- /** |
- * Gets the path of this directory. |
- */ |
- final String path; |
} |