Added a test for a weird messaging behaviour

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33854 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2009-10-31 20:33:09 +00:00
parent c9ad965c81
commit 7d601e6cdf
2 changed files with 84 additions and 0 deletions
@@ -0,0 +1,79 @@
#include <Handler.h>
#include <Looper.h>
#include <Message.h>
#include <stdio.h>
const int32 kMessage = 'MeXX';
class Looper : public BLooper {
public:
Looper();
virtual void MessageReceived(BMessage *message);
};
class Handler : public BHandler {
public:
Handler();
virtual void MessageReceived(BMessage *message);
};
int main()
{
Looper *looper = new Looper();
Handler *handler = new Handler();
looper->AddHandler(new Handler());
looper->AddHandler(new Handler());
looper->AddHandler(handler);
looper->AddHandler(new Handler());
looper->AddHandler(new Handler());
looper->Run();
looper->PostMessage(new BMessage(kMessage), handler);
snooze(1000000);
looper->Lock();
looper->Quit();
}
Looper::Looper()
:
BLooper("looper")
{
}
void
Looper::MessageReceived(BMessage *message)
{
switch (message->what) {
case kMessage:
printf("Message received by Looper\n");
break;
default:
BLooper::MessageReceived(message);
break;
}
}
Handler::Handler()
:
BHandler("handler")
{
}
void
Handler::MessageReceived(BMessage *message)
{
switch (message->what) {
default:
BHandler::MessageReceived(message);
break;
}
}
+5
View File
@@ -23,3 +23,8 @@ SEARCH on [ FGristFiles PortLink.cpp LinkReceiver.cpp LinkSender.cpp ]
SEARCH on [ FGristFiles Shape.cpp Region.cpp RegionSupport.cpp ]
= [ FDirName $(HAIKU_TOP) src kits interface ] ;
SimpleTest HandlerLooperMessageTest :
HandlerLooperMessageTest.cpp
: be $(TARGET_LIBSTDC++)
;