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

Side by Side Diff: chrome/browser/common/cancelable_request.h

Issue 14113053: chrome: Use base::MessageLoop. (Part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase again Created 7 years, 6 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
OLDNEW
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 // CancelableRequestProviders and Consumers work together to make requests that 5 // CancelableRequestProviders and Consumers work together to make requests that
6 // execute on a background thread in the provider and return data to the 6 // execute on a background thread in the provider and return data to the
7 // consumer. These classes collaborate to keep a list of open requests and to 7 // consumer. These classes collaborate to keep a list of open requests and to
8 // make sure that requests do not outlive either of the objects involved in the 8 // make sure that requests do not outlive either of the objects involved in the
9 // transaction. 9 // transaction.
10 // 10 //
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 consumer_->DidExecute(provider_, handle_); 580 consumer_->DidExecute(provider_, handle_);
581 } 581 }
582 582
583 // Cover method for CancelableRequestConsumerBase::WillExecute. 583 // Cover method for CancelableRequestConsumerBase::WillExecute.
584 void WillExecute() { 584 void WillExecute() {
585 consumer_->WillExecute(provider_, handle_); 585 consumer_->WillExecute(provider_, handle_);
586 } 586 }
587 587
588 // The message loop that this request was created on. The callback will 588 // The message loop that this request was created on. The callback will
589 // happen on the same thread. 589 // happen on the same thread.
590 MessageLoop* callback_thread_; 590 base::MessageLoop* callback_thread_;
591 591
592 // The provider for this request. When we execute, we will notify this that 592 // The provider for this request. When we execute, we will notify this that
593 // request is complete to it can remove us from the requests it tracks. 593 // request is complete to it can remove us from the requests it tracks.
594 CancelableRequestProvider* provider_; 594 CancelableRequestProvider* provider_;
595 595
596 // Notified after we execute that the request is complete. This should only 596 // Notified after we execute that the request is complete. This should only
597 // be accessed if !canceled_.IsSet(), otherwise the pointer is invalid. 597 // be accessed if !canceled_.IsSet(), otherwise the pointer is invalid.
598 CancelableRequestConsumerBase* consumer_; 598 CancelableRequestConsumerBase* consumer_;
599 599
600 // The handle to this request inside the provider. This will be initialized 600 // The handle to this request inside the provider. This will be initialized
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 // calling this. It is optional in the cancelled case. In the non-cancelled 663 // calling this. It is optional in the cancelled case. In the non-cancelled
664 // case, this MUST be called. 664 // case, this MUST be called.
665 // 665 //
666 // If there are any pointers in the parameters, they must live at least as 666 // If there are any pointers in the parameters, they must live at least as
667 // long as the request so that it can be forwarded to the other thread. 667 // long as the request so that it can be forwarded to the other thread.
668 // For complex objects, this would typically be done by having a derived 668 // For complex objects, this would typically be done by having a derived
669 // request own the data itself. 669 // request own the data itself.
670 void ForwardResult(const TupleType& param) { 670 void ForwardResult(const TupleType& param) {
671 DCHECK(callback_.get()); 671 DCHECK(callback_.get());
672 if (!canceled()) { 672 if (!canceled()) {
673 if (callback_thread_ == MessageLoop::current()) { 673 if (callback_thread_ == base::MessageLoop::current()) {
674 // We can do synchronous callbacks when we're on the same thread. 674 // We can do synchronous callbacks when we're on the same thread.
675 ExecuteCallback(param); 675 ExecuteCallback(param);
676 } else { 676 } else {
677 callback_thread_->PostTask( 677 callback_thread_->PostTask(
678 FROM_HERE, 678 FROM_HERE,
679 base::Bind(&CancelableRequest<CB>::ExecuteCallback, this, param)); 679 base::Bind(&CancelableRequest<CB>::ExecuteCallback, this, param));
680 } 680 }
681 } 681 }
682 } 682 }
683 683
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 } 1007 }
1008 1008
1009 // The value. 1009 // The value.
1010 Type value; 1010 Type value;
1011 1011
1012 protected: 1012 protected:
1013 virtual ~CancelableRequest1() {} 1013 virtual ~CancelableRequest1() {}
1014 }; 1014 };
1015 1015
1016 #endif // CHROME_BROWSER_COMMON_CANCELABLE_REQUEST_H_ 1016 #endif // CHROME_BROWSER_COMMON_CANCELABLE_REQUEST_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/xinput_hierarchy_changed_event_listener_aura.cc ('k') | chrome/browser/common/cancelable_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698