Beispiel #1
0
#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);
Beispiel #2
0
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,