コード例 #1
0
ファイル: lua-resource.c プロジェクト: 01org/murphy
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,
    RESOURCE_SET_MEMBER_AVAILABLE,
    RESOURCE_SET_MEMBER_ACQUIRED,
    RESOURCE_SET_MEMBER_PRIORITY,
    RESOURCE_SET_MEMBER_CALLBACK,
} resource_set_member_t;
コード例 #2
0
ファイル: lua-timer.c プロジェクト: e8johan/murphy
 */

#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);
コード例 #3
0
ファイル: lua-transport.c プロジェクト: 01org/murphy
#define RO      MRP_LUA_CLASS_READONLY
#define NOTIFY  MRP_LUA_CLASS_NOTIFY
#define NOFLAGS MRP_LUA_CLASS_NOFLAGS

MRP_LUA_METHOD_LIST_TABLE(transport_lua_methods,
                          MRP_LUA_METHOD_CONSTRUCTOR(transport_lua_create)
                          MRP_LUA_METHOD(listen    , transport_lua_listen )
                          MRP_LUA_METHOD(connect   , transport_lua_connect)
                          MRP_LUA_METHOD(accept    , transport_lua_accept)
                          MRP_LUA_METHOD(disconnect, transport_lua_disconnect));

MRP_LUA_METHOD_LIST_TABLE(transport_lua_overrides,
                          MRP_LUA_OVERRIDE_CALL     (transport_lua_create));

MRP_LUA_MEMBER_LIST_TABLE(transport_lua_members,
    MRP_LUA_CLASS_LFUNC  ("connect" , CB(connect)   , NULL, NULL, NOTIFY)
    MRP_LUA_CLASS_LFUNC  ("closed"  , CB(closed)    , NULL, NULL, NOTIFY)
    MRP_LUA_CLASS_LFUNC  ("recv"    , CB(recv)      , NULL, NULL, NOTIFY)
    MRP_LUA_CLASS_LFUNC  ("recvfrom", CB(recvfrom)  , NULL, NULL, NOTIFY)
    MRP_LUA_CLASS_ANY    ("data"    , OFFS(data)    , NULL, NULL, NOTIFY   )
    MRP_LUA_CLASS_STRING ("address" , OFFS(address) , NULL, NULL, NOTIFY|RO)
    MRP_LUA_CLASS_STRING ("encoding", OFFS(encoding), NULL, NULL, NOTIFY|RO)
);

typedef enum {
    TRANSPORT_MEMBER_CONNECT,
    TRANSPORT_MEMBER_CLOSED,
    TRANSPORT_MEMBER_RECV,
    TRANSPORT_MEMBER_RECVFROM,
    TRANSPORT_MEMBER_DATA,
    TRANSPORT_MEMBER_ADDRESS,