OLD | NEW |
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_files.h" | 5 #include "chrome/browser/chromeos/gdata/gdata_files.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "base/platform_file.h" | 8 #include "base/platform_file.h" |
9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 root_->RemoveEntryFromResourceMap(entry); | 377 root_->RemoveEntryFromResourceMap(entry); |
378 | 378 |
379 // Then delete it from tree. | 379 // Then delete it from tree. |
380 child_files_.erase(file_name); | 380 child_files_.erase(file_name); |
381 child_directories_.erase(file_name); | 381 child_directories_.erase(file_name); |
382 | 382 |
383 return true; | 383 return true; |
384 } | 384 } |
385 | 385 |
386 void GDataDirectory::RemoveChildren() { | 386 void GDataDirectory::RemoveChildren() { |
387 RemoveChildFiles(); | 387 // Remove child files first. |
388 RemoveChildDirectories(); | |
389 } | |
390 | |
391 void GDataDirectory::RemoveChildFiles() { | |
392 for (GDataFileCollection::const_iterator iter = child_files_.begin(); | 388 for (GDataFileCollection::const_iterator iter = child_files_.begin(); |
393 iter != child_files_.end(); ++iter) { | 389 iter != child_files_.end(); ++iter) { |
394 if (root_) | 390 if (root_) |
395 root_->RemoveEntryFromResourceMap(iter->second); | 391 root_->RemoveEntryFromResourceMap(iter->second); |
396 } | 392 } |
397 STLDeleteValues(&child_files_); | 393 STLDeleteValues(&child_files_); |
398 child_files_.clear(); | 394 child_files_.clear(); |
399 } | |
400 | 395 |
401 void GDataDirectory::RemoveChildDirectories() { | |
402 for (GDataDirectoryCollection::iterator iter = child_directories_.begin(); | 396 for (GDataDirectoryCollection::iterator iter = child_directories_.begin(); |
403 iter != child_directories_.end(); ++iter) { | 397 iter != child_directories_.end(); ++iter) { |
404 GDataDirectory* dir = iter->second; | 398 GDataDirectory* dir = iter->second; |
405 // Remove directories recursively. | 399 // Remove directories recursively. |
406 dir->RemoveChildren(); | 400 dir->RemoveChildren(); |
407 if (root_) | 401 if (root_) |
408 root_->RemoveEntryFromResourceMap(dir); | 402 root_->RemoveEntryFromResourceMap(dir); |
409 } | 403 } |
410 STLDeleteValues(&child_directories_); | 404 STLDeleteValues(&child_directories_); |
411 child_directories_.clear(); | 405 child_directories_.clear(); |
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
894 } | 888 } |
895 | 889 |
896 FromProto(*proto.get()); | 890 FromProto(*proto.get()); |
897 set_origin(FROM_CACHE); | 891 set_origin(FROM_CACHE); |
898 set_refresh_time(base::Time::Now()); | 892 set_refresh_time(base::Time::Now()); |
899 } | 893 } |
900 return ok; | 894 return ok; |
901 } | 895 } |
902 | 896 |
903 } // namespace gdata | 897 } // namespace gdata |
OLD | NEW |