Chromium Code Reviews| Index: chrome/browser/chromeos/gdata/gdata_file_system.cc |
| diff --git a/chrome/browser/chromeos/gdata/gdata_file_system.cc b/chrome/browser/chromeos/gdata/gdata_file_system.cc |
| index 6731fe02feeadf6697e98c6ba2fd134483e5dd1e..d10f8f719fee09dcd54029fe839a1b10946d7bda 100644 |
| --- a/chrome/browser/chromeos/gdata/gdata_file_system.cc |
| +++ b/chrome/browser/chromeos/gdata/gdata_file_system.cc |
| @@ -558,8 +558,36 @@ void RunGetEntryInfoWithFilePathCallback( |
| } // namespace |
| -// GDataFileSystem::GetDocumentsParams struct implementation. |
| -struct GDataFileSystem::GetDocumentsParams { |
| +GDataWapiFeedLoader::GDataWapiFeedLoader( |
| + GDataDirectoryService* directory_service, |
| + DocumentsServiceInterface* documents_service, |
| + DriveWebAppsRegistryInterface* webapps_registry, |
| + GDataCache* cache, |
| + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner) |
| + : directory_service_(directory_service), |
| + documents_service_(documents_service), |
| + webapps_registry_(webapps_registry), |
| + cache_(cache), |
| + blocking_task_runner_(blocking_task_runner), |
| + weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
| +} |
| + |
| +GDataWapiFeedLoader::~GDataWapiFeedLoader() { |
| +} |
| + |
| +void GDataWapiFeedLoader::AddObserver(Observer* observer) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + observers_.AddObserver(observer); |
| +} |
| + |
| +void GDataWapiFeedLoader::RemoveObserver(Observer* observer) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + observers_.RemoveObserver(observer); |
| +} |
| + |
| +// Defines set of parameters sent to callback OnGetDocuments(). |
| +// TODO(satorux): Move this to a new file: crbug.com/138268 |
| +struct GetDocumentsParams { |
| GetDocumentsParams(int start_changestamp, |
| int root_feed_changestamp, |
| std::vector<DocumentFeed*>* feed_list, |
| @@ -586,7 +614,7 @@ struct GDataFileSystem::GetDocumentsParams { |
| FindEntryCallback callback; |
| }; |
| -GDataFileSystem::GetDocumentsParams::GetDocumentsParams( |
| +GetDocumentsParams::GetDocumentsParams( |
| int start_changestamp, |
| int root_feed_changestamp, |
| std::vector<DocumentFeed*>* feed_list, |
| @@ -605,7 +633,7 @@ GDataFileSystem::GetDocumentsParams::GetDocumentsParams( |
| callback(callback) { |
| } |
| -GDataFileSystem::GetDocumentsParams::~GetDocumentsParams() { |
| +GetDocumentsParams::~GetDocumentsParams() { |
| STLDeleteElements(feed_list.get()); |
| } |
| @@ -747,6 +775,12 @@ void GDataFileSystem::Initialize() { |
| documents_service_->Initialize(profile_); |
| directory_service_.reset(new GDataDirectoryService); |
| + feed_loader_.reset(new GDataWapiFeedLoader(directory_service_.get(), |
| + documents_service_, |
| + webapps_registry_, |
| + cache_, |
| + blocking_task_runner_)); |
| + feed_loader_->AddObserver(this); |
| PrefService* pref_service = profile_->GetPrefs(); |
| hide_hosted_docs_ = pref_service->GetBoolean(prefs::kDisableGDataHostedFiles); |
| @@ -759,7 +793,7 @@ void GDataFileSystem::CheckForUpdates() { |
| ContentOrigin initial_origin = directory_service_->origin(); |
| if (initial_origin == FROM_SERVER) { |
| directory_service_->set_origin(REFRESHING); |
| - ReloadFeedFromServerIfNeeded( |
| + feed_loader_->ReloadFromServerIfNeeded( |
| initial_origin, |
| directory_service_->largest_changestamp(), |
| directory_service_->root()->GetFilePath(), |
| @@ -783,17 +817,21 @@ GDataFileSystem::~GDataFileSystem() { |
| // This should be called from UI thread, from GDataSystemService shutdown. |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + feed_loader_->RemoveObserver(this); |
| + |
| // Cancel all the in-flight operations. |
| // This asynchronously cancels the URL fetch operations. |
| documents_service_->CancelAll(); |
| } |
| -void GDataFileSystem::AddObserver(Observer* observer) { |
| +void GDataFileSystem::AddObserver( |
| + GDataFileSystemInterface::Observer* observer) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| observers_.AddObserver(observer); |
| } |
| -void GDataFileSystem::RemoveObserver(Observer* observer) { |
| +void GDataFileSystem::RemoveObserver( |
| + GDataFileSystemInterface::Observer* observer) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| observers_.RemoveObserver(observer); |
| } |
| @@ -876,7 +914,7 @@ void GDataFileSystem::FindEntryByPathAsyncOnUIThread( |
| // Load root feed from this disk cache. Upon completion, kick off server |
| // fetching. |
| directory_service_->set_origin(INITIALIZING); |
| - LoadRootFeedFromCache( |
| + feed_loader_->LoadFromCache( |
| true, // should_load_from_server |
| search_file_path, |
| // This is the initial load, hence we'll notify when it's done. |
| @@ -901,12 +939,10 @@ void GDataFileSystem::FindEntryByPathSyncOnUIThread( |
| const FindEntryCallback& callback) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - GDataEntry* entry = directory_service_->FindEntryByPathSync( |
| - search_file_path); |
| - callback.Run(entry ? GDATA_FILE_OK : GDATA_FILE_ERROR_NOT_FOUND, entry); |
| + directory_service_->FindEntryByPathAndRunSync(search_file_path, callback); |
| } |
| -void GDataFileSystem::ReloadFeedFromServerIfNeeded( |
| +void GDataWapiFeedLoader::ReloadFromServerIfNeeded( |
| ContentOrigin initial_origin, |
| int local_changestamp, |
| const FilePath& search_file_path, |
| @@ -916,7 +952,7 @@ void GDataFileSystem::ReloadFeedFromServerIfNeeded( |
| // First fetch the latest changestamp to see if there were any new changes |
| // there at all. |
| documents_service_->GetAccountMetadata( |
| - base::Bind(&GDataFileSystem::OnGetAccountMetadata, |
| + base::Bind(&GDataWapiFeedLoader::OnGetAccountMetadata, |
| weak_ptr_factory_.GetWeakPtr(), |
| initial_origin, |
| local_changestamp, |
| @@ -924,7 +960,7 @@ void GDataFileSystem::ReloadFeedFromServerIfNeeded( |
| callback)); |
| } |
| -void GDataFileSystem::OnGetAccountMetadata( |
| +void GDataWapiFeedLoader::OnGetAccountMetadata( |
| ContentOrigin initial_origin, |
| int local_changestamp, |
| const FilePath& search_file_path, |
| @@ -936,14 +972,14 @@ void GDataFileSystem::OnGetAccountMetadata( |
| GDataFileError error = GDataToGDataFileError(status); |
| if (error != GDATA_FILE_OK) { |
| // Get changes starting from the next changestamp from what we have locally. |
| - LoadFeedFromServer(initial_origin, |
| + LoadFromServer(initial_origin, |
| local_changestamp + 1, 0, |
|
achuithb
2012/08/02 01:38:25
nit: indentation
satorux1
2012/08/02 07:22:51
Done.
|
| true, /* should_fetch_multiple_feeds */ |
| search_file_path, |
| std::string() /* no search query */, |
| std::string() /* no directory resource ID */, |
| callback, |
| - base::Bind(&GDataFileSystem::OnFeedFromServerLoaded, |
| + base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
| weak_ptr_factory_.GetWeakPtr())); |
| return; |
| } |
| @@ -965,15 +1001,15 @@ void GDataFileSystem::OnGetAccountMetadata( |
| } |
| if (!account_metadata.get()) { |
| - LoadFeedFromServer(initial_origin, |
| - local_changestamp + 1, 0, |
| - true, /* should_fetch_multiple_feeds */ |
| - search_file_path, |
| - std::string() /* no search query */, |
| - std::string() /* no directory resource ID */, |
| - callback, |
| - base::Bind(&GDataFileSystem::OnFeedFromServerLoaded, |
| - weak_ptr_factory_.GetWeakPtr())); |
| + LoadFromServer(initial_origin, |
| + local_changestamp + 1, 0, |
| + true, /* should_fetch_multiple_feeds */ |
| + search_file_path, |
| + std::string() /* no search query */, |
| + std::string() /* no directory resource ID */, |
| + callback, |
| + base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
| + weak_ptr_factory_.GetWeakPtr())); |
| return; |
| } |
| @@ -996,13 +1032,15 @@ void GDataFileSystem::OnGetAccountMetadata( |
| // No changes detected, continue with search as planned. |
| if (!changes_detected) { |
| - if (!callback.is_null()) |
| - FindEntryByPathSyncOnUIThread(search_file_path, callback); |
| + if (!callback.is_null()) { |
| + directory_service_->FindEntryByPathAndRunSync(search_file_path, |
| + callback); |
| + } |
| return; |
| } |
| // Load changes from the server. |
| - LoadFeedFromServer(initial_origin, |
| + LoadFromServer(initial_origin, |
| local_changestamp > 0 ? local_changestamp + 1 : 0, |
| account_metadata->largest_changestamp(), |
| true, /* should_fetch_multiple_feeds */ |
| @@ -1010,11 +1048,11 @@ void GDataFileSystem::OnGetAccountMetadata( |
| std::string() /* no search query */, |
| std::string() /* no directory resource ID */, |
| callback, |
| - base::Bind(&GDataFileSystem::OnFeedFromServerLoaded, |
| + base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
| weak_ptr_factory_.GetWeakPtr())); |
| } |
| -void GDataFileSystem::LoadFeedFromServer( |
| +void GDataWapiFeedLoader::LoadFromServer( |
| ContentOrigin initial_origin, |
| int start_changestamp, |
| int root_feed_changestamp, |
| @@ -1036,7 +1074,7 @@ void GDataFileSystem::LoadFeedFromServer( |
| start_changestamp, |
| search_query, |
| directory_resource_id, |
| - base::Bind(&GDataFileSystem::OnGetDocuments, |
| + base::Bind(&GDataWapiFeedLoader::OnGetDocuments, |
| weak_ptr_factory_.GetWeakPtr(), |
| initial_origin, |
| feed_load_callback, |
| @@ -1051,8 +1089,8 @@ void GDataFileSystem::LoadFeedFromServer( |
| start_time)); |
| } |
| -void GDataFileSystem::OnFeedFromServerLoaded(GetDocumentsParams* params, |
| - GDataFileError error) { |
| +void GDataWapiFeedLoader::OnFeedFromServerLoaded(GetDocumentsParams* params, |
| + GDataFileError error) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| if (error != GDATA_FILE_OK) { |
| @@ -1077,8 +1115,10 @@ void GDataFileSystem::OnFeedFromServerLoaded(GetDocumentsParams* params, |
| // If we had someone to report this too, then this retrieval was done in a |
| // context of search... so continue search. |
| - if (!params->callback.is_null()) |
| - FindEntryByPathSyncOnUIThread(params->search_file_path, params->callback); |
| + if (!params->callback.is_null()) { |
| + directory_service_->FindEntryByPathAndRunSync(params->search_file_path, |
| + params->callback); |
| + } |
| FOR_EACH_OBSERVER(Observer, observers_, OnFeedFromServerLoaded()); |
| } |
| @@ -2314,16 +2354,17 @@ void GDataFileSystem::RequestDirectoryRefreshOnUIThreadAfterGetEntryInfo( |
| return; |
| } |
| - LoadFeedFromServer(directory_service_->origin(), |
| - 0, // Not delta feed. |
| - 0, // Not used. |
| - true, // multiple feeds |
| - file_path, |
| - std::string(), // No search query |
| - entry_proto->resource_id(), |
| - FindEntryCallback(), // Not used. |
| - base::Bind(&GDataFileSystem::OnRequestDirectoryRefresh, |
| - weak_ptr_factory_.GetWeakPtr())); |
| + feed_loader_->LoadFromServer( |
| + directory_service_->origin(), |
| + 0, // Not delta feed. |
| + 0, // Not used. |
| + true, // multiple feeds |
| + file_path, |
| + std::string(), // No search query |
| + entry_proto->resource_id(), |
| + FindEntryCallback(), // Not used. |
| + base::Bind(&GDataFileSystem::OnRequestDirectoryRefresh, |
| + ui_weak_ptr_)); |
| } |
| void GDataFileSystem::OnRequestDirectoryRefresh( |
| @@ -2391,7 +2432,8 @@ void GDataFileSystem::RequestDirectoryRefreshByEntry( |
| // Note that there may be no change in the directory, but it's expensive to |
| // check if the new metadata matches the existing one, so we just always |
| // notify that the directory is changed. |
| - FOR_EACH_OBSERVER(Observer, observers_, OnDirectoryChanged(directory_path)); |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, |
| + observers_, OnDirectoryChanged(directory_path)); |
| DVLOG(1) << "Directory refreshed: " << directory_path.value(); |
| } |
| @@ -2716,27 +2758,28 @@ void GDataFileSystem::SearchAsyncOnUIThread( |
| new std::vector<DocumentFeed*>); |
| ContentOrigin initial_origin = directory_service_->origin(); |
| - LoadFeedFromServer(initial_origin, |
| - 0, 0, // We don't use change stamps when fetching search |
| - // data; we always fetch the whole result feed. |
| - false, // Stop fetching search results after first feed |
| - // chunk to avoid displaying huge number of search |
| - // results (especially since we don't cache them). |
| - FilePath(), // Not used. |
| - search_query, |
| - std::string(), // No directory resource ID. |
| - FindEntryCallback(), // Not used. |
| - base::Bind(&GDataFileSystem::OnSearch, |
| - weak_ptr_factory_.GetWeakPtr(), |
| - callback)); |
| -} |
| - |
| -void GDataFileSystem::OnGetDocuments(ContentOrigin initial_origin, |
| - const LoadDocumentFeedCallback& callback, |
| - GetDocumentsParams* params, |
| - base::TimeTicks start_time, |
| - GDataErrorCode status, |
| - scoped_ptr<base::Value> data) { |
| + feed_loader_->LoadFromServer( |
| + initial_origin, |
| + 0, 0, // We don't use change stamps when fetching search |
| + // data; we always fetch the whole result feed. |
| + false, // Stop fetching search results after first feed |
| + // chunk to avoid displaying huge number of search |
| + // results (especially since we don't cache them). |
| + FilePath(), // Not used. |
| + search_query, |
| + std::string(), // No directory resource ID. |
| + FindEntryCallback(), // Not used. |
| + base::Bind(&GDataFileSystem::OnSearch, |
| + ui_weak_ptr_, callback)); |
| +} |
| + |
| +void GDataWapiFeedLoader::OnGetDocuments( |
| + ContentOrigin initial_origin, |
| + const LoadDocumentFeedCallback& callback, |
| + GetDocumentsParams* params, |
| + base::TimeTicks start_time, |
| + GDataErrorCode status, |
| + scoped_ptr<base::Value> data) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| if (params->feed_list->empty()) { |
| @@ -2805,7 +2848,7 @@ void GDataFileSystem::OnGetDocuments(ContentOrigin initial_origin, |
| params->start_changestamp, |
| params->search_query, |
| params->directory_resource_id, |
| - base::Bind(&GDataFileSystem::OnGetDocuments, |
| + base::Bind(&GDataWapiFeedLoader::OnGetDocuments, |
| weak_ptr_factory_.GetWeakPtr(), |
| initial_origin, |
| callback, |
| @@ -2830,7 +2873,7 @@ void GDataFileSystem::OnGetDocuments(ContentOrigin initial_origin, |
| callback.Run(params, error); |
| } |
| -void GDataFileSystem::LoadRootFeedFromCache( |
| +void GDataWapiFeedLoader::LoadFromCache( |
| bool should_load_from_server, |
| const FilePath& search_file_path, |
| const FindEntryCallback& callback) { |
| @@ -2844,22 +2887,54 @@ void GDataFileSystem::LoadRootFeedFromCache( |
| callback); |
| BrowserThread::GetBlockingPool()->PostTaskAndReply(FROM_HERE, |
| base::Bind(&LoadProtoOnBlockingPool, path, params), |
| - base::Bind(&GDataFileSystem::OnProtoLoaded, |
| + base::Bind(&GDataWapiFeedLoader::OnProtoLoaded, |
| weak_ptr_factory_.GetWeakPtr(), |
| base::Owned(params))); |
| } |
| +void GDataFileSystem::OnDirectoryChanged(const FilePath& directory_path) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| + OnDirectoryChanged(directory_path)); |
| +} |
| + |
| +void GDataFileSystem::OnDocumentFeedFetched(int num_accumulated_entries) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| + OnDocumentFeedFetched(num_accumulated_entries)); |
| +} |
| + |
| +void GDataFileSystem::OnFeedFromServerLoaded() { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| + OnFeedFromServerLoaded()); |
| +} |
| + |
| void GDataFileSystem::LoadRootFeedFromCacheForTesting() { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - LoadRootFeedFromCache( |
| + feed_loader_->LoadFromCache( |
| false, // should_load_from_server. |
| // search_path doesn't matter if FindEntryCallback parameter is null . |
| FilePath(), |
| FindEntryCallback()); |
| } |
| -void GDataFileSystem::OnProtoLoaded(LoadRootFeedParams* params) { |
| +GDataFileError GDataFileSystem::UpdateFromFeedForTesting( |
| + const std::vector<DocumentFeed*>& feed_list, |
| + int start_changestamp, |
| + int root_feed_changestamp) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + |
| + return feed_loader_->UpdateFromFeed(feed_list, |
| + start_changestamp, |
| + root_feed_changestamp); |
| +} |
| + |
| +void GDataWapiFeedLoader::OnProtoLoaded(LoadRootFeedParams* params) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| // If we have already received updates from the server, bail out. |
| @@ -2886,14 +2961,15 @@ void GDataFileSystem::OnProtoLoaded(LoadRootFeedParams* params) { |
| if (params->load_error == GDATA_FILE_OK && !callback.is_null()) { |
| // Continue file content search operation if the delegate hasn't terminated |
| // this search branch already. |
| - FindEntryByPathSyncOnUIThread(params->search_file_path, callback); |
| + directory_service_->FindEntryByPathAndRunSync(params->search_file_path, |
| + callback); |
| callback.Reset(); |
| } |
| if (!params->should_load_from_server) |
| return; |
| - // Decide the |initial_origin| to pass to ReloadFeedFromServerIfNeeded(). |
| + // Decide the |initial_origin| to pass to ReloadFromServerIfNeeded(). |
| // This is used to restore directory content origin to its initial value when |
| // we fail to retrieve the feed from server. |
| // By default, if directory content is not yet initialized, restore content |
| @@ -2909,13 +2985,13 @@ void GDataFileSystem::OnProtoLoaded(LoadRootFeedParams* params) { |
| // Kick of the retrieval of the feed from server. If we have previously |
| // |reported| to the original callback, then we just need to refresh the |
| // content without continuing search upon operation completion. |
| - ReloadFeedFromServerIfNeeded(initial_origin, |
| - local_changestamp, |
| - params->search_file_path, |
| - callback); |
| + ReloadFromServerIfNeeded(initial_origin, |
| + local_changestamp, |
| + params->search_file_path, |
| + callback); |
| } |
| -void GDataFileSystem::SaveFileSystemAsProto() { |
| +void GDataWapiFeedLoader::SaveFileSystemAsProto() { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| DVLOG(1) << "SaveFileSystemAsProto"; |
| @@ -3192,7 +3268,7 @@ GDataFileError GDataFileSystem::RenameFileOnFilesystem( |
| *updated_file_path = entry->GetFilePath(); |
| - FOR_EACH_OBSERVER(Observer, observers_, |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| OnDirectoryChanged(updated_file_path->DirName())); |
| return GDATA_FILE_OK; |
| } |
| @@ -3213,7 +3289,8 @@ GDataFileError GDataFileSystem::AddEntryToDirectoryOnFilesystem( |
| if (!dir->TakeEntry(entry)) |
| return GDATA_FILE_ERROR_FAILED; |
| - FOR_EACH_OBSERVER(Observer, observers_, OnDirectoryChanged(dir_path)); |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| + OnDirectoryChanged(dir_path)); |
| return GDATA_FILE_OK; |
| } |
| @@ -3241,7 +3318,7 @@ GDataFileError GDataFileSystem::RemoveEntryFromDirectoryOnFilesystem( |
| *updated_file_path = entry->GetFilePath(); |
| - FOR_EACH_OBSERVER(Observer, observers_, |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| OnDirectoryChanged(updated_file_path->DirName())); |
| return GDATA_FILE_OK; |
| } |
| @@ -3262,7 +3339,7 @@ GDataFileError GDataFileSystem::RemoveEntryFromFileSystem( |
| return GDATA_FILE_OK; |
| } |
| -GDataFileError GDataFileSystem::UpdateFromFeed( |
| +GDataFileError GDataWapiFeedLoader::UpdateFromFeed( |
| const std::vector<DocumentFeed*>& feed_list, |
| int start_changestamp, |
| int root_feed_changestamp) { |
| @@ -3271,7 +3348,7 @@ GDataFileError GDataFileSystem::UpdateFromFeed( |
| std::set<FilePath> changed_dirs; |
| - GDataWapiFeedProcessor feed_processor(directory_service_.get()); |
| + GDataWapiFeedProcessor feed_processor(directory_service_); |
| const GDataFileError error = feed_processor.ApplyFeeds( |
| feed_list, |
| start_changestamp, |
| @@ -3284,7 +3361,8 @@ GDataFileError GDataFileSystem::UpdateFromFeed( |
| if (should_notify_directory_changed) { |
| for (std::set<FilePath>::iterator dir_iter = changed_dirs.begin(); |
| dir_iter != changed_dirs.end(); ++dir_iter) { |
| - FOR_EACH_OBSERVER(Observer, observers_, OnDirectoryChanged(*dir_iter)); |
| + FOR_EACH_OBSERVER(Observer, observers_, |
| + OnDirectoryChanged(*dir_iter)); |
| } |
| } |
| @@ -3316,7 +3394,8 @@ void GDataFileSystem::RunAndNotifyInitialLoadFinished( |
| callback.Run(error, entry); |
| // Notify the observers that root directory has been initialized. |
| - FOR_EACH_OBSERVER(Observer, observers_, OnInitialLoadFinished()); |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| + OnInitialLoadFinished()); |
| } |
| GDataFileError GDataFileSystem::AddNewDirectory( |
| @@ -3350,7 +3429,8 @@ GDataFileError GDataFileSystem::AddNewDirectory( |
| parent_dir->AddEntry(new_entry); |
| - FOR_EACH_OBSERVER(Observer, observers_, OnDirectoryChanged(directory_path)); |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| + OnDirectoryChanged(directory_path)); |
| return GDATA_FILE_OK; |
| } |
| @@ -3412,7 +3492,7 @@ GDataFileError GDataFileSystem::RemoveEntryFromGData( |
| if (!parent_dir->RemoveEntry(entry)) |
| return GDATA_FILE_ERROR_NOT_FOUND; |
| - FOR_EACH_OBSERVER(Observer, observers_, |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| OnDirectoryChanged(parent_dir->GetFilePath())); |
| return GDATA_FILE_OK; |
| } |
| @@ -3490,7 +3570,7 @@ void GDataFileSystem::AddUploadedFileOnUIThread( |
| const std::string& md5 = file->file_md5(); |
| parent_dir->AddEntry(new_entry.release()); |
| - FOR_EACH_OBSERVER(Observer, observers_, |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| OnDirectoryChanged(virtual_dir_path)); |
| if (upload_mode == UPLOAD_NEW_FILE) { |
| @@ -3539,7 +3619,8 @@ void GDataFileSystem::SetHideHostedDocuments(bool hide) { |
| const FilePath root_path = directory_service_->root()->GetFilePath(); |
| // Kick off directory refresh when this setting changes. |
| - FOR_EACH_OBSERVER(Observer, observers_, OnDirectoryChanged(root_path)); |
| + FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, |
| + OnDirectoryChanged(root_path)); |
| } |
| //============= GDataFileSystem: internal helper functions ===================== |