1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_GET_METADATA_H_ 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_GET_METADATA_H_ 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/files/file.h" 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/operations/operation.h" 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h" 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/request_value.h" 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace base { 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class FilePath; 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace base 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace extensions { 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class EventRouter; 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace extensions 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace chromeos { 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace file_system_provider { 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace operations { 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Bridge between fileapi get metadata operation and providing extension's get 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// metadata request. Created per request. 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class GetMetadata : public Operation { 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public: 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) GetMetadata(extensions::EventRouter* event_router, 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const ProvidedFileSystemInfo& file_system_info, 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const base::FilePath& entry_path, 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ProvidedFileSystemInterface::MetadataFieldMask fields, 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const ProvidedFileSystemInterface::GetMetadataCallback& callback); 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual ~GetMetadata(); 37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Operation overrides. 39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual bool Execute(int request_id) OVERRIDE; 40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual void OnSuccess(int request_id, 41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<RequestValue> result, 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool has_more) OVERRIDE; 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnError(int request_id, 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<RequestValue> result, 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::File::Error error) OVERRIDE; 46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) private: 48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) base::FilePath entry_path_; 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ProvidedFileSystemInterface::MetadataFieldMask fields_; 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const ProvidedFileSystemInterface::GetMetadataCallback callback_; 51010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 52010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(GetMetadata); 53010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}; 54010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 55010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace operations 56010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace file_system_provider 57010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace chromeos 58010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 59010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_GET_METADATA_H_ 60