00001 #if !defined(__MCEVENT_H_)
00002 #define __MCEVENT_H_
00003
00004 #ident "@(#)$Id: MCEvent.h,v 1.6 2004/12/02 07:05:20 mike Exp $"
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "MCVariant.h"
00026
00027 namespace mcllib
00028 {
00029
00030 class MCEventListener;
00031
00049 class MCEvent : public MCVariantType
00050 {
00051 public:
00053 typedef mcuint32 MCEventId;
00054
00059 MCEvent(MCEventId eventId);
00065 MCEvent(MCEventId eventId, const MCVariantType& vt);
00067 MCEvent(const MCEvent& event);
00072 MCEventId getEventId() const;
00078 const MCString& getEventName() const;
00083 void notify() const;
00084
00091 static MCEventId getEventId(const MCString& eventName);
00098 static const MCString& getEventName(MCEventId eventId);
00107 static MCEventId registerEvent(const MCString& name);
00116 static void addListener(MCEventId eventId,
00117 MCEventListener* pListener);
00129 static void removeListener(MCEventId eventId,
00130 MCEventListener* pListener);
00131 };
00132
00137 extern MCEvent::MCEventId MCEV_TERMINATE;
00138
00144 extern MCEvent::MCEventId MCEV_PREADDLISTENER;
00145
00151 extern MCEvent::MCEventId MCEV_POSTREMOVELISTENER;
00152
00159 extern MCEvent::MCEventId MCEV_THREADSTARTLISTENER;
00160
00167 extern MCEvent::MCEventId MCEV_THREADEXITLISTENER;
00168
00169
00170 };
00171
00172 #endif