00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "HasEvents.h"
00021
00022
00023
00024
00025 HasEvents::HasEvents()
00026 {
00027 }
00028
00029
00030 HasEvents::~HasEvents()
00031 {
00032 removeEventSlots();
00033 }
00034
00035
00036 bool HasEvents::createEventSlot(const std::string &slotName)
00037 {
00038
00039 std::map<std::string, EventSlot>::iterator itSlots = mEventSlots.find(slotName);
00040
00041 if(itSlots != mEventSlots.end())
00042 return false;
00043
00044
00045 EventSlot slot;
00046 mEventSlots[slotName] = slot;
00047
00048 return true;
00049 }
00050
00051
00052 bool HasEvents::emitEvent(const std::string &slotName, void* p)
00053 {
00054
00055 std::map<std::string, EventSlot>::iterator itSlots = mEventSlots.find(slotName);
00056
00057 if(itSlots == mEventSlots.end())
00058 return false;
00059
00060 EventSlot &slot = itSlots->second;
00061
00062
00063 slot.emit(p);
00064 return true;
00065 }
00066
00067
00068 void HasEvents::removeEventSlots()
00069 {
00070 mEventSlots.clear();
00071 }
00072
00073
00074 bool HasEvents::removeEventSlot(const std::string &slotName)
00075 {
00076
00077 std::map<std::string, EventSlot>::iterator itSlots = mEventSlots.find(slotName);
00078
00079 if(itSlots == mEventSlots.end())
00080 return false;
00081
00082
00083 mEventSlots.erase(itSlots);
00084 return true;
00085
00086 }
00087
00088