40 lines
853 B
C
40 lines
853 B
C
![]() |
// A implemetation of a cross flatform waitable event based message loop
|
|||
|
|
|||
|
#ifndef BASE_FRAMEWORK_DEFAULT_MESSAGE_PUMP_H_
|
|||
|
#define BASE_FRAMEWORK_DEFAULT_MESSAGE_PUMP_H_
|
|||
|
|
|||
|
#include "base/framework/message_pump.h"
|
|||
|
#include "base/time/time.h"
|
|||
|
#include "base/synchronization/waitable_event.h"
|
|||
|
|
|||
|
namespace nbase
|
|||
|
{
|
|||
|
|
|||
|
class DefaultMessagePump : public MessagePump
|
|||
|
{
|
|||
|
public:
|
|||
|
|
|||
|
DefaultMessagePump();
|
|||
|
virtual ~DefaultMessagePump() {}
|
|||
|
|
|||
|
virtual void Run(Delegate* delegate);
|
|||
|
virtual void Quit();
|
|||
|
virtual void ScheduleWork();
|
|||
|
virtual void ScheduleDelayedWork(const TimeTicks& delay_message_time);
|
|||
|
|
|||
|
private:
|
|||
|
void Wait();
|
|||
|
void WaitTimeout(const TimeDelta &timeout);
|
|||
|
void Wakeup();
|
|||
|
|
|||
|
WaitableEvent event_;
|
|||
|
bool should_quit_;
|
|||
|
TimeTicks delayed_work_time_;
|
|||
|
|
|||
|
DISALLOW_COPY_AND_ASSIGN(DefaultMessagePump);
|
|||
|
};
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#endif // BASE_FRAMEWORK_DEFAULT_MESSAGE_PUMP_H_
|