| Index: runtime/bin/directory.h
|
| diff --git a/runtime/bin/directory.h b/runtime/bin/directory.h
|
| index 835a3059dc5bbbc1705a5083aea16f6cdf711db7..0ab260609fba8d4204815146912012fd04357b9a 100644
|
| --- a/runtime/bin/directory.h
|
| +++ b/runtime/bin/directory.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include "bin/builtin.h"
|
| #include "bin/dartutils.h"
|
| +#include "bin/namespace.h"
|
| #include "bin/reference_counting.h"
|
| #include "bin/thread.h"
|
| #include "platform/globals.h"
|
| @@ -62,7 +63,7 @@ struct LinkList;
|
| class DirectoryListingEntry {
|
| public:
|
| explicit DirectoryListingEntry(DirectoryListingEntry* parent)
|
| - : parent_(parent), lister_(0), done_(false), link_(NULL) {}
|
| + : parent_(parent), fd_(-1), lister_(0), done_(false), link_(NULL) {}
|
|
|
| ~DirectoryListingEntry();
|
|
|
| @@ -78,6 +79,7 @@ class DirectoryListingEntry {
|
|
|
| private:
|
| DirectoryListingEntry* parent_;
|
| + intptr_t fd_;
|
| intptr_t lister_;
|
| bool done_;
|
| int path_length_;
|
| @@ -88,8 +90,12 @@ class DirectoryListingEntry {
|
|
|
| class DirectoryListing {
|
| public:
|
| - DirectoryListing(const char* dir_name, bool recursive, bool follow_links)
|
| - : top_(NULL),
|
| + DirectoryListing(Namespace* namespc,
|
| + const char* dir_name,
|
| + bool recursive,
|
| + bool follow_links)
|
| + : namespc_(namespc),
|
| + top_(NULL),
|
| error_(false),
|
| recursive_(recursive),
|
| follow_links_(follow_links) {
|
| @@ -124,6 +130,8 @@ class DirectoryListing {
|
| }
|
| }
|
|
|
| + Namespace* namespc() const { return namespc_; }
|
| +
|
| DirectoryListingEntry* top() const { return top_; }
|
|
|
| bool recursive() const { return recursive_; }
|
| @@ -138,6 +146,7 @@ class DirectoryListing {
|
|
|
| private:
|
| PathBuffer path_buffer_;
|
| + Namespace* namespc_;
|
| DirectoryListingEntry* top_;
|
| bool error_;
|
| bool recursive_;
|
| @@ -155,9 +164,12 @@ class AsyncDirectoryListing : public ReferenceCounted<AsyncDirectoryListing>,
|
| kListDone = 4
|
| };
|
|
|
| - AsyncDirectoryListing(const char* dir_name, bool recursive, bool follow_links)
|
| + AsyncDirectoryListing(Namespace* namespc,
|
| + const char* dir_name,
|
| + bool recursive,
|
| + bool follow_links)
|
| : ReferenceCounted(),
|
| - DirectoryListing(dir_name, recursive, follow_links),
|
| + DirectoryListing(namespc, dir_name, recursive, follow_links),
|
| array_(NULL),
|
| index_(0),
|
| length_(0) {}
|
| @@ -191,10 +203,11 @@ class AsyncDirectoryListing : public ReferenceCounted<AsyncDirectoryListing>,
|
| class SyncDirectoryListing : public DirectoryListing {
|
| public:
|
| SyncDirectoryListing(Dart_Handle results,
|
| + Namespace* namespc,
|
| const char* dir_name,
|
| bool recursive,
|
| bool follow_links)
|
| - : DirectoryListing(dir_name, recursive, follow_links),
|
| + : DirectoryListing(namespc, dir_name, recursive, follow_links),
|
| results_(results),
|
| dart_error_(Dart_Null()) {
|
| add_string_ = DartUtils::NewString("add");
|
| @@ -227,7 +240,7 @@ class Directory {
|
| enum ExistsResult { UNKNOWN, EXISTS, DOES_NOT_EXIST };
|
|
|
| static void List(DirectoryListing* listing);
|
| - static ExistsResult Exists(const char* path);
|
| + static ExistsResult Exists(Namespace* namespc, const char* path);
|
|
|
| // Returns the current working directory. The caller must call
|
| // free() on the result.
|
| @@ -235,15 +248,17 @@ class Directory {
|
|
|
| // Returns the current working directory. The returned string is allocated
|
| // with Dart_ScopeAllocate(). It lasts only as long as the current API scope.
|
| - static const char* Current();
|
| - static const char* SystemTemp();
|
| - static const char* CreateTemp(const char* path);
|
| + static const char* Current(Namespace* namespc);
|
| + static const char* SystemTemp(Namespace* namespc);
|
| + static const char* CreateTemp(Namespace* namespc, const char* path);
|
| // Set the system temporary directory.
|
| static void SetSystemTemp(const char* path);
|
| - static bool SetCurrent(const char* path);
|
| - static bool Create(const char* path);
|
| - static bool Delete(const char* path, bool recursive);
|
| - static bool Rename(const char* path, const char* new_path);
|
| + static bool SetCurrent(Namespace* namespc, const char* path);
|
| + static bool Create(Namespace* namespc, const char* path);
|
| + static bool Delete(Namespace* namespc, const char* path, bool recursive);
|
| + static bool Rename(Namespace* namespc,
|
| + const char* path,
|
| + const char* new_path);
|
|
|
| static CObject* CreateRequest(const CObjectArray& request);
|
| static CObject* DeleteRequest(const CObjectArray& request);
|
|
|