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

Side by Side Diff: chrome/browser/chromeos/drive/sync/entry_update_performer.cc

Issue 278273002: drive: Change the return type of ResourceMetadata's methods to FileError (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "chrome/browser/chromeos/drive/sync/entry_update_performer.h" 5 #include "chrome/browser/chromeos/drive/sync/entry_update_performer.h"
6 6
7 #include "base/callback_helpers.h" 7 #include "base/callback_helpers.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "chrome/browser/chromeos/drive/change_list_loader.h" 9 #include "chrome/browser/chromeos/drive/change_list_loader.h"
10 #include "chrome/browser/chromeos/drive/drive.pb.h" 10 #include "chrome/browser/chromeos/drive/drive.pb.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 FileError error = metadata->GetResourceEntryById(local_id, 43 FileError error = metadata->GetResourceEntryById(local_id,
44 &local_state->entry); 44 &local_state->entry);
45 if (error != FILE_ERROR_OK) 45 if (error != FILE_ERROR_OK)
46 return error; 46 return error;
47 47
48 error = metadata->GetResourceEntryById(local_state->entry.parent_local_id(), 48 error = metadata->GetResourceEntryById(local_state->entry.parent_local_id(),
49 &local_state->parent_entry); 49 &local_state->parent_entry);
50 if (error != FILE_ERROR_OK) 50 if (error != FILE_ERROR_OK)
51 return error; 51 return error;
52 52
53 local_state->drive_file_path = metadata->GetFilePath(local_id); 53 error = metadata->GetFilePath(local_id, &local_state->drive_file_path);
54 if (local_state->drive_file_path.empty()) 54 if (error != FILE_ERROR_OK)
55 return FILE_ERROR_NOT_FOUND; 55 return error;
56 56
57 FileCacheEntry cache_entry; 57 FileCacheEntry cache_entry;
58 cache->GetCacheEntry(local_id, &cache_entry); 58 cache->GetCacheEntry(local_id, &cache_entry);
59 if (!local_state->entry.file_info().is_directory() && 59 if (!local_state->entry.file_info().is_directory() &&
60 !cache_entry.is_present() && local_state->entry.resource_id().empty()) { 60 !cache_entry.is_present() && local_state->entry.resource_id().empty()) {
61 // Locally created file with no cache file, store an empty file. 61 // Locally created file with no cache file, store an empty file.
62 base::FilePath empty_file; 62 base::FilePath empty_file;
63 if (!base::CreateTemporaryFile(&empty_file)) 63 if (!base::CreateTemporaryFile(&empty_file))
64 return FILE_ERROR_FAILED; 64 return FILE_ERROR_FAILED;
65 error = cache->Store(local_id, std::string(), empty_file, 65 error = cache->Store(local_id, std::string(), empty_file,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 scoped_ptr<google_apis::ResourceEntry> resource_entry, 116 scoped_ptr<google_apis::ResourceEntry> resource_entry,
117 base::FilePath* changed_directory) { 117 base::FilePath* changed_directory) {
118 // When creating new entries, update check may add a new entry with the same 118 // When creating new entries, update check may add a new entry with the same
119 // resource ID before us. If such an entry exists, remove it. 119 // resource ID before us. If such an entry exists, remove it.
120 std::string existing_local_id; 120 std::string existing_local_id;
121 FileError error = metadata->GetIdByResourceId( 121 FileError error = metadata->GetIdByResourceId(
122 resource_entry->resource_id(), &existing_local_id); 122 resource_entry->resource_id(), &existing_local_id);
123 switch (error) { 123 switch (error) {
124 case FILE_ERROR_OK: 124 case FILE_ERROR_OK:
125 if (existing_local_id != local_id) { 125 if (existing_local_id != local_id) {
126 base::FilePath existing_entry_path = 126 base::FilePath existing_entry_path;
127 metadata->GetFilePath(existing_local_id); 127 error = metadata->GetFilePath(existing_local_id, &existing_entry_path);
128 if (error != FILE_ERROR_OK)
129 return error;
128 error = metadata->RemoveEntry(existing_local_id); 130 error = metadata->RemoveEntry(existing_local_id);
129 if (error != FILE_ERROR_OK) 131 if (error != FILE_ERROR_OK)
130 return error; 132 return error;
131 *changed_directory = existing_entry_path.DirName(); 133 *changed_directory = existing_entry_path.DirName();
132 } 134 }
133 break; 135 break;
134 case FILE_ERROR_NOT_FOUND: 136 case FILE_ERROR_NOT_FOUND:
135 break; 137 break;
136 default: 138 default:
137 return error; 139 return error;
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 384 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
383 DCHECK(!callback.is_null()); 385 DCHECK(!callback.is_null());
384 386
385 if (!changed_directory->empty()) 387 if (!changed_directory->empty())
386 observer_->OnDirectoryChangedByOperation(*changed_directory); 388 observer_->OnDirectoryChangedByOperation(*changed_directory);
387 callback.Run(error); 389 callback.Run(error);
388 } 390 }
389 391
390 } // namespace internal 392 } // namespace internal
391 } // namespace drive 393 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/sync/entry_revert_performer.cc ('k') | chrome/browser/chromeos/drive/sync_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698