resource: make accessible from LUA resource-set id and application_class
authorJanos Kovacs <jankovac503@gmail.com>
Thu, 14 Feb 2013 01:40:06 +0000 (03:40 +0200)
committerJanos Kovacs <jankovac503@gmail.com>
Thu, 14 Feb 2013 01:59:23 +0000 (03:59 +0200)
src/resource/resource-lua.c

index 8904636..134eced 100644 (file)
@@ -64,7 +64,8 @@ enum field_e {
     RESOURCE_SET,
     ATTRIBUTES,
     RESOURCE,
-    STATE
+    STATE,
+    ID
 };
 
 struct ownerref_s {
@@ -428,7 +429,9 @@ static int ownerref_getfield(lua_State *L)
 
 static int ownerref_setfield(lua_State *L)
 {
-    mrp_resource_owner_t *owner = ownerref_check(L, 1);
+    /* mrp_resource_owner_t *owner = ownerref_check(L, 1); */
+
+    MRP_UNUSED(L);
 
     MRP_LUA_ENTER;
 
@@ -477,6 +480,10 @@ static int setref_getfield(lua_State *L)
 
         switch (field) {
 
+        case ID:
+            lua_pushinteger(L, rset->id);
+            break;
+
         case STATE:
             switch (rset->state) {
             case mrp_resource_no_request:  state = "no_request";  break;
@@ -487,6 +494,10 @@ static int setref_getfield(lua_State *L)
             lua_pushstring(L, state);
             break;
 
+        case APPLICATION_CLASS:
+            lua_pushstring(L, rset->class.ptr->name);
+            break;
+
         default:
             lua_pushnil(L);
             break;
@@ -603,6 +614,11 @@ static field_t field_name_to_type(const char *name, size_t len)
 {
     switch (len) {
 
+    case 2:
+        if (!strcmp(name, "id"))
+            return ID;
+        break;
+
     case 5:
         if (!strcmp(name, "state"))
             return STATE;