1#include <Handler.h>
2#include <Looper.h>
3#include <Message.h>
4
5#include <stdio.h>
6
7const int32 kMessage = 'MeXX';
8
9class Looper : public BLooper {
10public:
11	Looper();
12	virtual void MessageReceived(BMessage *message);
13};
14
15
16class Handler : public BHandler {
17public:
18	Handler();
19	virtual void MessageReceived(BMessage *message);
20};
21
22int main()
23{
24	Looper *looper = new Looper();
25	Handler *handler = new Handler();
26	looper->AddHandler(new Handler());
27	looper->AddHandler(new Handler());
28	looper->AddHandler(handler);
29	looper->AddHandler(new Handler());
30	looper->AddHandler(new Handler());
31
32	looper->Run();
33
34	looper->PostMessage(new BMessage(kMessage), handler);
35
36	snooze(1000000);
37
38	looper->Lock();
39	looper->Quit();
40}
41
42
43Looper::Looper()
44	:
45	BLooper("looper")
46{
47}
48
49
50void
51Looper::MessageReceived(BMessage *message)
52{
53	switch (message->what) {
54		case kMessage:
55			printf("Message received by Looper\n");
56			break;
57		default:
58			BLooper::MessageReceived(message);
59			break;
60	}
61}
62
63
64Handler::Handler()
65	:
66	BHandler("handler")
67{
68}
69
70
71void
72Handler::MessageReceived(BMessage *message)
73{
74	switch (message->what) {
75		default:
76			BHandler::MessageReceived(message);
77			break;
78	}
79}
80