Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(639)

Unified Diff: webkit/fileapi/syncable/local_file_sync_status.cc

Issue 11238054: Add OnSyncEnabled/OnWriteEnabled notification handling to operation runner (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added export Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/fileapi/syncable/local_file_sync_status.cc
diff --git a/webkit/fileapi/syncable/local_file_sync_status.cc b/webkit/fileapi/syncable/local_file_sync_status.cc
index 3be00e3c92b19b3b24b6a204b2ea291486f428bb..e543306b0e6c5c3106fb5a18828b241e44dbf1b4 100644
--- a/webkit/fileapi/syncable/local_file_sync_status.cc
+++ b/webkit/fileapi/syncable/local_file_sync_status.cc
@@ -21,8 +21,10 @@ void LocalFileSyncStatus::StartWriting(const FileSystemURL& url) {
void LocalFileSyncStatus::EndWriting(const FileSystemURL& url) {
DCHECK(CalledOnValidThread());
int count = --writing_[url];
- if (count == 0)
+ if (count == 0) {
writing_.erase(url);
+ FOR_EACH_OBSERVER(Observer, observer_list_, OnSyncEnabled(url));
+ }
}
void LocalFileSyncStatus::StartSyncing(const FileSystemURL& url) {
@@ -34,6 +36,7 @@ void LocalFileSyncStatus::StartSyncing(const FileSystemURL& url) {
void LocalFileSyncStatus::EndSyncing(const FileSystemURL& url) {
DCHECK(CalledOnValidThread());
syncing_.erase(url);
+ FOR_EACH_OBSERVER(Observer, observer_list_, OnWriteEnabled(url));
}
bool LocalFileSyncStatus::IsWriting(const FileSystemURL& url) const {
@@ -46,6 +49,16 @@ bool LocalFileSyncStatus::IsWritable(const FileSystemURL& url) const {
return !IsChildOrParentSyncing(url);
}
+void LocalFileSyncStatus::AddObserver(Observer* observer) {
+ DCHECK(CalledOnValidThread());
+ observer_list_.AddObserver(observer);
+}
+
+void LocalFileSyncStatus::RemoveObserver(Observer* observer) {
+ DCHECK(CalledOnValidThread());
+ observer_list_.RemoveObserver(observer);
+}
+
bool LocalFileSyncStatus::IsChildOrParentWriting(
const FileSystemURL& url) const {
DCHECK(CalledOnValidThread());
« no previous file with comments | « webkit/fileapi/syncable/local_file_sync_status.h ('k') | webkit/fileapi/syncable/syncable_file_operation_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698