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:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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++)
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user