Пример #1
0
int
want_timeout(motmot_event_callback_t func, void *arg, void *data, unsigned msecs)
{
  g_timeout_add(msecs, call_callback, callback_new(func, arg, NULL, 0));

  return 0;
}
Пример #2
0
Файл: engine.c Проект: fizx/sit
Engine *
engine_new(Parser *parser, pstring *data_dir, long size, bool dedupe, pstring *auth) {
  Engine *engine = calloc(1, sizeof(Engine));
	engine->queries = dictCreate(getTermQueryNodeDict(), 0);
	engine->parser = parser;
	engine->query_id = 0;
  engine->catchall_callbacks = NULL;
	engine->after_on_document = NULL;
	engine->stream = ring_buffer_new(size / 4);
  engine->term_dictionary = lrw_dict_new(getTermPlistDict(), size / 32);
	engine->postings = plist_pool_new(size / 4);
	engine->docs = ring_buffer_new((size / 4 / sizeof(DocRef)) * sizeof(DocRef));
	engine->data = NULL;
	if(auth) {
    engine->auth = pcpy(auth);
  }
	engine->ints_capacity = size / 4;
	engine->ints = dictCreate(getPstrRingBufferDict(), 0);
  if(data_dir) {
    engine->data_dir = pcpy(data_dir);
    engine_replay_journal(engine);
    engine_reopen_journal(engine);
  }
	if(dedupe) {
    engine->doc_set = dictCreate(getDocRefDict(), engine);
    engine->docs->on_evict = callback_new(_doc_evict, engine);	  
	} else {
    engine->doc_set = NULL;
	}
  engine->error = NULL;
	return engine;
}
Пример #3
0
static struct event_priv*
navfocus_new(struct event_methods *meth)
{
	printf("Waiting for User Input!! Town:Street Please!\n");
	*meth=navfocus_methods;
	GIOChannel * ioch = g_new0(GIOChannel,1);
	GIOCondition * cond = g_new0(GIOCondition,1);
	gpointer * data = g_new0(gpointer,1);
	void* io = ioch;
	void* co = cond;
	void* da = data;
	void ** p = malloc(3*sizeof(void*));
	p[0] = io;
	p[1] = co;
	p[2] = da;
	struct callback * cb = callback_new(readUserInput_two,0, NULL);
	navfocus_add_watch(0,event_watch_cond_read, cb);
	return (struct event_priv *)navfocus_new;
}
Пример #4
0
int
want_write(int fd, enum motmot_fdtype fdtype, void *data,
    motmot_event_callback_t func, void *arg)
{
  GIOChannel *channel;
  struct callback *cb;
  int ephemeral = 0;

  channel = (GIOChannel *)data;

  if (channel == NULL) {
    channel = g_io_channel_unix_new(fd);
    ephemeral = 1;
  }

  cb = callback_new(func, arg, channel, ephemeral);
  g_io_add_watch(channel, G_IO_OUT, socket_ready, cb);

  return 0;
}
Пример #5
0
void application_callback(Application* application, CallbackFunc userCallback,
		gpointer userData, gpointer userArgument, guint millisecondsDelay) {
	MAGIC_ASSERT(application);

	/* the application wants a callback. since we need it to happen in our
	 * application and plug-in context, we create a callback to our own
	 * function first, and then redirect and execute theirs
	 */

	ApplicationCallbackData* data = g_new0(ApplicationCallbackData, 1);
	data->callback = userCallback;
	data->data = userData;
	data->argument = userArgument;

	CallbackEvent* event = callback_new((CallbackFunc)_application_callbackTimerExpired, application, data);
	SimulationTime nanos = SIMTIME_ONE_MILLISECOND * millisecondsDelay;

	/* callback to our own node */
	worker_scheduleEvent((Event*)event, nanos, 0);
}