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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_file_system.h

Issue 10832241: Drive: Removes unused cache files after the initial feed fetch. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix the memory leak. Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/chromeos/gdata/gdata_file_system.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_
6 #define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ 6 #define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 16 matching lines...) Expand all
27 namespace base { 27 namespace base {
28 class SequencedTaskRunner; 28 class SequencedTaskRunner;
29 } 29 }
30 30
31 namespace gdata { 31 namespace gdata {
32 32
33 class DocumentsServiceInterface; 33 class DocumentsServiceInterface;
34 class DriveWebAppsRegistryInterface; 34 class DriveWebAppsRegistryInterface;
35 class GDataUploaderInterface; 35 class GDataUploaderInterface;
36 class GDataWapiFeedLoader; 36 class GDataWapiFeedLoader;
37 class StaleCacheFilesRemover;
37 struct UploadFileInfo; 38 struct UploadFileInfo;
38 39
39 // The production implementation of GDataFileSystemInterface. 40 // The production implementation of GDataFileSystemInterface.
40 class GDataFileSystem : public GDataFileSystemInterface, 41 class GDataFileSystem : public GDataFileSystemInterface,
41 public GDataWapiFeedLoader::Observer, 42 public GDataWapiFeedLoader::Observer,
42 public content::NotificationObserver { 43 public content::NotificationObserver {
43 public: 44 public:
44 GDataFileSystem(Profile* profile, 45 GDataFileSystem(Profile* profile,
45 GDataCache* cache, 46 GDataCache* cache,
46 DocumentsServiceInterface* documents_service, 47 DocumentsServiceInterface* documents_service,
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 GDataFileError error, 803 GDataFileError error,
803 const std::string& resource_id, 804 const std::string& resource_id,
804 const std::string& md5, 805 const std::string& md5,
805 const FilePath& local_cache_path); 806 const FilePath& local_cache_path);
806 void CheckLocalModificationAndRunAfterGetFileInfo( 807 void CheckLocalModificationAndRunAfterGetFileInfo(
807 scoped_ptr<GDataEntryProto> entry_proto, 808 scoped_ptr<GDataEntryProto> entry_proto,
808 const GetEntryInfoCallback& callback, 809 const GetEntryInfoCallback& callback,
809 base::PlatformFileInfo* file_info, 810 base::PlatformFileInfo* file_info,
810 bool* get_file_info_result); 811 bool* get_file_info_result);
811 812
812 // All members should be accessed only on UI thread. Do not post tasks to
813 // other threads with base::Unretained(this).
814 scoped_ptr<GDataDirectoryService> directory_service_;
815
816 // The profile hosts the GDataFileSystem via GDataSystemService. 813 // The profile hosts the GDataFileSystem via GDataSystemService.
817 Profile* profile_; 814 Profile* profile_;
818 815
819 // The cache owned by GDataSystemService. 816 // The cache owned by GDataSystemService.
820 GDataCache* cache_; 817 GDataCache* cache_;
821 818
822 // The uploader owned by GDataSystemService. 819 // The uploader owned by GDataSystemService.
823 GDataUploaderInterface* uploader_; 820 GDataUploaderInterface* uploader_;
824 821
825 // The document service owned by GDataSystemService. 822 // The document service owned by GDataSystemService.
826 DocumentsServiceInterface* documents_service_; 823 DocumentsServiceInterface* documents_service_;
827 824
828 // The webapps registry owned by GDataSystemService. 825 // The webapps registry owned by GDataSystemService.
829 DriveWebAppsRegistryInterface* webapps_registry_; 826 DriveWebAppsRegistryInterface* webapps_registry_;
830 827
831 // Periodic timer for checking updates. 828 // Periodic timer for checking updates.
832 base::Timer update_timer_; 829 base::Timer update_timer_;
833 830
834 // True if hosted documents should be hidden. 831 // True if hosted documents should be hidden.
835 bool hide_hosted_docs_; 832 bool hide_hosted_docs_;
836 833
837 // The set of paths opened by OpenFile but not yet closed by CloseFile. 834 // The set of paths opened by OpenFile but not yet closed by CloseFile.
838 std::set<FilePath> open_files_; 835 std::set<FilePath> open_files_;
839 836
837 // Note: |observers_| should be placed before all the objects this class owns,
838 // because some of them may add themselves into the observers, so this should
839 // be constructed before them and be destructed after them.
satorux1 2012/08/21 20:57:06 Wow, that's subtle. If so, why don't you move this
satorux1 2012/08/21 21:29:06 Sorry, I misunderstood. So the observer list has t
840 ObserverList<GDataFileSystemInterface::Observer> observers_;
841
842 // All members should be accessed only on UI thread. Do not post tasks to
843 // other threads with base::Unretained(this).
844 scoped_ptr<GDataDirectoryService> directory_service_;
845
840 scoped_ptr<PrefChangeRegistrar> pref_registrar_; 846 scoped_ptr<PrefChangeRegistrar> pref_registrar_;
841 847
842 // The loader is used to load the feeds. 848 // The loader is used to load the feeds.
843 scoped_ptr<GDataWapiFeedLoader> feed_loader_; 849 scoped_ptr<GDataWapiFeedLoader> feed_loader_;
844 850
845 ObserverList<GDataFileSystemInterface::Observer> observers_; 851 // The remover is used to remove stale cache files.
852 scoped_ptr<StaleCacheFilesRemover> stale_cache_files_remover_;
846 853
847 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; 854 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
848 855
849 // WeakPtrFactory and WeakPtr bound to the UI thread. 856 // WeakPtrFactory and WeakPtr bound to the UI thread.
850 // Note: These should remain the last member so they'll be destroyed and 857 // Note: These should remain the last member so they'll be destroyed and
851 // invalidate the weak pointers before any other members are destroyed. 858 // invalidate the weak pointers before any other members are destroyed.
852 base::WeakPtrFactory<GDataFileSystem> ui_weak_ptr_factory_; 859 base::WeakPtrFactory<GDataFileSystem> ui_weak_ptr_factory_;
853 // Unlike other classes, we need this as we need this to redirect a task 860 // Unlike other classes, we need this as we need this to redirect a task
854 // from IO thread to UI thread. 861 // from IO thread to UI thread.
855 base::WeakPtr<GDataFileSystem> ui_weak_ptr_; 862 base::WeakPtr<GDataFileSystem> ui_weak_ptr_;
856 }; 863 };
857 864
858 } // namespace gdata 865 } // namespace gdata
859 866
860 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ 867 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/gdata/gdata_file_system.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698