OLD | NEW |
(Empty) | |
| 1 // This file was GENERATED by command: |
| 2 // pump.py callback_tracker_internal.h.pump |
| 3 // DO NOT EDIT BY HAND!!! |
| 4 |
| 5 |
| 6 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 7 // Use of this source code is governed by a BSD-style license that can be |
| 8 // found in the LICENSE file. |
| 9 |
| 10 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERNAL_
H_ |
| 11 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERNAL_
H_ |
| 12 |
| 13 #include "base/callback.h" |
| 14 #include "base/callback_internal.h" |
| 15 #include "base/memory/scoped_ptr.h" |
| 16 #include "base/memory/weak_ptr.h" |
| 17 |
| 18 namespace sync_file_system { |
| 19 namespace drive_backend { |
| 20 |
| 21 class CallbackTracker; |
| 22 |
| 23 namespace internal { |
| 24 |
| 25 class AbortHelper { |
| 26 public: |
| 27 explicit AbortHelper(CallbackTracker* tracker); |
| 28 ~AbortHelper(); |
| 29 base::WeakPtr<AbortHelper> AsWeakPtr(); |
| 30 |
| 31 static scoped_ptr<AbortHelper> TakeOwnership( |
| 32 const base::WeakPtr<AbortHelper>& abort_helper); |
| 33 |
| 34 private: |
| 35 CallbackTracker* tracker_; // Not owned. |
| 36 base::WeakPtrFactory<AbortHelper> weak_ptr_factory_; |
| 37 |
| 38 DISALLOW_COPY_AND_ASSIGN(AbortHelper); |
| 39 }; |
| 40 |
| 41 template <typename> |
| 42 struct InvokeAndInvalidateHelper; |
| 43 |
| 44 template <> |
| 45 struct InvokeAndInvalidateHelper<void()> { |
| 46 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 47 const base::Callback<void()>& callback) { |
| 48 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 49 if (deleter) { |
| 50 callback.Run(); |
| 51 } |
| 52 } |
| 53 }; |
| 54 |
| 55 template <typename A1> |
| 56 struct InvokeAndInvalidateHelper<void(A1)> { |
| 57 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 58 const base::Callback<void(A1)>& callback, A1 a1) { |
| 59 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 60 if (deleter) { |
| 61 callback.Run(base::internal::CallbackForward(a1)); |
| 62 } |
| 63 } |
| 64 }; |
| 65 |
| 66 template <typename A1, typename A2> |
| 67 struct InvokeAndInvalidateHelper<void(A1, A2)> { |
| 68 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 69 const base::Callback<void(A1, A2)>& callback, A1 a1, A2 a2) { |
| 70 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 71 if (deleter) { |
| 72 callback.Run(base::internal::CallbackForward(a1), |
| 73 base::internal::CallbackForward(a2)); |
| 74 } |
| 75 } |
| 76 }; |
| 77 |
| 78 template <typename A1, typename A2, typename A3> |
| 79 struct InvokeAndInvalidateHelper<void(A1, A2, A3)> { |
| 80 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 81 const base::Callback<void(A1, A2, A3)>& callback, A1 a1, |
| 82 A2 a2, A3 a3) { |
| 83 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 84 if (deleter) { |
| 85 callback.Run(base::internal::CallbackForward(a1), |
| 86 base::internal::CallbackForward(a2), |
| 87 base::internal::CallbackForward(a3)); |
| 88 } |
| 89 } |
| 90 }; |
| 91 |
| 92 template <typename A1, typename A2, typename A3, typename A4> |
| 93 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4)> { |
| 94 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 95 const base::Callback<void(A1, A2, A3, A4)>& callback, A1 a1, |
| 96 A2 a2, A3 a3, A4 a4) { |
| 97 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 98 if (deleter) { |
| 99 callback.Run(base::internal::CallbackForward(a1), |
| 100 base::internal::CallbackForward(a2), |
| 101 base::internal::CallbackForward(a3), |
| 102 base::internal::CallbackForward(a4)); |
| 103 } |
| 104 } |
| 105 }; |
| 106 |
| 107 template <typename A1, typename A2, typename A3, typename A4, typename A5> |
| 108 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5)> { |
| 109 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 110 const base::Callback<void(A1, A2, A3, A4, A5)>& callback, |
| 111 A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { |
| 112 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 113 if (deleter) { |
| 114 callback.Run(base::internal::CallbackForward(a1), |
| 115 base::internal::CallbackForward(a2), |
| 116 base::internal::CallbackForward(a3), |
| 117 base::internal::CallbackForward(a4), |
| 118 base::internal::CallbackForward(a5)); |
| 119 } |
| 120 } |
| 121 }; |
| 122 |
| 123 template <typename A1, typename A2, typename A3, typename A4, typename A5, |
| 124 typename A6> |
| 125 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5, A6)> { |
| 126 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 127 const base::Callback<void(A1, A2, A3, A4, A5, A6)>& callback, |
| 128 A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { |
| 129 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 130 if (deleter) { |
| 131 callback.Run(base::internal::CallbackForward(a1), |
| 132 base::internal::CallbackForward(a2), |
| 133 base::internal::CallbackForward(a3), |
| 134 base::internal::CallbackForward(a4), |
| 135 base::internal::CallbackForward(a5), |
| 136 base::internal::CallbackForward(a6)); |
| 137 } |
| 138 } |
| 139 }; |
| 140 |
| 141 template <typename A1, typename A2, typename A3, typename A4, typename A5, |
| 142 typename A6, typename A7> |
| 143 struct InvokeAndInvalidateHelper<void(A1, A2, A3, A4, A5, A6, A7)> { |
| 144 static void Run(const base::WeakPtr<AbortHelper>& abort_helper, |
| 145 const base::Callback<void(A1, A2, A3, A4, A5, A6, |
| 146 A7)>& callback, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, |
| 147 A7 a7) { |
| 148 scoped_ptr<AbortHelper> deleter = AbortHelper::TakeOwnership(abort_helper); |
| 149 if (deleter) { |
| 150 callback.Run(base::internal::CallbackForward(a1), |
| 151 base::internal::CallbackForward(a2), |
| 152 base::internal::CallbackForward(a3), |
| 153 base::internal::CallbackForward(a4), |
| 154 base::internal::CallbackForward(a5), |
| 155 base::internal::CallbackForward(a6), |
| 156 base::internal::CallbackForward(a7)); |
| 157 } |
| 158 } |
| 159 }; |
| 160 |
| 161 } // namespace internal |
| 162 } // namespace drive_backend |
| 163 } // namespace sync_file_system |
| 164 |
| 165 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_CALLBACK_TRACKER_INTERN
AL_H_ |
OLD | NEW |