MainLoop Class Reference

#include <Pt/System/MainLoop.h>

Thread-safe event loop supporting I/O multiplexing and Timers. More...

Inherits EventLoop.

Public Member Functions

 MainLoop ()
 Default Constructor.
 
 MainLoop (Allocator &a)
 Construct with allocator.
 
virtual ~MainLoop ()
 Destructor.
 
void commitEvent (const Event &ev)
 Queues an event and triggers event processing.
 
Signal< const Event & > & eventReceived ()
 Reports all events.
 
void exit ()
 Stops the loop.
 
Signalexited ()
 Emited when the eventloop is exited.
 
void processEvents ()
 Process all queued events.
 
void queueEvent (const Event &ev)
 Only queues an event.
 
void run ()
 Starts the loop.
 
void setReady (Selectable &s)
 Set the Selectable to ready-state.
 
void wake ()
 Triggers event processing.
 

Protected Member Functions

virtual void onCommitEvent (const Event &ev)
 Queues an event and triggers event processing.
 
virtual void onQueueEvent (const Event &ev)
 Only queues an event.
 
virtual void onWake ()
 Triggers event processing.
 

Detailed Description

The following example uses a MainLoop to wait on acitvity on a Timer, which is set to time-out after 1000 msecs.

// slot to handle timer activity
void onTimer();
int main()
{
using Pt::System;
MainLoop loop;
Timer timer;
timer.setActive(loop);
timer.start(1000);
timer.timeout() += Pt::slot(onTimer);
loop.run();
return 0;
}