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 ]
|
SEARCH on [ FGristFiles Shape.cpp Region.cpp RegionSupport.cpp ]
|
||||||
= [ FDirName $(HAIKU_TOP) src kits interface ] ;
|
= [ FDirName $(HAIKU_TOP) src kits interface ] ;
|
||||||
|
|
||||||
|
SimpleTest HandlerLooperMessageTest :
|
||||||
|
HandlerLooperMessageTest.cpp
|
||||||
|
: be $(TARGET_LIBSTDC++)
|
||||||
|
;
|
||||||
|
|||||||
Reference in New Issue
Block a user