| 125 | | module.addType<I_EventQueue>("EventQueue", "Event Queue") |
| 126 | | .addMethod("createEvent", &I_EventQueue::createEvent) |
| 127 | | .addMethod("getEvent", &I_EventQueue::getEvent) |
| 128 | | .addMethod("dispatchOneEvent", &I_EventQueue::dispatchOneEvent) |
| 129 | | .addMethod("dispatchAllEvents", &I_EventQueue::dispatchAllEvents) |
| | 130 | module.addType<EventQueue>("EventQueue", "Event Queue") |
| | 131 | .addMethod("dispatchOneEvent", &EventQueue::dispatchOneEvent) |
| | 132 | .addMethod("dispatchAllEvents", &EventQueue::dispatchAllEvents) |
| | 164 | I_Event& |
| | 165 | EventService::createEvent(const std::string& _name) |
| | 166 | { |
| | 167 | // Since getEvent() will create the event if |
| | 168 | // it doesn't exist, just call it. |
| | 169 | return getEvent(_name); |
| | 170 | } |
| | 171 | |
| | 172 | //-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ |
| | 173 | I_Event& |
| | 174 | EventService::getEvent(const std::string& _name) |
| | 175 | { |
| | 176 | Threading::CriticalSection guard(m_pEventsMutex); |
| | 177 | |
| | 178 | // TODO Make sure the event has been created. |
| | 179 | Events_type::iterator iter = m_events.find(_name); |
| | 180 | |
| | 181 | if (iter == m_events.end()) |
| | 182 | { |
| | 183 | Event_impl* pEvent = new Event_impl(*this); |
| | 184 | |
| | 185 | m_events[_name] = pEvent; |
| | 186 | |
| | 187 | return *pEvent; |
| | 188 | } |
| | 189 | else |
| | 190 | { |
| | 191 | return *iter->second; |
| | 192 | } |
| | 193 | } |
| | 194 | |
| | 195 | //-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ |