15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_CREATE_FILE_H_ 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_CREATE_FILE_H_ 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/files/file.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/operations/operation.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h" 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h" 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/request_value.h" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/async_file_util.h" 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace base { 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class FilePath; 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace base 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace extensions { 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class EventRouter; 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace extensions 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace chromeos { 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace file_system_provider { 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace operations { 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Creates a file. If the file already exists, then the operation will fail with 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// the FILE_ERROR_EXISTS error. Created per request. 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class CreateFile : public Operation { 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public: 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) CreateFile(extensions::EventRouter* event_router, 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const ProvidedFileSystemInfo& file_system_info, 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const base::FilePath& file_path, 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const storage::AsyncFileUtil::StatusCallback& callback); 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual ~CreateFile(); 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Operation overrides. 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual bool Execute(int request_id) OVERRIDE; 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void OnSuccess(int request_id, 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) scoped_ptr<RequestValue> result, 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) bool has_more) OVERRIDE; 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void OnError(int request_id, 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) scoped_ptr<RequestValue> result, 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) base::File::Error error) OVERRIDE; 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) private: 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) base::FilePath file_path_; 4903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const storage::AsyncFileUtil::StatusCallback callback_; 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(CreateFile); 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}; 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace operations 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace file_system_provider 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace chromeos 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_CREATE_FILE_H_ 59