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

Side by Side Diff: base/bind_internal.h.pump

Issue 8073012: Callback API Change: Allow Bind() to take a Callback<> and bind all its free parameters. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « base/bind_internal.h ('k') | base/bind_unittest.cc » ('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 is a pump file for generating file templates. Pump is a python 1 $$ This is a pump file for generating file templates. Pump is a python
2 $$ script that is part of the Google Test suite of utilities. Description 2 $$ script that is part of the Google Test suite of utilities. Description
3 $$ can be found here: 3 $$ can be found here:
4 $$ 4 $$
5 $$ http://code.google.com/p/googletest/wiki/PumpManual 5 $$ http://code.google.com/p/googletest/wiki/PumpManual
6 $$ 6 $$
7 7
8 $var MAX_ARITY = 6 8 $var MAX_ARITY = 6
9 9
10 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 10 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 $for M_UNBOUND_ARG , [[x$(M_UNBOUND_ARG)]]); 259 $for M_UNBOUND_ARG , [[x$(M_UNBOUND_ARG)]]);
260 } 260 }
261 }; 261 };
262 262
263 ]] $$ if BOUND 263 ]] $$ if BOUND
264 264
265 ]] $$ if UNBOUND 265 ]] $$ if UNBOUND
266 ]] $$ for ARITY 266 ]] $$ for ARITY
267 ]] $$ for BOUND 267 ]] $$ for BOUND
268 268
269 // BindMoreFuncN<>
270 //
271 // This set of functions help in fully binding the free parameters in a
272 // Callback<>.
273 $for BOUND [[
274 $range BOUND_ARG 1..BOUND
275 $if BOUND != 0 [[
276
277 template <typename Sig, $for BOUND_ARG , [[typename P$(BOUND_ARG)]]>
278 void BindMoreFunc$(BOUND)(const base::Callback<Sig>& callback, [[]]
279 $for BOUND_ARG , [[const P$(BOUND_ARG)& p$(BOUND_ARG)]]) {
280 callback.Run($for BOUND_ARG , [[p$(BOUND_ARG)]]);
281 }
282
283 ]] $$ if BOUND
284 ]] $$ for BOUND
285
269 // InvokerStorageN<> 286 // InvokerStorageN<>
270 // 287 //
271 // These are the actual storage classes for the Invokers. 288 // These are the actual storage classes for the Invokers.
272 // 289 //
273 // Though these types are "classes", they are being used as structs with 290 // Though these types are "classes", they are being used as structs with
274 // all member variable public. We cannot make it a struct because it inherits 291 // all member variable public. We cannot make it a struct because it inherits
275 // from a class which causes a compiler warning. We cannot add a "Run()" method 292 // from a class which causes a compiler warning. We cannot add a "Run()" method
276 // that forwards the unbound arguments because that would require we unwrap the 293 // that forwards the unbound arguments because that would require we unwrap the
277 // Sig type like in InvokerN above to know the return type, and the arity 294 // Sig type like in InvokerN above to know the return type, and the arity
278 // of Run(). 295 // of Run().
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 389
373 ]] 390 ]]
374 }; 391 };
375 392
376 ]] $$ for BOUND 393 ]] $$ for BOUND
377 394
378 } // namespace internal 395 } // namespace internal
379 } // namespace base 396 } // namespace base
380 397
381 #endif // BASE_BIND_INTERNAL_H_ 398 #endif // BASE_BIND_INTERNAL_H_
OLDNEW
« no previous file with comments | « base/bind_internal.h ('k') | base/bind_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698