Exemplo n.º 1
0
static void stream_emitEvent(dyad_Stream *stream, dyad_Event *e) {
  int i;
  e->stream = stream;
  for (i = 0; i < stream->listeners.length; i++) {
    Listener *listener = &stream->listeners.data[i];
    if (listener->event == e->type) {
      e->udata = listener->udata;
      listener->callback(e);
    }
    /* Check to see if this listener was removed: If it was we decrement `i`
     * since the next listener will now be in this ones place */
    if (listener != &stream->listeners.data[i]) {
      i--;
    }
  }
}
Exemplo n.º 2
0
void listener_notify(gpointer data) {
	Listener* listener = data;
	MAGIC_ASSERT(listener);
	listener->callback(listener->data, listener->callbackArgument);
}