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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/metadata_database.cc

Issue 2058233002: Rewrite simple uses of base::ListValue::Append() taking a raw pointer var. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: less comments more ownership Created 4 years, 6 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
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/sync_file_system/drive_backend/metadata_database.h" 5 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 1583 matching lines...) Expand 10 before | Expand all | Expand 10 after
1594 while (!stack.empty()) { 1594 while (!stack.empty()) {
1595 int64_t tracker_id = stack.back(); 1595 int64_t tracker_id = stack.back();
1596 stack.pop_back(); 1596 stack.pop_back();
1597 AppendContents(index_->GetFileTrackerIDsByParent(tracker_id), &stack); 1597 AppendContents(index_->GetFileTrackerIDsByParent(tracker_id), &stack);
1598 1598
1599 FileTracker tracker; 1599 FileTracker tracker;
1600 if (!index_->GetFileTracker(tracker_id, &tracker)) { 1600 if (!index_->GetFileTracker(tracker_id, &tracker)) {
1601 NOTREACHED(); 1601 NOTREACHED();
1602 continue; 1602 continue;
1603 } 1603 }
1604 base::DictionaryValue* file = new base::DictionaryValue; 1604 std::unique_ptr<base::DictionaryValue> file(new base::DictionaryValue);
1605 1605
1606 base::FilePath path = BuildDisplayPathForTracker(tracker); 1606 base::FilePath path = BuildDisplayPathForTracker(tracker);
1607 file->SetString("path", path.AsUTF8Unsafe()); 1607 file->SetString("path", path.AsUTF8Unsafe());
1608 if (tracker.has_synced_details()) { 1608 if (tracker.has_synced_details()) {
1609 file->SetString("title", tracker.synced_details().title()); 1609 file->SetString("title", tracker.synced_details().title());
1610 file->SetString("type", 1610 file->SetString("type",
1611 FileKindToString(tracker.synced_details().file_kind())); 1611 FileKindToString(tracker.synced_details().file_kind()));
1612 } 1612 }
1613 1613
1614 base::DictionaryValue* details = new base::DictionaryValue; 1614 base::DictionaryValue* details = new base::DictionaryValue;
1615 details->SetString("file_id", tracker.file_id()); 1615 details->SetString("file_id", tracker.file_id());
1616 if (tracker.has_synced_details() && 1616 if (tracker.has_synced_details() &&
1617 tracker.synced_details().file_kind() == FILE_KIND_FILE) 1617 tracker.synced_details().file_kind() == FILE_KIND_FILE)
1618 details->SetString("md5", tracker.synced_details().md5()); 1618 details->SetString("md5", tracker.synced_details().md5());
1619 details->SetString("active", tracker.active() ? "true" : "false"); 1619 details->SetString("active", tracker.active() ? "true" : "false");
1620 details->SetString("dirty", tracker.dirty() ? "true" : "false"); 1620 details->SetString("dirty", tracker.dirty() ? "true" : "false");
1621 1621
1622 file->Set("details", details); 1622 file->Set("details", details);
1623 1623
1624 files->Append(file); 1624 files->Append(std::move(file));
1625 } 1625 }
1626 1626
1627 return files; 1627 return files;
1628 } 1628 }
1629 1629
1630 std::unique_ptr<base::ListValue> MetadataDatabase::DumpDatabase() { 1630 std::unique_ptr<base::ListValue> MetadataDatabase::DumpDatabase() {
1631 std::unique_ptr<base::ListValue> list(new base::ListValue); 1631 std::unique_ptr<base::ListValue> list(new base::ListValue);
1632 list->Append(DumpTrackers()); 1632 list->Append(DumpTrackers());
1633 list->Append(DumpMetadata()); 1633 list->Append(DumpMetadata());
1634 return list; 1634 return list;
1635 } 1635 }
1636 1636
1637 bool MetadataDatabase::HasNewerFileMetadata(const std::string& file_id, 1637 bool MetadataDatabase::HasNewerFileMetadata(const std::string& file_id,
1638 int64_t change_id) { 1638 int64_t change_id) {
1639 FileMetadata metadata; 1639 FileMetadata metadata;
1640 if (!index_->GetFileMetadata(file_id, &metadata)) 1640 if (!index_->GetFileMetadata(file_id, &metadata))
1641 return false; 1641 return false;
1642 DCHECK(metadata.has_details()); 1642 DCHECK(metadata.has_details());
1643 return metadata.details().change_id() >= change_id; 1643 return metadata.details().change_id() >= change_id;
1644 } 1644 }
1645 1645
1646 std::unique_ptr<base::ListValue> MetadataDatabase::DumpTrackers() { 1646 std::unique_ptr<base::ListValue> MetadataDatabase::DumpTrackers() {
1647 std::unique_ptr<base::ListValue> trackers(new base::ListValue); 1647 std::unique_ptr<base::ListValue> trackers(new base::ListValue);
1648 1648
1649 // Append the first element for metadata. 1649 // Append the first element for metadata.
1650 base::DictionaryValue* metadata = new base::DictionaryValue; 1650 std::unique_ptr<base::DictionaryValue> metadata(new base::DictionaryValue);
1651 const char *trackerKeys[] = { 1651 const char *trackerKeys[] = {
1652 "tracker_id", "path", "file_id", "tracker_kind", "app_id", 1652 "tracker_id", "path", "file_id", "tracker_kind", "app_id",
1653 "active", "dirty", "folder_listing", "demoted", 1653 "active", "dirty", "folder_listing", "demoted",
1654 "title", "kind", "md5", "etag", "missing", "change_id", 1654 "title", "kind", "md5", "etag", "missing", "change_id",
1655 }; 1655 };
1656 std::vector<std::string> key_strings( 1656 std::vector<std::string> key_strings(
1657 trackerKeys, trackerKeys + arraysize(trackerKeys)); 1657 trackerKeys, trackerKeys + arraysize(trackerKeys));
1658 base::ListValue* keys = new base::ListValue; 1658 base::ListValue* keys = new base::ListValue;
1659 keys->AppendStrings(key_strings); 1659 keys->AppendStrings(key_strings);
1660 metadata->SetString("title", "Trackers"); 1660 metadata->SetString("title", "Trackers");
1661 metadata->Set("keys", keys); 1661 metadata->Set("keys", keys);
1662 trackers->Append(metadata); 1662 trackers->Append(std::move(metadata));
1663 1663
1664 // Append tracker data. 1664 // Append tracker data.
1665 std::vector<int64_t> tracker_ids(index_->GetAllTrackerIDs()); 1665 std::vector<int64_t> tracker_ids(index_->GetAllTrackerIDs());
1666 for (std::vector<int64_t>::const_iterator itr = tracker_ids.begin(); 1666 for (std::vector<int64_t>::const_iterator itr = tracker_ids.begin();
1667 itr != tracker_ids.end(); ++itr) { 1667 itr != tracker_ids.end(); ++itr) {
1668 const int64_t tracker_id = *itr; 1668 const int64_t tracker_id = *itr;
1669 FileTracker tracker; 1669 FileTracker tracker;
1670 if (!index_->GetFileTracker(tracker_id, &tracker)) { 1670 if (!index_->GetFileTracker(tracker_id, &tracker)) {
1671 NOTREACHED(); 1671 NOTREACHED();
1672 continue; 1672 continue;
1673 } 1673 }
1674 1674
1675 base::DictionaryValue* dict = new base::DictionaryValue; 1675 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
1676 base::FilePath path = BuildDisplayPathForTracker(tracker); 1676 base::FilePath path = BuildDisplayPathForTracker(tracker);
1677 dict->SetString("tracker_id", base::Int64ToString(tracker_id)); 1677 dict->SetString("tracker_id", base::Int64ToString(tracker_id));
1678 dict->SetString("path", path.AsUTF8Unsafe()); 1678 dict->SetString("path", path.AsUTF8Unsafe());
1679 dict->SetString("file_id", tracker.file_id()); 1679 dict->SetString("file_id", tracker.file_id());
1680 TrackerKind tracker_kind = tracker.tracker_kind(); 1680 TrackerKind tracker_kind = tracker.tracker_kind();
1681 dict->SetString( 1681 dict->SetString(
1682 "tracker_kind", 1682 "tracker_kind",
1683 tracker_kind == TRACKER_KIND_APP_ROOT ? "AppRoot" : 1683 tracker_kind == TRACKER_KIND_APP_ROOT ? "AppRoot" :
1684 tracker_kind == TRACKER_KIND_DISABLED_APP_ROOT ? "Disabled App" : 1684 tracker_kind == TRACKER_KIND_DISABLED_APP_ROOT ? "Disabled App" :
1685 tracker.tracker_id() == GetSyncRootTrackerID() ? "SyncRoot" : 1685 tracker.tracker_id() == GetSyncRootTrackerID() ? "SyncRoot" :
1686 "Regular"); 1686 "Regular");
1687 dict->SetString("app_id", tracker.app_id()); 1687 dict->SetString("app_id", tracker.app_id());
1688 dict->SetString("active", tracker.active() ? "true" : "false"); 1688 dict->SetString("active", tracker.active() ? "true" : "false");
1689 dict->SetString("dirty", tracker.dirty() ? "true" : "false"); 1689 dict->SetString("dirty", tracker.dirty() ? "true" : "false");
1690 dict->SetString("folder_listing", 1690 dict->SetString("folder_listing",
1691 tracker.needs_folder_listing() ? "needed" : "no"); 1691 tracker.needs_folder_listing() ? "needed" : "no");
1692 1692
1693 bool is_demoted = index_->IsDemotedDirtyTracker(tracker.tracker_id()); 1693 bool is_demoted = index_->IsDemotedDirtyTracker(tracker.tracker_id());
1694 dict->SetString("demoted", is_demoted ? "true" : "false"); 1694 dict->SetString("demoted", is_demoted ? "true" : "false");
1695 if (tracker.has_synced_details()) { 1695 if (tracker.has_synced_details()) {
1696 const FileDetails& details = tracker.synced_details(); 1696 const FileDetails& details = tracker.synced_details();
1697 dict->SetString("title", details.title()); 1697 dict->SetString("title", details.title());
1698 dict->SetString("kind", FileKindToString(details.file_kind())); 1698 dict->SetString("kind", FileKindToString(details.file_kind()));
1699 dict->SetString("md5", details.md5()); 1699 dict->SetString("md5", details.md5());
1700 dict->SetString("etag", details.etag()); 1700 dict->SetString("etag", details.etag());
1701 dict->SetString("missing", details.missing() ? "true" : "false"); 1701 dict->SetString("missing", details.missing() ? "true" : "false");
1702 dict->SetString("change_id", base::Int64ToString(details.change_id())); 1702 dict->SetString("change_id", base::Int64ToString(details.change_id()));
1703 } 1703 }
1704 trackers->Append(dict); 1704 trackers->Append(std::move(dict));
1705 } 1705 }
1706 return trackers; 1706 return trackers;
1707 } 1707 }
1708 1708
1709 std::unique_ptr<base::ListValue> MetadataDatabase::DumpMetadata() { 1709 std::unique_ptr<base::ListValue> MetadataDatabase::DumpMetadata() {
1710 std::unique_ptr<base::ListValue> files(new base::ListValue); 1710 std::unique_ptr<base::ListValue> files(new base::ListValue);
1711 1711
1712 // Append the first element for metadata. 1712 // Append the first element for metadata.
1713 base::DictionaryValue* metadata = new base::DictionaryValue; 1713 std::unique_ptr<base::DictionaryValue> metadata(new base::DictionaryValue);
1714 const char *fileKeys[] = { 1714 const char *fileKeys[] = {
1715 "file_id", "title", "type", "md5", "etag", "missing", 1715 "file_id", "title", "type", "md5", "etag", "missing",
1716 "change_id", "parents" 1716 "change_id", "parents"
1717 }; 1717 };
1718 std::vector<std::string> key_strings( 1718 std::vector<std::string> key_strings(
1719 fileKeys, fileKeys + arraysize(fileKeys)); 1719 fileKeys, fileKeys + arraysize(fileKeys));
1720 base::ListValue* keys = new base::ListValue; 1720 base::ListValue* keys = new base::ListValue;
1721 keys->AppendStrings(key_strings); 1721 keys->AppendStrings(key_strings);
1722 metadata->SetString("title", "Metadata"); 1722 metadata->SetString("title", "Metadata");
1723 metadata->Set("keys", keys); 1723 metadata->Set("keys", keys);
1724 files->Append(metadata); 1724 files->Append(std::move(metadata));
1725 1725
1726 // Append metadata data. 1726 // Append metadata data.
1727 std::vector<std::string> metadata_ids(index_->GetAllMetadataIDs()); 1727 std::vector<std::string> metadata_ids(index_->GetAllMetadataIDs());
1728 for (std::vector<std::string>::const_iterator itr = metadata_ids.begin(); 1728 for (std::vector<std::string>::const_iterator itr = metadata_ids.begin();
1729 itr != metadata_ids.end(); ++itr) { 1729 itr != metadata_ids.end(); ++itr) {
1730 const std::string& file_id = *itr; 1730 const std::string& file_id = *itr;
1731 FileMetadata file; 1731 FileMetadata file;
1732 if (!index_->GetFileMetadata(file_id, &file)) { 1732 if (!index_->GetFileMetadata(file_id, &file)) {
1733 NOTREACHED(); 1733 NOTREACHED();
1734 continue; 1734 continue;
1735 } 1735 }
1736 1736
1737 base::DictionaryValue* dict = new base::DictionaryValue; 1737 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
1738 dict->SetString("file_id", file_id); 1738 dict->SetString("file_id", file_id);
1739 if (file.has_details()) { 1739 if (file.has_details()) {
1740 const FileDetails& details = file.details(); 1740 const FileDetails& details = file.details();
1741 dict->SetString("title", details.title()); 1741 dict->SetString("title", details.title());
1742 dict->SetString("type", FileKindToString(details.file_kind())); 1742 dict->SetString("type", FileKindToString(details.file_kind()));
1743 dict->SetString("md5", details.md5()); 1743 dict->SetString("md5", details.md5());
1744 dict->SetString("etag", details.etag()); 1744 dict->SetString("etag", details.etag());
1745 dict->SetString("missing", details.missing() ? "true" : "false"); 1745 dict->SetString("missing", details.missing() ? "true" : "false");
1746 dict->SetString("change_id", base::Int64ToString(details.change_id())); 1746 dict->SetString("change_id", base::Int64ToString(details.change_id()));
1747 1747
1748 std::vector<std::string> parents; 1748 std::vector<std::string> parents;
1749 for (int i = 0; i < details.parent_folder_ids_size(); ++i) 1749 for (int i = 0; i < details.parent_folder_ids_size(); ++i)
1750 parents.push_back(details.parent_folder_ids(i)); 1750 parents.push_back(details.parent_folder_ids(i));
1751 dict->SetString("parents", base::JoinString(parents, ",")); 1751 dict->SetString("parents", base::JoinString(parents, ","));
1752 } 1752 }
1753 files->Append(dict); 1753 files->Append(std::move(dict));
1754 } 1754 }
1755 return files; 1755 return files;
1756 } 1756 }
1757 1757
1758 void MetadataDatabase::AttachSyncRoot( 1758 void MetadataDatabase::AttachSyncRoot(
1759 const google_apis::FileResource& sync_root_folder) { 1759 const google_apis::FileResource& sync_root_folder) {
1760 std::unique_ptr<FileMetadata> sync_root_metadata = 1760 std::unique_ptr<FileMetadata> sync_root_metadata =
1761 CreateFileMetadataFromFileResource(GetLargestKnownChangeID(), 1761 CreateFileMetadataFromFileResource(GetLargestKnownChangeID(),
1762 sync_root_folder); 1762 sync_root_folder);
1763 std::unique_ptr<FileTracker> sync_root_tracker = 1763 std::unique_ptr<FileTracker> sync_root_tracker =
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1804 return false; 1804 return false;
1805 1805
1806 if (!parents.empty()) 1806 if (!parents.empty())
1807 return false; 1807 return false;
1808 1808
1809 return true; 1809 return true;
1810 } 1810 }
1811 1811
1812 } // namespace drive_backend 1812 } // namespace drive_backend
1813 } // namespace sync_file_system 1813 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698