Skip to content

Commit

Permalink
[ew] Add basic classes.
Browse files Browse the repository at this point in the history
This patch adds a EntryWatcherService, which is a bridge between extensions and
fileapi. Also, WatcherManager interface has been created to let backends
implement their own watching logic.

Note, that EntryWatcherService is not wired up to File System API yet. Also,
a lot of features are missing.

TBR=noamsml, jcivelli
TEST=unit_tests: *EntryWatcherService*
BUG=261491

Review URL: https://codereview.chromium.org/452043003

Cr-Commit-Position: refs/heads/master@{#292327}
  • Loading branch information
mtomasz-chromium authored and Commit bot committed Aug 28, 2014
1 parent eacf155 commit b75244f
Show file tree
Hide file tree
Showing 37 changed files with 1,030 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,10 @@ FileSystemBackendDelegate::CreateFileStreamWriter(
offset));
}

storage::WatcherManager* FileSystemBackendDelegate::GetWatcherManager(
const storage::FileSystemURL& url) {
NOTIMPLEMENTED();
return NULL;
}

} // namespace drive
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@

namespace storage {
class AsyncFileUtil;
class FileSystemContext;
class FileStreamReader;
class FileSystemURL;
class FileStreamWriter;
class WatcherManager;
} // namespace storage

namespace drive {
Expand All @@ -34,6 +39,8 @@ class FileSystemBackendDelegate : public chromeos::FileSystemBackendDelegate {
const storage::FileSystemURL& url,
int64 offset,
storage::FileSystemContext* context) OVERRIDE;
virtual storage::WatcherManager* GetWatcherManager(
const storage::FileSystemURL& url) OVERRIDE;

private:
scoped_ptr<storage::AsyncFileUtil> async_file_util_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,11 @@ scoped_ptr<storage::FileStreamWriter> BackendDelegate::CreateFileStreamWriter(
new FileStreamWriter(url, offset));
}

storage::WatcherManager* BackendDelegate::GetWatcherManager(
const storage::FileSystemURL& url) {
NOTIMPLEMENTED();
return NULL;
}

} // namespace file_system_provider
} // namespace chromeos
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,17 @@
#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FILEAPI_BACKEND_DELEGATE_H_

#include "base/basictypes.h"
#include "base/file_util.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/chromeos/fileapi/file_system_backend_delegate.h"

namespace storage {
class AsyncFileUtil;
class FileSystemContext;
class FileStreamReader;
class FileSystemURL;
class FileStreamWriter;
class WatcherManager;
} // namespace storage

namespace chromeos {
Expand All @@ -35,6 +41,8 @@ class BackendDelegate : public chromeos::FileSystemBackendDelegate {
const storage::FileSystemURL& url,
int64 offset,
storage::FileSystemContext* context) OVERRIDE;
virtual storage::WatcherManager* GetWatcherManager(
const storage::FileSystemURL& url) OVERRIDE;

private:
scoped_ptr<storage::AsyncFileUtil> async_file_util_;
Expand Down
5 changes: 5 additions & 0 deletions chrome/browser/chromeos/fileapi/file_system_backend.cc
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,11 @@ storage::AsyncFileUtil* FileSystemBackend::GetAsyncFileUtil(
return NULL;
}

storage::WatcherManager* FileSystemBackend::GetWatcherManager(
storage::FileSystemType type) {
return NULL;
}

storage::CopyOrMoveFileValidatorFactory*
FileSystemBackend::GetCopyOrMoveFileValidatorFactory(
storage::FileSystemType type,
Expand Down
3 changes: 3 additions & 0 deletions chrome/browser/chromeos/fileapi/file_system_backend.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ namespace storage {
class CopyOrMoveFileValidatorFactory;
class ExternalMountPoints;
class FileSystemURL;
class WatcherManager;
} // namespace storage

namespace chromeos {
Expand Down Expand Up @@ -93,6 +94,8 @@ class FileSystemBackend : public storage::ExternalFileSystemBackend {
const OpenFileSystemCallback& callback) OVERRIDE;
virtual storage::AsyncFileUtil* GetAsyncFileUtil(
storage::FileSystemType type) OVERRIDE;
virtual storage::WatcherManager* GetWatcherManager(
storage::FileSystemType type) OVERRIDE;
virtual storage::CopyOrMoveFileValidatorFactory*
GetCopyOrMoveFileValidatorFactory(storage::FileSystemType type,
base::File::Error* error_code) OVERRIDE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ class Time;
namespace storage {
class AsyncFileUtil;
class FileSystemContext;
class FileStreamReader;
class FileSystemURL;
class FileStreamWriter;
class WatcherManager;
} // namespace storage

namespace storage {
Expand All @@ -27,7 +29,7 @@ class FileStreamReader;
namespace chromeos {

// This is delegate interface to inject the implementation of the some methods
// of FileSystemBackend. The main goal is to inject Drive File System.
// of FileSystemBackend.
class FileSystemBackendDelegate {
public:
virtual ~FileSystemBackendDelegate() {}
Expand All @@ -48,6 +50,11 @@ class FileSystemBackendDelegate {
const storage::FileSystemURL& url,
int64 offset,
storage::FileSystemContext* context) = 0;

// Called from the FileSystemWatcherService class. The returned pointer must
// stay valid until shutdown.
virtual storage::WatcherManager* GetWatcherManager(
const storage::FileSystemURL& url) = 0;
};

} // namespace chromeos
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,10 @@ MTPFileSystemBackendDelegate::CreateFileStreamWriter(
return scoped_ptr<storage::FileStreamWriter>();
}

storage::WatcherManager* MTPFileSystemBackendDelegate::GetWatcherManager(
const storage::FileSystemURL& url) {
NOTIMPLEMENTED();
return NULL;
}

} // namespace chromeos
11 changes: 11 additions & 0 deletions chrome/browser/chromeos/fileapi/mtp_file_system_backend_delegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ namespace base {
class FilePath;
} // namespace base

namespace storage {
class AsyncFileUtil;
class FileSystemContext;
class FileStreamReader;
class FileSystemURL;
class FileStreamWriter;
class WatcherManager;
} // namespace storage

class DeviceMediaAsyncFileUtil;

namespace chromeos {
Expand All @@ -36,6 +45,8 @@ class MTPFileSystemBackendDelegate : public FileSystemBackendDelegate {
const storage::FileSystemURL& url,
int64 offset,
storage::FileSystemContext* context) OVERRIDE;
virtual storage::WatcherManager* GetWatcherManager(
const storage::FileSystemURL& url) OVERRIDE;

private:
scoped_ptr<DeviceMediaAsyncFileUtil> device_media_async_file_util_;
Expand Down
1 change: 1 addition & 0 deletions chrome/browser/extensions/api/file_system/OWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
benwells@chromium.org
mtomasz@chromium.org
sammc@chromium.org
Loading

0 comments on commit b75244f

Please sign in to comment.