Esempio n. 1
0
void CEntityComponent::NotifyAll(IParam &param)
{
    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);
        }
    }
}