The Power in your Hands
Search Site:
About
Features
Documentation
Download
Community
Main
Classes
Namespaces
Modules
include
Pt
System
MainLoop.h
1
/*
2
* Copyright (C) 2006-2010 Marc Boris Duerner
3
*
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* As a special exception, you may use this file as part of a free
10
* software library without restriction. Specifically, if other files
11
* instantiate templates or use macros or inline functions from this
12
* file, or you compile this file and link it with other files to
13
* produce an executable, this file does not by itself cause the
14
* resulting executable to be covered by the GNU General Public
15
* License. This exception does not however invalidate any other
16
* reasons why the executable file might be covered by the GNU Library
17
* General Public License.
18
*
19
* This library is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22
* Lesser General Public License for more details.
23
*
24
* You should have received a copy of the GNU Lesser General Public
25
* License along with this library; if not, write to the Free Software
26
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27
*/
28
29
#ifndef PT_SYSTEM_MAINLOOP_H
30
#define PT_SYSTEM_MAINLOOP_H
31
32
#include <Pt/System/Api.h>
33
#include <Pt/System/EventLoop.h>
34
35
namespace
Pt {
36
37
namespace
System {
38
64
class
PT_SYSTEM_API
MainLoop
:
public
EventLoop
65
{
66
public
:
69
MainLoop
();
70
73
MainLoop
(
Allocator
& a);
74
77
virtual
~
MainLoop
();
78
80
Selector& selector();
81
83
bool
waitNext();
84
85
protected
:
86
virtual
void
onAttachSelectable(
Selectable
&);
87
88
virtual
void
onDetachSelectable(
Selectable
&);
89
90
virtual
void
onCancel(
Selectable
& s);
91
92
virtual
void
onReady(
Selectable
& s);
93
94
virtual
void
onRun();
95
96
virtual
void
onExit();
97
98
virtual
void
onCommitEvent(
const
Event
& ev);
99
100
virtual
void
onQueueEvent(
const
Event
& ev);
101
102
virtual
void
onWake();
103
104
virtual
void
onProcessEvents();
105
106
virtual
void
onAttachTimer(
Timer
& timer);
107
108
virtual
void
onDetachTimer(
Timer
& timer);
109
110
private
:
111
class
MainLoopImpl* _impl;
112
};
113
114
}
// namespace System
115
116
}
// namespace Pt
117
118
#endif // PT_SYSTEM_MAINLOOP_H
Pt::System::MainLoop
Thread-safe event loop supporting I/O multiplexing and Timers.
Definition:
MainLoop.h:64
Pt::Event
Base class for all event types.
Definition:
Event.h:49
Pt::System::Selectable
Dispatches operations through an event loop.
Definition:
Selectable.h:44
Pt::System::EventLoop
Thread-safe event loop supporting I/O multiplexing and Timers.
Definition:
EventLoop.h:72
Pt::Allocator
Allocator interface.
Definition:
Allocator.h:81
Pt::System::Timer
Notifies clients in constant intervals.
Definition:
Timer.h:72