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

Side by Side Diff: chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc

Issue 1240183002: Update SplitString calls in chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 (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/media_galleries/linux/mtp_device_delegate_impl_linux.h" 5 #include "chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h"
6 6
7 #include <fcntl.h> 7 #include <fcntl.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 1814 matching lines...) Expand 10 before | Expand all | Expand 10 after
1825 base::FilePath MTPDeviceDelegateImplLinux::NextUncachedPathComponent( 1825 base::FilePath MTPDeviceDelegateImplLinux::NextUncachedPathComponent(
1826 const base::FilePath& path, 1826 const base::FilePath& path,
1827 const base::FilePath& cached_path) const { 1827 const base::FilePath& cached_path) const {
1828 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); 1828 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
1829 DCHECK(cached_path.empty() || cached_path.IsParent(path)); 1829 DCHECK(cached_path.empty() || cached_path.IsParent(path));
1830 1830
1831 base::FilePath uncached_path; 1831 base::FilePath uncached_path;
1832 std::string device_relpath = GetDeviceRelativePath(device_path_, path); 1832 std::string device_relpath = GetDeviceRelativePath(device_path_, path);
1833 if (!device_relpath.empty() && device_relpath != kRootPath) { 1833 if (!device_relpath.empty() && device_relpath != kRootPath) {
1834 uncached_path = device_path_; 1834 uncached_path = device_path_;
1835 std::vector<std::string> device_relpath_components; 1835 std::vector<std::string> device_relpath_components = base::SplitString(
1836 base::SplitString(device_relpath, '/', &device_relpath_components); 1836 device_relpath, "/", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
1837 DCHECK(!device_relpath_components.empty()); 1837 DCHECK(!device_relpath_components.empty());
1838 bool all_components_cached = true; 1838 bool all_components_cached = true;
1839 const MTPFileNode* current_node = root_node_.get(); 1839 const MTPFileNode* current_node = root_node_.get();
1840 for (size_t i = 0; i < device_relpath_components.size(); ++i) { 1840 for (size_t i = 0; i < device_relpath_components.size(); ++i) {
1841 current_node = current_node->GetChild(device_relpath_components[i]); 1841 current_node = current_node->GetChild(device_relpath_components[i]);
1842 if (!current_node) { 1842 if (!current_node) {
1843 // With a cache miss, check if it is a genuine failure. If so, pretend 1843 // With a cache miss, check if it is a genuine failure. If so, pretend
1844 // the entire |path| is cached, so there is no further attempt to do 1844 // the entire |path| is cached, so there is no further attempt to do
1845 // more caching. The actual operation will then fail. 1845 // more caching. The actual operation will then fail.
1846 all_components_cached = 1846 all_components_cached =
(...skipping 25 matching lines...) Expand all
1872 1872
1873 1873
1874 bool MTPDeviceDelegateImplLinux::CachedPathToId(const base::FilePath& path, 1874 bool MTPDeviceDelegateImplLinux::CachedPathToId(const base::FilePath& path,
1875 uint32* id) const { 1875 uint32* id) const {
1876 DCHECK(id); 1876 DCHECK(id);
1877 1877
1878 std::string device_relpath = GetDeviceRelativePath(device_path_, path); 1878 std::string device_relpath = GetDeviceRelativePath(device_path_, path);
1879 if (device_relpath.empty()) 1879 if (device_relpath.empty())
1880 return false; 1880 return false;
1881 std::vector<std::string> device_relpath_components; 1881 std::vector<std::string> device_relpath_components;
1882 if (device_relpath != kRootPath) 1882 if (device_relpath != kRootPath) {
1883 base::SplitString(device_relpath, '/', &device_relpath_components); 1883 device_relpath_components = base::SplitString(
1884 device_relpath, "/", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
1885 }
1884 const MTPFileNode* current_node = root_node_.get(); 1886 const MTPFileNode* current_node = root_node_.get();
1885 for (size_t i = 0; i < device_relpath_components.size(); ++i) { 1887 for (size_t i = 0; i < device_relpath_components.size(); ++i) {
1886 current_node = current_node->GetChild(device_relpath_components[i]); 1888 current_node = current_node->GetChild(device_relpath_components[i]);
1887 if (!current_node) 1889 if (!current_node)
1888 return false; 1890 return false;
1889 } 1891 }
1890 *id = current_node->file_id(); 1892 *id = current_node->file_id();
1891 return true; 1893 return true;
1892 } 1894 }
1893 1895
1894 void MTPDeviceDelegateImplLinux::EvictCachedPathToId(const uint32 id) { 1896 void MTPDeviceDelegateImplLinux::EvictCachedPathToId(const uint32 id) {
1895 FileIdToMTPFileNodeMap::iterator it = file_id_to_node_map_.find(id); 1897 FileIdToMTPFileNodeMap::iterator it = file_id_to_node_map_.find(id);
1896 if (it != file_id_to_node_map_.end()) { 1898 if (it != file_id_to_node_map_.end()) {
1897 DCHECK(!it->second->HasChildren()); 1899 DCHECK(!it->second->HasChildren());
1898 MTPFileNode* parent = it->second->parent(); 1900 MTPFileNode* parent = it->second->parent();
1899 if (parent) { 1901 if (parent) {
1900 const bool ret = parent->DeleteChild(id); 1902 const bool ret = parent->DeleteChild(id);
1901 DCHECK(ret); 1903 DCHECK(ret);
1902 } 1904 }
1903 } 1905 }
1904 } 1906 }
1905 1907
1906 void CreateMTPDeviceAsyncDelegate( 1908 void CreateMTPDeviceAsyncDelegate(
1907 const std::string& device_location, 1909 const std::string& device_location,
1908 const bool read_only, 1910 const bool read_only,
1909 const CreateMTPDeviceAsyncDelegateCallback& callback) { 1911 const CreateMTPDeviceAsyncDelegateCallback& callback) {
1910 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); 1912 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
1911 callback.Run(new MTPDeviceDelegateImplLinux(device_location, read_only)); 1913 callback.Run(new MTPDeviceDelegateImplLinux(device_location, read_only));
1912 } 1914 }
OLDNEW
« no previous file with comments | « chrome/browser/media/webrtc_log_uploader_unittest.cc ('k') | chrome/browser/metrics/thread_watcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698