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

Side by Side Diff: base/message_loop/message_loop.h

Issue 141683005: Removes MessageLoop::Type checks in favor of IsCurrent on MessageLoops. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: base:: Created 6 years, 11 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 | « no previous file | base/power_monitor/power_monitor_device_source_win.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 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ 5 #ifndef BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_
6 #define BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ 6 #define BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_
7 7
8 #include <queue> 8 #include <queue>
9 #include <string> 9 #include <string>
10 10
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 } 558 }
559 559
560 // Returns the MessageLoopForUI of the current thread. 560 // Returns the MessageLoopForUI of the current thread.
561 static MessageLoopForUI* current() { 561 static MessageLoopForUI* current() {
562 MessageLoop* loop = MessageLoop::current(); 562 MessageLoop* loop = MessageLoop::current();
563 DCHECK(loop); 563 DCHECK(loop);
564 DCHECK_EQ(MessageLoop::TYPE_UI, loop->type()); 564 DCHECK_EQ(MessageLoop::TYPE_UI, loop->type());
565 return static_cast<MessageLoopForUI*>(loop); 565 return static_cast<MessageLoopForUI*>(loop);
566 } 566 }
567 567
568 static bool IsCurrent() {
569 MessageLoop* loop = MessageLoop::current();
570 return loop && loop->type() == MessageLoop::TYPE_UI;
571 }
572
568 #if defined(OS_IOS) 573 #if defined(OS_IOS)
569 // On iOS, the main message loop cannot be Run(). Instead call Attach(), 574 // On iOS, the main message loop cannot be Run(). Instead call Attach(),
570 // which connects this MessageLoop to the UI thread's CFRunLoop and allows 575 // which connects this MessageLoop to the UI thread's CFRunLoop and allows
571 // PostTask() to work. 576 // PostTask() to work.
572 void Attach(); 577 void Attach();
573 #endif 578 #endif
574 579
575 #if defined(OS_ANDROID) 580 #if defined(OS_ANDROID)
576 // On Android, the UI message loop is handled by Java side. So Run() should 581 // On Android, the UI message loop is handled by Java side. So Run() should
577 // never be called. Instead use Start(), which will forward all the native UI 582 // never be called. Instead use Start(), which will forward all the native UI
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 MessageLoopForIO() : MessageLoop(TYPE_IO) { 662 MessageLoopForIO() : MessageLoop(TYPE_IO) {
658 } 663 }
659 664
660 // Returns the MessageLoopForIO of the current thread. 665 // Returns the MessageLoopForIO of the current thread.
661 static MessageLoopForIO* current() { 666 static MessageLoopForIO* current() {
662 MessageLoop* loop = MessageLoop::current(); 667 MessageLoop* loop = MessageLoop::current();
663 DCHECK_EQ(MessageLoop::TYPE_IO, loop->type()); 668 DCHECK_EQ(MessageLoop::TYPE_IO, loop->type());
664 return static_cast<MessageLoopForIO*>(loop); 669 return static_cast<MessageLoopForIO*>(loop);
665 } 670 }
666 671
672 static bool IsCurrent() {
673 MessageLoop* loop = MessageLoop::current();
674 return loop && loop->type() == MessageLoop::TYPE_IO;
675 }
676
667 void AddIOObserver(IOObserver* io_observer) { 677 void AddIOObserver(IOObserver* io_observer) {
668 pump_io()->AddIOObserver(io_observer); 678 pump_io()->AddIOObserver(io_observer);
669 } 679 }
670 680
671 void RemoveIOObserver(IOObserver* io_observer) { 681 void RemoveIOObserver(IOObserver* io_observer) {
672 pump_io()->RemoveIOObserver(io_observer); 682 pump_io()->RemoveIOObserver(io_observer);
673 } 683 }
674 684
675 #if defined(OS_WIN) 685 #if defined(OS_WIN)
676 // Please see MessagePumpWin for definitions of these methods. 686 // Please see MessagePumpWin for definitions of these methods.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 724
715 // Do not add any member variables to MessageLoopForIO! This is important b/c 725 // Do not add any member variables to MessageLoopForIO! This is important b/c
716 // MessageLoopForIO is often allocated via MessageLoop(TYPE_IO). Any extra 726 // MessageLoopForIO is often allocated via MessageLoop(TYPE_IO). Any extra
717 // data that you need should be stored on the MessageLoop's pump_ instance. 727 // data that you need should be stored on the MessageLoop's pump_ instance.
718 COMPILE_ASSERT(sizeof(MessageLoop) == sizeof(MessageLoopForIO), 728 COMPILE_ASSERT(sizeof(MessageLoop) == sizeof(MessageLoopForIO),
719 MessageLoopForIO_should_not_have_extra_member_variables); 729 MessageLoopForIO_should_not_have_extra_member_variables);
720 730
721 } // namespace base 731 } // namespace base
722 732
723 #endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ 733 #endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_
OLDNEW
« no previous file with comments | « no previous file | base/power_monitor/power_monitor_device_source_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698