#define OFFS(m) MRP_OFFSET(timer_lua_t, m) #define RDONLY MRP_LUA_CLASS_READONLY #define NOTIFY MRP_LUA_CLASS_NOTIFY #define NOFLAGS MRP_LUA_CLASS_NOFLAGS MRP_LUA_METHOD_LIST_TABLE(timer_lua_methods, MRP_LUA_METHOD_CONSTRUCTOR(timer_lua_create)); MRP_LUA_METHOD_LIST_TABLE(timer_lua_overrides, MRP_LUA_OVERRIDE_CALL (timer_lua_create)); MRP_LUA_MEMBER_LIST_TABLE(timer_lua_members, MRP_LUA_CLASS_INTEGER("interval", OFFS(msecs) , NULL, NULL, NOTIFY) MRP_LUA_CLASS_LFUNC ("callback", OFFS(callback), NULL, NULL, NOTIFY) MRP_LUA_CLASS_ANY ("data" , OFFS(data) , NULL, NULL, NOTIFY) MRP_LUA_CLASS_BOOLEAN("oneshot" , OFFS(oneshot) , NULL, NULL, NOTIFY)); typedef enum { TIMER_MEMBER_INTERVAL, TIMER_MEMBER_CALLBACK, TIMER_MEMBER_DATA, TIMER_MEMBER_ONESHOT } timer_member_t; MRP_LUA_DEFINE_CLASS(timer, lua, timer_lua_t, timer_lua_destroy, timer_lua_methods, timer_lua_overrides, timer_lua_members, NULL, timer_lua_changed, timer_lua_tostring, NULL, MRP_LUA_CLASS_EXTENSIBLE);
MRP_LUA_METHOD_LIST_TABLE(resource_set_lua_methods, MRP_LUA_METHOD_CONSTRUCTOR(resource_set_lua_create) MRP_LUA_METHOD(addResource, resource_set_add_resource) MRP_LUA_METHOD(acquire, resource_set_acquire) MRP_LUA_METHOD(release, resource_set_release)); MRP_LUA_METHOD_LIST_TABLE(resource_set_lua_overrides, MRP_LUA_OVERRIDE_CALL (resource_set_lua_create) MRP_LUA_OVERRIDE_STRINGIFY(resource_set_lua_stringify)); MRP_LUA_MEMBER_LIST_TABLE(resource_set_lua_members, MRP_LUA_CLASS_INTEGER("id", RS_OFFS(id), NULL, resource_set_get_id, RS_RDONLY) MRP_LUA_CLASS_STRING("application_class", RS_OFFS(application_class), NULL, NULL, RS_RDONLY) MRP_LUA_CLASS_STRING("zone", RS_OFFS(zone), NULL, NULL, RS_RDONLY) MRP_LUA_CLASS_ANY("resources", RS_OFFS(resources), NULL, resource_set_get_resources, RS_RDONLY | RS_RAWGETTER) MRP_LUA_CLASS_BOOLEAN("dont_wait", RS_OFFS(dont_wait), NULL, NULL, RS_RDONLY) MRP_LUA_CLASS_BOOLEAN("autorelease", RS_OFFS(autorelease), NULL, NULL, RS_RDONLY) MRP_LUA_CLASS_BOOLEAN("available", RS_OFFS(available), NULL, NULL, RS_RDONLY) MRP_LUA_CLASS_BOOLEAN("acquired", RS_OFFS(acquired), NULL, NULL, RS_RDONLY) MRP_LUA_CLASS_INTEGER("priority", RS_OFFS(priority), NULL, NULL, RS_RDONLY) MRP_LUA_CLASS_LFUNC("callback", RS_OFFS(callback), NULL, NULL, RS_NOTIFY)); /* be careful! needs to be in the same order as the member list table */ typedef enum { RESOURCE_SET_MEMBER_ID, RESOURCE_SET_MEMBER_APPLICATION_CLASS, RESOURCE_SET_MEMBER_ZONE, RESOURCE_SET_MEMBER_RESOURCES, RESOURCE_SET_MEMBER_DONT_WAIT, RESOURCE_SET_MEMBER_AUTORELEASE,