/************************************************************************* Fire / Trigger an event *************************************************************************/ void EventSet::fireEvent(const String& name, EventArgs& args, const String& eventNamespace) { // handle global events GlobalEventSet::getSingleton().fireEvent(name, args, eventNamespace); // handle local event fireEvent_impl(name, args); }
//----------------------------------------------------------------------------// void EventSet::fireEvent(const String& name, EventArgs& args, const String& eventNamespace) { if (GlobalEventSet* ges = GlobalEventSet::getSingletonPtr()) ges->fireEvent(name, args, eventNamespace); fireEvent_impl(name, args); }
/************************************************************************* Overridden fireEvent which always succeeds. *************************************************************************/ void GlobalEventSet::fireEvent(const String& name, EventArgs& args, const String& eventNamespace) { // here we are very explicit about how we construct the event string. // Doing it 'longhand' like this saves significant time when compared // to the obvious - and previous - implementation: // fireEvent_impl(eventNamespace + "/" + name, args); String evt_name; evt_name.reserve(eventNamespace.length() + name.length() + 1); evt_name.append(eventNamespace); evt_name.append(1, '/'); evt_name.append(name); fireEvent_impl(evt_name, args); }