close_file.cc revision 116680a4aac90f2aa7413d9095a592090648e557
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
12namespace chromeos {
13namespace file_system_provider {
14namespace operations {
15
16CloseFile::CloseFile(extensions::EventRouter* event_router,
17                     const ProvidedFileSystemInfo& file_system_info,
18                     int open_request_id,
19                     const fileapi::AsyncFileUtil::StatusCallback& callback)
20    : Operation(event_router, file_system_info),
21      open_request_id_(open_request_id),
22      callback_(callback) {
23}
24
25CloseFile::~CloseFile() {
26}
27
28bool CloseFile::Execute(int request_id) {
29  scoped_ptr<base::DictionaryValue> values(new base::DictionaryValue);
30  values->SetInteger("openRequestId", open_request_id_);
31
32  return SendEvent(
33      request_id,
34      extensions::api::file_system_provider::OnCloseFileRequested::kEventName,
35      values.Pass());
36}
37
38void CloseFile::OnSuccess(int /* request_id */,
39                          scoped_ptr<RequestValue> result,
40                          bool has_more) {
41  callback_.Run(base::File::FILE_OK);
42}
43
44void CloseFile::OnError(int /* request_id */,
45                        scoped_ptr<RequestValue> /* result */,
46                        base::File::Error error) {
47  callback_.Run(error);
48}
49
50}  // namespace operations
51}  // namespace file_system_provider
52}  // namespace chromeos
53