Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / file_system_provider / operations / close_file.cc
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/close_file.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
12 namespace chromeos {
13 namespace file_system_provider {
14 namespace operations {
15
16 CloseFile::CloseFile(extensions::EventRouter* event_router,
17                      const ProvidedFileSystemInfo& file_system_info,
18                      int open_request_id,
19                      const storage::AsyncFileUtil::StatusCallback& callback)
20     : Operation(event_router, file_system_info),
21       open_request_id_(open_request_id),
22       callback_(callback) {
23 }
24
25 CloseFile::~CloseFile() {
26 }
27
28 bool CloseFile::Execute(int request_id) {
29   using extensions::api::file_system_provider::CloseFileRequestedOptions;
30
31   CloseFileRequestedOptions options;
32   options.file_system_id = file_system_info_.file_system_id();
33   options.request_id = request_id;
34   options.open_request_id = open_request_id_;
35
36   return SendEvent(
37       request_id,
38       extensions::api::file_system_provider::OnCloseFileRequested::kEventName,
39       extensions::api::file_system_provider::OnCloseFileRequested::Create(
40           options));
41 }
42
43 void CloseFile::OnSuccess(int /* request_id */,
44                           scoped_ptr<RequestValue> result,
45                           bool has_more) {
46   callback_.Run(base::File::FILE_OK);
47 }
48
49 void CloseFile::OnError(int /* request_id */,
50                         scoped_ptr<RequestValue> /* result */,
51                         base::File::Error error) {
52   callback_.Run(error);
53 }
54
55 }  // namespace operations
56 }  // namespace file_system_provider
57 }  // namespace chromeos