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

Unified Diff: webkit/fileapi/syncable/local_file_change_tracker.h

Issue 15806012: Move webkit/fileapi/syncable/* code to webkit/browser/fileapi (final!) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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_change_tracker.h
diff --git a/webkit/fileapi/syncable/local_file_change_tracker.h b/webkit/fileapi/syncable/local_file_change_tracker.h
deleted file mode 100644
index df28df30f2ec61201032421cf1873526134934b0..0000000000000000000000000000000000000000
--- a/webkit/fileapi/syncable/local_file_change_tracker.h
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef WEBKIT_FILEAPI_SYNCABLE_LOCAL_FILE_CHANGE_TRACKER_H_
-#define WEBKIT_FILEAPI_SYNCABLE_LOCAL_FILE_CHANGE_TRACKER_H_
-
-#include <deque>
-#include <map>
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/files/file_path.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/synchronization/lock.h"
-#include "webkit/browser/fileapi/file_observers.h"
-#include "webkit/browser/fileapi/file_system_url.h"
-#include "webkit/fileapi/syncable/file_change.h"
-#include "webkit/fileapi/syncable/sync_status_code.h"
-#include "webkit/storage/webkit_storage_export.h"
-
-namespace base {
-class SequencedTaskRunner;
-}
-
-namespace fileapi {
-class FileSystemContext;
-class FileSystemURL;
-}
-
-namespace sync_file_system {
-
-// Tracks local file changes for cloud-backed file systems.
-// All methods must be called on the file_task_runner given to the constructor.
-// Owned by FileSystemContext.
-class WEBKIT_STORAGE_EXPORT LocalFileChangeTracker
- : public fileapi::FileUpdateObserver,
- public fileapi::FileChangeObserver {
- public:
- // |file_task_runner| must be the one where the observee file operations run.
- // (So that we can make sure DB operations are done before actual update
- // happens)
- LocalFileChangeTracker(const base::FilePath& base_path,
- base::SequencedTaskRunner* file_task_runner);
- virtual ~LocalFileChangeTracker();
-
- // FileUpdateObserver overrides.
- virtual void OnStartUpdate(const fileapi::FileSystemURL& url) OVERRIDE;
- virtual void OnUpdate(
- const fileapi::FileSystemURL& url, int64 delta) OVERRIDE {}
- virtual void OnEndUpdate(const fileapi::FileSystemURL& url) OVERRIDE;
-
- // FileChangeObserver overrides.
- virtual void OnCreateFile(const fileapi::FileSystemURL& url) OVERRIDE;
- virtual void OnCreateFileFrom(const fileapi::FileSystemURL& url,
- const fileapi::FileSystemURL& src) OVERRIDE;
- virtual void OnRemoveFile(const fileapi::FileSystemURL& url) OVERRIDE;
- virtual void OnModifyFile(const fileapi::FileSystemURL& url) OVERRIDE;
- virtual void OnCreateDirectory(const fileapi::FileSystemURL& url) OVERRIDE;
- virtual void OnRemoveDirectory(const fileapi::FileSystemURL& url) OVERRIDE;
-
- // Retrieves an array of |url| which have more than one pending changes.
- // If |max_urls| is non-zero (recommended in production code) this
- // returns URLs up to the number from the ones that have smallest
- // change_seq numbers (i.e. older changes).
- void GetNextChangedURLs(std::deque<fileapi::FileSystemURL>* urls,
- int max_urls);
-
- // Returns all changes recorded for the given |url|.
- // This should be called after writing is disabled.
- void GetChangesForURL(const fileapi::FileSystemURL& url,
- FileChangeList* changes);
-
- // Clears the pending changes recorded in this tracker for |url|.
- void ClearChangesForURL(const fileapi::FileSystemURL& url);
-
- // Called by FileSyncService at the startup time to restore last dirty changes
- // left after the last shutdown (if any).
- SyncStatusCode Initialize(fileapi::FileSystemContext* file_system_context);
-
- // This method is (exceptionally) thread-safe.
- int64 num_changes() const {
- base::AutoLock lock(num_changes_lock_);
- return num_changes_;
- }
-
- void UpdateNumChanges();
-
- private:
- class TrackerDB;
- friend class CannedSyncableFileSystem;
- friend class LocalFileChangeTrackerTest;
- friend class LocalFileSyncContext;
- friend class SyncableFileSystemTest;
-
- struct ChangeInfo {
- ChangeInfo();
- ~ChangeInfo();
- FileChangeList change_list;
- int64 change_seq;
- };
-
- typedef std::map<fileapi::FileSystemURL, ChangeInfo,
- fileapi::FileSystemURL::Comparator>
- FileChangeMap;
- typedef std::map<int64, fileapi::FileSystemURL> ChangeSeqMap;
-
- // This does mostly same as calling GetNextChangedURLs with max_url=0
- // except that it returns urls in set rather than in deque.
- // Used only in testings.
- void GetAllChangedURLs(fileapi::FileSystemURLSet* urls);
-
- // Used only in testings.
- void DropAllChanges();
-
- // Database related methods.
- SyncStatusCode MarkDirtyOnDatabase(const fileapi::FileSystemURL& url);
- SyncStatusCode ClearDirtyOnDatabase(const fileapi::FileSystemURL& url);
-
- SyncStatusCode CollectLastDirtyChanges(
- fileapi::FileSystemContext* file_system_context);
- void RecordChange(const fileapi::FileSystemURL& url,
- const FileChange& change);
-
- bool initialized_;
-
- scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
-
- FileChangeMap changes_;
- ChangeSeqMap change_seqs_;
-
- scoped_ptr<TrackerDB> tracker_db_;
-
- // Change sequence number. Briefly gives a hint about the order of changes,
- // but they are updated when a new change comes on the same file (as
- // well as Drive's changestamps).
- int64 current_change_seq_;
-
- // This can be accessed on any threads (with num_changes_lock_).
- int64 num_changes_;
- mutable base::Lock num_changes_lock_;
-
- DISALLOW_COPY_AND_ASSIGN(LocalFileChangeTracker);
-};
-
-} // namespace sync_file_system
-
-#endif // WEBKIT_FILEAPI_SYNCABLE_LOCAL_FILE_CHANGE_TRACKER_H_
« no previous file with comments | « webkit/fileapi/syncable/file_change_unittest.cc ('k') | webkit/fileapi/syncable/local_file_change_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698