drive_backend_util.h revision f2477e01787aa58f445919b809d89e252beef54f
1184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke// Copyright 2013 The Chromium Authors. All rights reserved. 2184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke// Use of this source code is governed by a BSD-style license that can be 3184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke// found in the LICENSE file. 4184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 5184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_ 6184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_ 7184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 8184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke#include <string> 9184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 10184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke#include "base/memory/scoped_ptr.h" 11184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke#include "base/memory/scoped_vector.h" 12184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke#include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 13184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke#include "webkit/common/blob/scoped_file.h" 14184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 15379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsbergnamespace google_apis { 16184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzkeclass ChangeResource; 17379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsbergclass FileResource; 18184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzkeclass ResourceEntry; 19184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke} 20184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 21184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzkenamespace leveldb { 226b52e82768b68dd75bfda9637f0154c5425171edChia-I Wuclass WriteBatch; 236b52e82768b68dd75bfda9637f0154c5425171edChia-I Wu} 24379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsberg 2558dc1b28d1ef4d1931c52b079d304f2e1546329dKristian Høgsbergnamespace sync_file_system { 266b52e82768b68dd75bfda9637f0154c5425171edChia-I Wunamespace drive_backend { 276b52e82768b68dd75bfda9637f0154c5425171edChia-I Wu 2858dc1b28d1ef4d1931c52b079d304f2e1546329dKristian Høgsbergvoid PutServiceMetadataToBatch(const ServiceMetadata& service_metadata, 296b52e82768b68dd75bfda9637f0154c5425171edChia-I Wu leveldb::WriteBatch* batch); 306b52e82768b68dd75bfda9637f0154c5425171edChia-I Wuvoid PutFileToBatch(const FileMetadata& file, leveldb::WriteBatch* batch); 316b52e82768b68dd75bfda9637f0154c5425171edChia-I Wuvoid PutTrackerToBatch(const FileTracker& tracker, leveldb::WriteBatch* batch); 326b52e82768b68dd75bfda9637f0154c5425171edChia-I Wu 336b52e82768b68dd75bfda9637f0154c5425171edChia-I Wuvoid PopulateFileDetailsByFileResource( 346b52e82768b68dd75bfda9637f0154c5425171edChia-I Wu const google_apis::FileResource& file_resource, 356b52e82768b68dd75bfda9637f0154c5425171edChia-I Wu FileDetails* details); 366b52e82768b68dd75bfda9637f0154c5425171edChia-I Wuscoped_ptr<FileMetadata> CreateFileMetadataFromFileResource( 37379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsberg int64 change_id, 38184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke const google_apis::FileResource& resource); 39184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzkescoped_ptr<FileMetadata> CreateFileMetadataFromChangeResource( 40184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke const google_apis::ChangeResource& change); 416b52e82768b68dd75bfda9637f0154c5425171edChia-I Wu 42184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke// Creates a temporary file in |dir_path|. This must be called on an 43379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsberg// IO-allowed thread. 44379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsbergwebkit_blob::ScopedFile CreateTemporaryFile(); 45184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 46184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzkestd::string FileKindToString(FileKind file_kind); 47184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 48184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzkebool HasFileAsParent(const FileDetails& details, const std::string& file_id); 49184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 501aaec8c60985ffe03af265bf8f659ee0319926caKristian Høgsbergstd::string GetMimeTypeFromTitle(const base::FilePath& title); 51184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 52379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsbergscoped_ptr<google_apis::ResourceEntry> GetOldestCreatedFolderResource( 53379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsberg ScopedVector<google_apis::ResourceEntry> list); 54184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke 55184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke} // namespace drive_backend 56184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke} // namespace sync_file_system 57379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsberg 58379eb47ea61c87c9ac071fa6d93e49ae3f02ac2cKristian Høgsberg#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_ 59184bb09ff5cf2715dfee91e25ec20cbaa2e4445cBenjamin Franzke