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 ()
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.timeout() += Pt::slot(onTimer);;
return 0;