| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_DRIVE_RESOURCE_ENTRY_CONVERSION_H_ |
| #define COMPONENTS_DRIVE_RESOURCE_ENTRY_CONVERSION_H_ |
| |
| #include <string> |
| |
| #include "base/files/file.h" |
| |
| namespace google_apis { |
| class ChangeResource; |
| class FileResource; |
| class TeamDriveResource; |
| } |
| |
| namespace drive { |
| |
| class ResourceEntry; |
| |
| // Converts a google_apis::ChangeResource into a drive::ResourceEntry. |
| // The converted result will be stored in |out_entry| and |
| // |out_parent_resource_id| will be set to the resource ID of the parent entry. |
| // |
| // Every entry is guaranteed to have one parent resource ID in ResourceMetadata. |
| // This requirement is needed to represent contents in Drive as a file system |
| // tree, and achieved as follows: |
| // |
| // 1) Entries without parents are allowed on drive.google.com. These entries are |
| // collected to "drive/other", and have "drive/other" as the parent. |
| // |
| // 2) Entries with multiple parents are allowed on drive.google.com. For these |
| // entries, the first parent is chosen. |
| void ConvertChangeResourceToResourceEntry( |
| const google_apis::ChangeResource& input, |
| ResourceEntry* out_entry, |
| std::string* out_parent_resource_id); |
| |
| // Converts a google_apis::FileResource into a drive::ResourceEntry. |
| // Also see the comment for ConvertChangeResourceToResourceEntry above. |
| void ConvertFileResourceToResourceEntry(const google_apis::FileResource& input, |
| ResourceEntry* out_entry, |
| std::string* out_parent_resource_id); |
| |
| // Converts a TeamDriveResource into a drive::ResourceEntry. |
| void ConvertTeamDriveResourceToResourceEntry( |
| const google_apis::TeamDriveResource& input, |
| ResourceEntry* out_entry); |
| |
| // Converts the resource entry to the platform file info. |
| void ConvertResourceEntryToFileInfo(const ResourceEntry& entry, |
| base::File::Info* file_info); |
| |
| } // namespace drive |
| |
| #endif // COMPONENTS_DRIVE_RESOURCE_ENTRY_CONVERSION_H_ |