Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: webrtc/base/callback.h

Issue 2877023002: Move webrtc/{base => rtc_base} (Closed)
Patch Set: update presubmit.py and DEPS include rules Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/base/byteorder_unittest.cc ('k') | webrtc/base/callback.h.pump » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // This file was GENERATED by command: 1 // This file was GENERATED by command:
2 // pump.py callback.h.pump 2 // pump.py callback.h.pump
3 // DO NOT EDIT BY HAND!!! 3 // DO NOT EDIT BY HAND!!!
4 4
5 /* 5 /*
6 * Copyright 2012 The WebRTC Project Authors. All rights reserved. 6 * Copyright 2012 The WebRTC Project Authors. All rights reserved.
7 * 7 *
8 * Use of this source code is governed by a BSD-style license 8 * Use of this source code is governed by a BSD-style license
9 * that can be found in the LICENSE file in the root of the source 9 * that can be found in the LICENSE file in the root of the source
10 * tree. An additional intellectual property rights grant can be found 10 * tree. An additional intellectual property rights grant can be found
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 // 55 //
56 // my_callback = Callback1<int, int>(add_k); 56 // my_callback = Callback1<int, int>(add_k);
57 // cout << my_callback(10) << endl; // 15 57 // cout << my_callback(10) << endl; // 15
58 // 58 //
59 // my_callback = Callback1<int, int>(); 59 // my_callback = Callback1<int, int>();
60 // cout << my_callback.empty() << endl; // true 60 // cout << my_callback.empty() << endl; // true
61 61
62 #ifndef WEBRTC_BASE_CALLBACK_H_ 62 #ifndef WEBRTC_BASE_CALLBACK_H_
63 #define WEBRTC_BASE_CALLBACK_H_ 63 #define WEBRTC_BASE_CALLBACK_H_
64 64
65 #include "webrtc/base/refcount.h"
66 #include "webrtc/base/scoped_ref_ptr.h"
67 65
68 namespace rtc { 66 // This header is deprecated and is just left here temporarily during
69 67 // refactoring. See https://bugs.webrtc.org/7634 for more details.
70 template <class R> 68 #include "webrtc/rtc_base/callback.h"
71 class Callback0 {
72 public:
73 // Default copy operations are appropriate for this class.
74 Callback0() {}
75 template <class T> Callback0(const T& functor)
76 : helper_(new RefCountedObject< HelperImpl<T> >(functor)) {}
77 R operator()() {
78 if (empty())
79 return R();
80 return helper_->Run();
81 }
82 bool empty() const { return !helper_; }
83
84 private:
85 struct Helper : RefCountInterface {
86 virtual ~Helper() {}
87 virtual R Run() = 0;
88 };
89 template <class T> struct HelperImpl : Helper {
90 explicit HelperImpl(const T& functor) : functor_(functor) {}
91 virtual R Run() {
92 return functor_();
93 }
94 T functor_;
95 };
96 scoped_refptr<Helper> helper_;
97 };
98
99 template <class R,
100 class P1>
101 class Callback1 {
102 public:
103 // Default copy operations are appropriate for this class.
104 Callback1() {}
105 template <class T> Callback1(const T& functor)
106 : helper_(new RefCountedObject< HelperImpl<T> >(functor)) {}
107 R operator()(P1 p1) {
108 if (empty())
109 return R();
110 return helper_->Run(p1);
111 }
112 bool empty() const { return !helper_; }
113
114 private:
115 struct Helper : RefCountInterface {
116 virtual ~Helper() {}
117 virtual R Run(P1 p1) = 0;
118 };
119 template <class T> struct HelperImpl : Helper {
120 explicit HelperImpl(const T& functor) : functor_(functor) {}
121 virtual R Run(P1 p1) {
122 return functor_(p1);
123 }
124 T functor_;
125 };
126 scoped_refptr<Helper> helper_;
127 };
128
129 template <class R,
130 class P1,
131 class P2>
132 class Callback2 {
133 public:
134 // Default copy operations are appropriate for this class.
135 Callback2() {}
136 template <class T> Callback2(const T& functor)
137 : helper_(new RefCountedObject< HelperImpl<T> >(functor)) {}
138 R operator()(P1 p1, P2 p2) {
139 if (empty())
140 return R();
141 return helper_->Run(p1, p2);
142 }
143 bool empty() const { return !helper_; }
144
145 private:
146 struct Helper : RefCountInterface {
147 virtual ~Helper() {}
148 virtual R Run(P1 p1, P2 p2) = 0;
149 };
150 template <class T> struct HelperImpl : Helper {
151 explicit HelperImpl(const T& functor) : functor_(functor) {}
152 virtual R Run(P1 p1, P2 p2) {
153 return functor_(p1, p2);
154 }
155 T functor_;
156 };
157 scoped_refptr<Helper> helper_;
158 };
159
160 template <class R,
161 class P1,
162 class P2,
163 class P3>
164 class Callback3 {
165 public:
166 // Default copy operations are appropriate for this class.
167 Callback3() {}
168 template <class T> Callback3(const T& functor)
169 : helper_(new RefCountedObject< HelperImpl<T> >(functor)) {}
170 R operator()(P1 p1, P2 p2, P3 p3) {
171 if (empty())
172 return R();
173 return helper_->Run(p1, p2, p3);
174 }
175 bool empty() const { return !helper_; }
176
177 private:
178 struct Helper : RefCountInterface {
179 virtual ~Helper() {}
180 virtual R Run(P1 p1, P2 p2, P3 p3) = 0;
181 };
182 template <class T> struct HelperImpl : Helper {
183 explicit HelperImpl(const T& functor) : functor_(functor) {}
184 virtual R Run(P1 p1, P2 p2, P3 p3) {
185 return functor_(p1, p2, p3);
186 }
187 T functor_;
188 };
189 scoped_refptr<Helper> helper_;
190 };
191
192 template <class R,
193 class P1,
194 class P2,
195 class P3,
196 class P4>
197 class Callback4 {
198 public:
199 // Default copy operations are appropriate for this class.
200 Callback4() {}
201 template <class T> Callback4(const T& functor)
202 : helper_(new RefCountedObject< HelperImpl<T> >(functor)) {}
203 R operator()(P1 p1, P2 p2, P3 p3, P4 p4) {
204 if (empty())
205 return R();
206 return helper_->Run(p1, p2, p3, p4);
207 }
208 bool empty() const { return !helper_; }
209
210 private:
211 struct Helper : RefCountInterface {
212 virtual ~Helper() {}
213 virtual R Run(P1 p1, P2 p2, P3 p3, P4 p4) = 0;
214 };
215 template <class T> struct HelperImpl : Helper {
216 explicit HelperImpl(const T& functor) : functor_(functor) {}
217 virtual R Run(P1 p1, P2 p2, P3 p3, P4 p4) {
218 return functor_(p1, p2, p3, p4);
219 }
220 T functor_;
221 };
222 scoped_refptr<Helper> helper_;
223 };
224
225 template <class R,
226 class P1,
227 class P2,
228 class P3,
229 class P4,
230 class P5>
231 class Callback5 {
232 public:
233 // Default copy operations are appropriate for this class.
234 Callback5() {}
235 template <class T> Callback5(const T& functor)
236 : helper_(new RefCountedObject< HelperImpl<T> >(functor)) {}
237 R operator()(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
238 if (empty())
239 return R();
240 return helper_->Run(p1, p2, p3, p4, p5);
241 }
242 bool empty() const { return !helper_; }
243
244 private:
245 struct Helper : RefCountInterface {
246 virtual ~Helper() {}
247 virtual R Run(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) = 0;
248 };
249 template <class T> struct HelperImpl : Helper {
250 explicit HelperImpl(const T& functor) : functor_(functor) {}
251 virtual R Run(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
252 return functor_(p1, p2, p3, p4, p5);
253 }
254 T functor_;
255 };
256 scoped_refptr<Helper> helper_;
257 };
258 } // namespace rtc
259 69
260 #endif // WEBRTC_BASE_CALLBACK_H_ 70 #endif // WEBRTC_BASE_CALLBACK_H_
OLDNEW
« no previous file with comments | « webrtc/base/byteorder_unittest.cc ('k') | webrtc/base/callback.h.pump » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698