Exemple #1
0
void Magpie::removeEventListener(const char * event_name, CCObject* obj, SEL_MagpieEvent func)
{
	for(MagpieEventList::iterator i = _listeners.begin(), e = _listeners.end(); i != e; /**/ ) {
		MagpieEventHandler* h = * i;
		if(h->obj == obj && h->func == func && (strcmp(h->event, event_name) == 0)) {
			i = _listeners.erase(i);
			destroyEventHandler( h );
		} else {
			i ++;
		}
	}
}
Exemple #2
0
Magpie::~Magpie() {

    while(_listeners.size() > 0) {
        MagpieEventHandler* h = _listeners.back();
        _listeners.pop_back();
        
        destroyEventHandler(h);
    }
    
    while (_callbacks.size() > 0) {
        MagpieCallbackHandler* h = _callbacks.back();
        _callbacks.pop_back();
        
        destroyCallbackHandler(h);
    }
}
Exemple #3
0
/**
 * remove the given message from the IRCD message hash
 * @param name the name of the message to remove
 * @return MOD_ERR_OK on success, althing else on fail.
 **/
int moduleEventDelHandler(char *name)
{
    EvtMessage *evm;
    int status;

    if (!mod_current_module) {
        return MOD_ERR_UNKNOWN;
    }
    evm = findEventHandler(EVENT, name);
    if (!evm) {
        return MOD_ERR_NOEXIST;
    }

    status = delEventHandler(EVENT, evm, mod_current_module->name);
    if (debug) {
        displayEvtMessageFromHash(evm->name);
    }
    destroyEventHandler(evm);
    return status;
}
Exemple #4
0
//-----------------------------------------------------------------------
void PUObserver::destroyEventHandler (size_t index)
{
    destroyEventHandler(getEventHandler(index));
}