CodeReview [tom, 2/20/2007] The "listener" argument was an IMessageListener, but it was actually used as a SimObject and never a listener. Thus, it is now a SimObject.
| 326 | // CodeReview [tom, 2/20/2007] The "listener" argument was an IMessageListener, |
| 327 | // but it was actually used as a SimObject and never a listener. Thus, it is now a SimObject. |
| 328 | void EventManager::remove(SimObject *cbObj, const char* event) |
| 329 | { |
| 330 | // If the event doesn't exist, we have succeeded in removing it! |
| 331 | if( !isRegisteredEvent( event ) ) |
| 332 | return; |
| 333 | |
| 334 | Vector<EventManagerListener::Subscriber>* subscribers = mListener.mSubscribers.retreive( event ); |
| 335 | if( !subscribers ) |
| 336 | return; |
| 337 | |
| 338 | for( Vector<EventManagerListener::Subscriber>::iterator iter = subscribers->begin(); iter != subscribers->end(); iter++ ) |
| 339 | { |
| 340 | // Erase the event. |
| 341 | if( iter->listener == cbObj ) |
| 342 | { |
| 343 | if (iter->callDepth > 0) |
| 344 | iter->removeFlag = true; |
| 345 | else |
| 346 | subscribers->erase_fast( iter ); |
| 347 | break; |
| 348 | } |
| 349 | } |
| 350 | } |
| 351 | |
| 352 | void EventManager::removeAll(SimObject *cbObj) |
| 353 | { |
no test coverage detected