Esempio n. 1
0
	//---------------------------------------------------------------------
	void DefaultWorkQueueBase::addRequestHandler(uint16 channel, RequestHandler* rh)
	{
		OGRE_LOCK_RW_MUTEX_WRITE(mRequestHandlerMutex);

		RequestHandlerListByChannel::iterator i = mRequestHandlers.find(channel);
		if (i == mRequestHandlers.end())
			i = mRequestHandlers.insert(RequestHandlerListByChannel::value_type(channel, RequestHandlerList())).first;

		RequestHandlerList& handlers = i->second;
		if (std::find(handlers.begin(), handlers.end(), rh) == handlers.end())
			handlers.push_back(rh);

	}
Esempio n. 2
0
//---------------------------------------------------------------------
void DefaultWorkQueueBase::addRequestHandler(uint16 channel, RequestHandler* rh)
{
    OGRE_LOCK_RW_MUTEX_WRITE(mRequestHandlerMutex);

    RequestHandlerListByChannel::iterator i = mRequestHandlers.find(channel);
    if (i == mRequestHandlers.end())
        i = mRequestHandlers.insert(RequestHandlerListByChannel::value_type(channel, RequestHandlerList())).first;

    RequestHandlerList& handlers = i->second;
    bool duplicate = false;
    for (RequestHandlerList::iterator j = handlers.begin(); j != handlers.end(); ++j)
    {
        if ((*j)->getHandler() == rh)
        {
            duplicate = true;
            break;
        }
    }
    if (!duplicate)
        handlers.push_back(RequestHandlerHolderPtr(OGRE_NEW RequestHandlerHolder(rh)));

}