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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_directory_service.cc

Issue 10854199: ResourceId and unit test cleanup. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: minor 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
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 #include "chrome/browser/chromeos/gdata/gdata_directory_service.h" 5 #include "chrome/browser/chromeos/gdata/gdata_directory_service.h"
6 6
7 #include <leveldb/db.h> 7 #include <leveldb/db.h>
8 #include <utility>
8 9
9 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
10 #include "base/string_number_conversions.h" 11 #include "base/string_number_conversions.h"
11 #include "base/sequenced_task_runner.h" 12 #include "base/sequenced_task_runner.h"
12 #include "base/tracked_objects.h" 13 #include "base/tracked_objects.h"
13 #include "chrome/browser/chromeos/gdata/gdata.pb.h" 14 #include "chrome/browser/chromeos/gdata/gdata.pb.h"
14 #include "chrome/browser/chromeos/gdata/gdata_files.h" 15 #include "chrome/browser/chromeos/gdata/gdata_files.h"
15 #include "chrome/browser/chromeos/gdata/gdata_util.h" 16 #include "chrome/browser/chromeos/gdata/gdata_util.h"
16 #include "chrome/browser/chromeos/gdata/gdata_wapi_parser.h" 17 #include "chrome/browser/chromeos/gdata/gdata_wapi_parser.h"
17 #include "content/public/browser/browser_thread.h" 18 #include "content/public/browser/browser_thread.h"
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 root_->set_title(kGDataRootDirectory); 229 root_->set_title(kGDataRootDirectory);
229 root_->SetBaseNameFromTitle(); 230 root_->SetBaseNameFromTitle();
230 root_->set_resource_id(root_id); 231 root_->set_resource_id(root_id);
231 AddEntryToResourceMap(root_.get()); 232 AddEntryToResourceMap(root_.get());
232 } 233 }
233 234
234 void GDataDirectoryService::ClearRoot() { 235 void GDataDirectoryService::ClearRoot() {
235 // Note that children have a reference to root_, 236 // Note that children have a reference to root_,
236 // so we need to delete them here. 237 // so we need to delete them here.
237 root_->RemoveChildren(); 238 root_->RemoveChildren();
238 RemoveEntryFromResourceMap(root_.get()); 239 RemoveEntryFromResourceMap(root_->resource_id());
239 DCHECK(resource_map_.empty()); 240 DCHECK(resource_map_.empty());
240 resource_map_.clear(); 241 resource_map_.clear();
241 root_.reset(); 242 root_.reset();
242 } 243 }
243 244
244 void GDataDirectoryService::AddEntryToDirectory( 245 void GDataDirectoryService::AddEntryToDirectory(
245 GDataDirectory* directory, 246 GDataDirectory* directory,
246 GDataEntry* new_entry, 247 GDataEntry* new_entry,
247 const FileMoveCallback& callback) { 248 const FileMoveCallback& callback) {
248 DCHECK(directory); 249 DCHECK(directory);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 DCHECK(parent); 291 DCHECK(parent);
291 DCHECK(!callback.is_null()); 292 DCHECK(!callback.is_null());
292 DVLOG(1) << "RemoveEntryFromParent " << entry->GetFilePath().value(); 293 DVLOG(1) << "RemoveEntryFromParent " << entry->GetFilePath().value();
293 294
294 parent->RemoveEntry(entry); 295 parent->RemoveEntry(entry);
295 base::MessageLoopProxy::current()->PostTask(FROM_HERE, 296 base::MessageLoopProxy::current()->PostTask(FROM_HERE,
296 base::Bind(callback, GDATA_FILE_OK, parent->GetFilePath())); 297 base::Bind(callback, GDATA_FILE_OK, parent->GetFilePath()));
297 } 298 }
298 299
299 void GDataDirectoryService::AddEntryToResourceMap(GDataEntry* entry) { 300 void GDataDirectoryService::AddEntryToResourceMap(GDataEntry* entry) {
300 // GDataFileSystem has already locked.
301 DVLOG(1) << "AddEntryToResourceMap " << entry->resource_id(); 301 DVLOG(1) << "AddEntryToResourceMap " << entry->resource_id();
302 resource_map_.insert(std::make_pair(entry->resource_id(), entry)); 302 DCHECK(!entry->resource_id().empty());
303 std::pair<ResourceMap::iterator, bool> ret =
304 resource_map_.insert(std::make_pair(entry->resource_id(), entry));
305 DCHECK(ret.second); // resource_id did not previously exist in the map.
303 } 306 }
304 307
305 void GDataDirectoryService::RemoveEntryFromResourceMap(GDataEntry* entry) { 308 void GDataDirectoryService::RemoveEntryFromResourceMap(
306 // GDataFileSystem has already locked. 309 const std::string& resource_id) {
307 resource_map_.erase(entry->resource_id()); 310 DVLOG(1) << "RemoveEntryFromResourceMap " << resource_id;
311 DCHECK(!resource_id.empty());
312 size_t ret = resource_map_.erase(resource_id);
313 DCHECK_EQ(1u, ret); // resource_id was found in the map.
308 } 314 }
309 315
310 GDataEntry* GDataDirectoryService::FindEntryByPathSync( 316 GDataEntry* GDataDirectoryService::FindEntryByPathSync(
311 const FilePath& file_path) { 317 const FilePath& file_path) {
312 if (file_path == root_->GetFilePath()) 318 if (file_path == root_->GetFilePath())
313 return root_.get(); 319 return root_.get();
314 320
315 std::vector<FilePath::StringType> components; 321 std::vector<FilePath::StringType> components;
316 file_path.GetComponents(&components); 322 file_path.GetComponents(&components);
317 GDataDirectory* current_dir = root_.get(); 323 GDataDirectory* current_dir = root_.get();
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 callback.Run(GDATA_FILE_ERROR_NOT_FOUND, FilePath()); 468 callback.Run(GDATA_FILE_ERROR_NOT_FOUND, FilePath());
463 return; 469 return;
464 } 470 }
465 471
466 GDataDirectory* directory = directory_entry->AsGDataDirectory(); 472 GDataDirectory* directory = directory_entry->AsGDataDirectory();
467 if (!directory) { 473 if (!directory) {
468 callback.Run(GDATA_FILE_ERROR_NOT_A_DIRECTORY, FilePath()); 474 callback.Run(GDATA_FILE_ERROR_NOT_A_DIRECTORY, FilePath());
469 return; 475 return;
470 } 476 }
471 477
478 DVLOG(1) << "RefreshDirectoryInternal";
472 directory->RemoveChildFiles(); 479 directory->RemoveChildFiles();
473 // Add files from file_map. 480 // Add files from file_map.
474 for (ResourceMap::const_iterator it = file_map.begin(); 481 for (ResourceMap::const_iterator it = file_map.begin();
475 it != file_map.end(); ++it) { 482 it != file_map.end(); ++it) {
476 scoped_ptr<GDataEntry> entry(it->second); 483 scoped_ptr<GDataEntry> entry(it->second);
477 // Skip if it's not a file (i.e. directory). 484 // Skip if it's not a file (i.e. directory).
478 if (!entry->AsGDataFile()) 485 if (!entry->AsGDataFile())
479 continue; 486 continue;
480 directory->AddEntry(entry.release()); 487 directory->AddEntry(entry.release());
481 } 488 }
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 DCHECK(result.get()); 760 DCHECK(result.get());
754 761
755 result->second.path = second_path; 762 result->second.path = second_path;
756 result->second.error = error; 763 result->second.error = error;
757 result->second.proto = entry_proto.Pass(); 764 result->second.proto = entry_proto.Pass();
758 765
759 callback.Run(result.Pass()); 766 callback.Run(result.Pass());
760 } 767 }
761 768
762 } // namespace gdata 769 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698