void CEntityComponent::NotifyAll(IParam ¶m) { for (std::list<ISubscriber *>::iterator it = m_listSubscriber.begin(); it != m_listSubscriber.end(); ++it) { CommonSubscriber *subscriber = (CommonSubscriber *)*it; std::string strSubscriberName = subscriber->GetSubscriberName(); std::string strPublisherName = GetPublisherName(); if (strSubscriberName.empty() || strPublisherName.empty() || param.ExistParam(strSubscriberName)) { subscriber->OnNotify(param); } else { param.SetParam(strSubscriberName, strPublisherName); subscriber->OnNotify(param); param.RemoveParam(strSubscriberName); } } }