server: Add aditional wl_resource accessors
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 14 Jun 2013 15:07:52 +0000 (10:07 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 14 Jun 2013 19:56:08 +0000 (15:56 -0400)
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
src/wayland-server.c
src/wayland-server.h

index 2052f88..e2776ff 100644 (file)
@@ -452,12 +452,42 @@ wl_resource_get_link(struct wl_resource *resource)
        return &resource->link;
 }
 
+WL_EXPORT struct wl_resource *
+wl_resource_from_link(struct wl_list *link)
+{
+       struct wl_resource *resource;
+
+       return wl_container_of(link, resource, link);
+}
+
+WL_EXPORT struct wl_resource *
+wl_resource_find_for_client(struct wl_list *list, struct wl_client *client)
+{
+       struct wl_resource *resource;
+
+       if (client == NULL)
+               return NULL;
+
+        wl_list_for_each(resource, list, link) {
+                if (resource->client == client)
+                        return resource;
+        }
+
+        return NULL;
+}
+
 WL_EXPORT struct wl_client *
 wl_resource_get_client(struct wl_resource *resource)
 {
        return resource->client;
 }
 
+WL_EXPORT void
+wl_resource_set_user_data(struct wl_resource *resource, void *data)
+{
+       resource->data = data;
+}
+
 WL_EXPORT void *
 wl_resource_get_user_data(struct wl_resource *resource)
 {
index 84c36cb..cffe7f6 100644 (file)
@@ -260,8 +260,14 @@ uint32_t
 wl_resource_get_id(struct wl_resource *resource);
 struct wl_list *
 wl_resource_get_link(struct wl_resource *resource);
+struct wl_resource *
+wl_resource_from_link(struct wl_list *resource);
+struct wl_resource *
+wl_resource_find_for_client(struct wl_list *list, struct wl_client *client);
 struct wl_client *
 wl_resource_get_client(struct wl_resource *resource);
+void
+wl_resource_set_user_data(struct wl_resource *resource, void *data);
 void *
 wl_resource_get_user_data(struct wl_resource *resource);
 void