Added the class MessageEvent, which is an Event sending a message when executed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1509 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -9,6 +9,7 @@ Server obos_registrar :
|
|||||||
ClipboardHandler.cpp
|
ClipboardHandler.cpp
|
||||||
Event.cpp
|
Event.cpp
|
||||||
EventQueue.cpp
|
EventQueue.cpp
|
||||||
|
MessageEvent.cpp
|
||||||
MessageRunnerManager.cpp
|
MessageRunnerManager.cpp
|
||||||
MIMEManager.cpp
|
MIMEManager.cpp
|
||||||
Registrar.cpp
|
Registrar.cpp
|
||||||
|
|||||||
@@ -0,0 +1,161 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) 2001-2002, OpenBeOS
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
// copy of this software and associated documentation files (the "Software"),
|
||||||
|
// to deal in the Software without restriction, including without limitation
|
||||||
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
// and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
// Software is furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
//
|
||||||
|
// File Name: MessageEvent.cpp
|
||||||
|
// Author: Ingo Weinhold ([email protected])
|
||||||
|
// YellowBites (http://www.yellowbites.com)
|
||||||
|
// Description: A special event that sends a message when executed.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include <Handler.h>
|
||||||
|
#include <Looper.h>
|
||||||
|
|
||||||
|
#include "MessageEvent.h"
|
||||||
|
|
||||||
|
/*! \class MessageEvent
|
||||||
|
\brief A special event that sends a message when executed.
|
||||||
|
|
||||||
|
The constructors set the "auto delete" flag to \c true by default. It can
|
||||||
|
be changed by SetAutoDelete(), but note, that the object's creator is
|
||||||
|
responsible for its destruction then.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \var BMessage MessageEvent::fMessage
|
||||||
|
\brief Message to be sent.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \var BMessenger MessageEvent::fMessenger
|
||||||
|
\brief Message target.
|
||||||
|
|
||||||
|
Valid only, if \a fHandler is \c NULL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \var BHandler *MessageEvent::fHandler
|
||||||
|
\brief Message target.
|
||||||
|
|
||||||
|
May be \c NULL, then \a fMessenger specifies the message target.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
/*! \brief Creates a new MessageEvent with a target BHandler and a message
|
||||||
|
command.
|
||||||
|
|
||||||
|
\note The supplied BHandler must be valid the whole life time of the
|
||||||
|
MessageEvent.
|
||||||
|
|
||||||
|
\param time The time at which the message shall be sent.
|
||||||
|
\param handler The BHandler to which the message shall be delivered.
|
||||||
|
\param command The "what" field of the message to be sent.
|
||||||
|
*/
|
||||||
|
MessageEvent::MessageEvent(bigtime_t time, BHandler* handler, uint32 command)
|
||||||
|
: Event(time, true),
|
||||||
|
fMessage(command),
|
||||||
|
fMessenger(),
|
||||||
|
fHandler(handler)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
/*! \brief Creates a new MessageEvent with a target BHandler and a message.
|
||||||
|
|
||||||
|
The caller retains ownership of the supplied message. It can savely be
|
||||||
|
deleted after the constructor returns.
|
||||||
|
|
||||||
|
\note The supplied BHandler must be valid the whole life time of the
|
||||||
|
MessageEvent.
|
||||||
|
|
||||||
|
\param time The time at which the message shall be sent.
|
||||||
|
\param handler The BHandler to which the message shall be delivered.
|
||||||
|
\param message The message to be sent.
|
||||||
|
*/
|
||||||
|
MessageEvent::MessageEvent(bigtime_t time, BHandler* handler,
|
||||||
|
const BMessage *message)
|
||||||
|
: Event(time, true),
|
||||||
|
fMessage(*message),
|
||||||
|
fMessenger(),
|
||||||
|
fHandler(handler)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
/*! \brief Creates a new MessageEvent with a target BMessenger and a message
|
||||||
|
command.
|
||||||
|
\param time The time at which the message shall be sent.
|
||||||
|
\param messenger The BMessenger specifying the target to which the message
|
||||||
|
shall be delivered.
|
||||||
|
\param command The "what" field of the message to be sent.
|
||||||
|
*/
|
||||||
|
MessageEvent::MessageEvent(bigtime_t time, const BMessenger& messenger,
|
||||||
|
uint32 command)
|
||||||
|
: Event(time, true),
|
||||||
|
fMessage(command),
|
||||||
|
fMessenger(messenger),
|
||||||
|
fHandler(NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
/*! \brief Creates a new MessageEvent with a target BMessenger and a message.
|
||||||
|
|
||||||
|
The caller retains ownership of the supplied message. It can savely be
|
||||||
|
deleted after the constructor returns.
|
||||||
|
|
||||||
|
\param time The time at which the message shall be sent.
|
||||||
|
\param messenger The BMessenger specifying the target to which the message
|
||||||
|
shall be delivered.
|
||||||
|
\param message The message to be sent.
|
||||||
|
*/
|
||||||
|
MessageEvent::MessageEvent(bigtime_t time, const BMessenger& messenger,
|
||||||
|
const BMessage *message)
|
||||||
|
: Event(time, true),
|
||||||
|
fMessage(*message),
|
||||||
|
fMessenger(messenger),
|
||||||
|
fHandler(NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// destructor
|
||||||
|
/*! \brief Frees all resources associated with the object.
|
||||||
|
*/
|
||||||
|
MessageEvent::~MessageEvent()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do
|
||||||
|
/*! \brief Hook method invoked when the event is executed.
|
||||||
|
|
||||||
|
Implements Event. Delivers the message to the target.
|
||||||
|
|
||||||
|
\param queue The event queue executing the event.
|
||||||
|
\return \c true, if the object shall be deleted, \c false otherwise.
|
||||||
|
*/
|
||||||
|
bool
|
||||||
|
MessageEvent::Do(EventQueue *queue)
|
||||||
|
{
|
||||||
|
if (fHandler) {
|
||||||
|
if (BLooper* looper = fHandler->Looper())
|
||||||
|
looper->PostMessage(&fMessage, fHandler);
|
||||||
|
} else
|
||||||
|
fMessenger.SendMessage(&fMessage);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Copyright (c) 2001-2002, OpenBeOS
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
// copy of this software and associated documentation files (the "Software"),
|
||||||
|
// to deal in the Software without restriction, including without limitation
|
||||||
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
// and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
// Software is furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
//
|
||||||
|
// File Name: MessageEvent.h
|
||||||
|
// Author: Ingo Weinhold ([email protected])
|
||||||
|
// YellowBites (http://www.yellowbites.com)
|
||||||
|
// Description: A special event that sends a message when executed.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef MESSAGE_EVENT_H
|
||||||
|
#define MESSAGE_EVENT_H
|
||||||
|
|
||||||
|
#include <Message.h>
|
||||||
|
#include <Messenger.h>
|
||||||
|
|
||||||
|
#include "Event.h"
|
||||||
|
|
||||||
|
class BHandler;
|
||||||
|
|
||||||
|
class MessageEvent : public Event {
|
||||||
|
public:
|
||||||
|
MessageEvent(bigtime_t time, BHandler* handler, uint32 command);
|
||||||
|
MessageEvent(bigtime_t time, BHandler* handler, const BMessage *message);
|
||||||
|
MessageEvent(bigtime_t time, const BMessenger& messenger, uint32 command);
|
||||||
|
MessageEvent(bigtime_t time, const BMessenger& messenger,
|
||||||
|
const BMessage *message);
|
||||||
|
virtual ~MessageEvent();
|
||||||
|
|
||||||
|
virtual bool Do(EventQueue *queue);
|
||||||
|
|
||||||
|
private:
|
||||||
|
BMessage fMessage;
|
||||||
|
BMessenger fMessenger;
|
||||||
|
BHandler *fHandler;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MESSAGE_EVENT_H
|
||||||
Reference in New Issue
Block a user