OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_CONTEXT_H_ | 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_CONTEXT_H_ |
6 #define WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_CONTEXT_H_ | 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_CONTEXT_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/weak_ptr.h" | |
9 #include "webkit/fileapi/file_system_context.h" | 10 #include "webkit/fileapi/file_system_context.h" |
10 #include "webkit/fileapi/media/mtp_device_file_system_config.h" | 11 #include "webkit/fileapi/media/mtp_device_file_system_config.h" |
11 #include "webkit/fileapi/task_runner_bound_observer_list.h" | 12 #include "webkit/fileapi/task_runner_bound_observer_list.h" |
12 #include "webkit/storage/webkit_storage_export.h" | 13 #include "webkit/storage/webkit_storage_export.h" |
13 | 14 |
14 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) | 15 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) |
15 #include "webkit/fileapi/media/mtp_device_delegate.h" | 16 #include "webkit/fileapi/media/mtp_device_delegate.h" |
16 #endif | 17 #endif |
17 | 18 |
18 namespace base { | 19 namespace base { |
(...skipping 12 matching lines...) Expand all Loading... | |
31 FileSystemContext* file_system_context() const { | 32 FileSystemContext* file_system_context() const { |
32 return file_system_context_.get(); | 33 return file_system_context_.get(); |
33 } | 34 } |
34 | 35 |
35 void set_allowed_bytes_growth(const int64& allowed_bytes_growth) { | 36 void set_allowed_bytes_growth(const int64& allowed_bytes_growth) { |
36 allowed_bytes_growth_ = allowed_bytes_growth; | 37 allowed_bytes_growth_ = allowed_bytes_growth; |
37 } | 38 } |
38 int64 allowed_bytes_growth() const { return allowed_bytes_growth_; } | 39 int64 allowed_bytes_growth() const { return allowed_bytes_growth_; } |
39 | 40 |
40 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) | 41 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) |
42 // Called on IO thread. | |
41 void set_mtp_device_delegate(MTPDeviceDelegate* delegate) { | 43 void set_mtp_device_delegate(MTPDeviceDelegate* delegate) { |
42 mtp_device_delegate_ = delegate; | 44 mtp_device_delegate_ = delegate->GetAsWeakPtrOnIOThread(); |
Lei Zhang
2012/11/21 01:33:30
This is no longer a simple setter if you call GetA
kmadhusu
2012/11/21 04:09:53
sure. Done.
| |
43 } | 45 } |
44 | 46 |
45 MTPDeviceDelegate* mtp_device_delegate() const { | 47 // Caller of this function should dereference the delegate only on media |
46 return mtp_device_delegate_.get(); | 48 // sequenced task runner thread. |
49 base::WeakPtr<MTPDeviceDelegate> mtp_device_delegate() const { | |
50 return mtp_device_delegate_; | |
47 } | 51 } |
48 #endif | 52 #endif |
49 | 53 |
50 // Returns TaskRunner which the operation is performed on. | 54 // Returns TaskRunner which the operation is performed on. |
51 base::SequencedTaskRunner* task_runner() const { | 55 base::SequencedTaskRunner* task_runner() const { |
52 return task_runner_.get(); | 56 return task_runner_.get(); |
53 } | 57 } |
54 | 58 |
55 // Overrides TaskRunner which the operation is performed on. | 59 // Overrides TaskRunner which the operation is performed on. |
56 // file_system_context_->task_runners()->file_task_runner() is used otherwise. | 60 // file_system_context_->task_runners()->file_task_runner() is used otherwise. |
(...skipping 27 matching lines...) Expand all Loading... | |
84 scoped_refptr<base::SequencedTaskRunner> task_runner_; | 88 scoped_refptr<base::SequencedTaskRunner> task_runner_; |
85 | 89 |
86 int64 allowed_bytes_growth_; | 90 int64 allowed_bytes_growth_; |
87 MediaPathFilter* media_path_filter_; | 91 MediaPathFilter* media_path_filter_; |
88 | 92 |
89 AccessObserverList access_observers_; | 93 AccessObserverList access_observers_; |
90 ChangeObserverList change_observers_; | 94 ChangeObserverList change_observers_; |
91 UpdateObserverList update_observers_; | 95 UpdateObserverList update_observers_; |
92 | 96 |
93 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) | 97 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) |
94 // Store the current mtp device delegate. | 98 // The media transfer protocol(MTP) device delegate. |
95 scoped_refptr<MTPDeviceDelegate> mtp_device_delegate_; | 99 // Set on IO thread and dereferenced on media sequenced task runner thread. |
100 base::WeakPtr<MTPDeviceDelegate> mtp_device_delegate_; | |
96 #endif | 101 #endif |
97 }; | 102 }; |
98 | 103 |
99 } // namespace fileapi | 104 } // namespace fileapi |
100 | 105 |
101 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_CONTEXT_H_ | 106 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_OPERATION_CONTEXT_H_ |
OLD | NEW |