create_directory.cc revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/chromeos/file_system_provider/operations/create_directory.h" 6 7#include <string> 8 9#include "chrome/common/extensions/api/file_system_provider.h" 10#include "chrome/common/extensions/api/file_system_provider_internal.h" 11 12namespace chromeos { 13namespace file_system_provider { 14namespace operations { 15 16CreateDirectory::CreateDirectory( 17 extensions::EventRouter* event_router, 18 const ProvidedFileSystemInfo& file_system_info, 19 const base::FilePath& directory_path, 20 bool exclusive, 21 bool recursive, 22 const storage::AsyncFileUtil::StatusCallback& callback) 23 : Operation(event_router, file_system_info), 24 directory_path_(directory_path), 25 exclusive_(exclusive), 26 recursive_(recursive), 27 callback_(callback) { 28} 29 30CreateDirectory::~CreateDirectory() { 31} 32 33bool CreateDirectory::Execute(int request_id) { 34 if (!file_system_info_.writable()) 35 return false; 36 37 scoped_ptr<base::DictionaryValue> values(new base::DictionaryValue); 38 values->SetString("directoryPath", directory_path_.AsUTF8Unsafe()); 39 values->SetBoolean("exclusive", exclusive_); 40 values->SetBoolean("recursive", recursive_); 41 42 return SendEvent(request_id, 43 extensions::api::file_system_provider:: 44 OnCreateDirectoryRequested::kEventName, 45 values.Pass()); 46} 47 48void CreateDirectory::OnSuccess(int /* request_id */, 49 scoped_ptr<RequestValue> /* result */, 50 bool has_more) { 51 callback_.Run(base::File::FILE_OK); 52} 53 54void CreateDirectory::OnError(int /* request_id */, 55 scoped_ptr<RequestValue> /* result */, 56 base::File::Error error) { 57 callback_.Run(error); 58} 59 60} // namespace operations 61} // namespace file_system_provider 62} // namespace chromeos 63