Exemplo n.º 1
0
/***
 Run the event processing loop and dispatch callbacks.

@function aura.eventloop_dispatch
@param loop [loop] eventloop instance
@param flags [number, optional] bitmask of the following flags
       aura.EVTLOOP_ONCE and aura.EVTLOOP_NONBLOCK

*/
static int l_eventloop_dispatch(lua_State *L)
{
	struct laura_eventloop *lloop;
	int flags = 0;

	TRACE();
	aura_check_args(L, 1);

	if (!lua_isuserdata(L, 1))
		aura_typeerror(L, 1, "ludata");

	lloop = lua_touserdata(L, 1);

	if (lua_gettop(L) == 2)
		flags = lua_tonumber(L, 2);

	aura_eventloop_dispatch(lloop->loop, flags);
	return 0;
}
Exemplo n.º 2
0
int main() {
	slog_init(NULL, 18);

	int ret;
	struct aura_node *n = aura_open("dummy", NULL);
	aura_wait_status(n, AURA_STATUS_ONLINE);

	ret = aura_start_call(n, "echo_u16", calldonecb, (void *) ARG, 0x0102);
	printf("call started with ret %d\n", ret);
	if (ret !=0)
		return ret;

	ret = aura_set_event_callback(n, "ping", pingcb, (void *) ARG2);
	printf("event handler set with ret %d\n", ret);
	aura_eventloop_dispatch(aura_node_eventloop_get(n), 0);
	printf("Closing the shop...");
	aura_close(n);

	return 0;
}