From 61ac9c68490b311afc4e34f0c515bef85f66a69a Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 14 Jun 2013 10:07:52 -0500 Subject: [PATCH] server: Add aditional wl_resource accessors Signed-off-by: Jason Ekstrand --- src/wayland-server.c | 30 ++++++++++++++++++++++++++++++ src/wayland-server.h | 6 ++++++ 2 files changed, 36 insertions(+) diff --git a/src/wayland-server.c b/src/wayland-server.c index 2052f88..e2776ff 100644 --- a/src/wayland-server.c +++ b/src/wayland-server.c @@ -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) { diff --git a/src/wayland-server.h b/src/wayland-server.h index 84c36cb..cffe7f6 100644 --- a/src/wayland-server.h +++ b/src/wayland-server.h @@ -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 -- 2.7.4