logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Author

       Generated automatically by Doxygen for Wayland from the source code.

Version 1.24.0                              Mon Jul 28 2025 16:07:33                                wl_client(3)

Field Documentation

structwl_connection*wl_client::connectionvoid*wl_client::datawl_user_data_destroy_func_twl_client::data_dtorstructwl_priv_signalwl_client::destroy_late_signalstructwl_priv_signalwl_client::destroy_signalstructwl_display*wl_client::displaystructwl_resource*wl_client::display_resourceboolwl_client::errorgid_twl_client::gidstructwl_listwl_client::linkstructwl_mapwl_client::objectspid_twl_client::pidstructwl_priv_signalwl_client::resource_created_signalstructwl_event_source*wl_client::sourceuid_twl_client::uid

Member Function Documentation

voidwl_client_add_destroy_late_listener(structwl_client*client,structwl_listener*listener)
       Add a listener to be called at the end of wl_client destruction

       The listener provided will be called when wl_client destroy is nearly complete, after all of that
       client's resources have been destroyed.

       There is no requirement to remove the link of the wl_listener when the signal is emitted.

       Since
           1.22.0

   voidwl_client_add_destroy_listener(structwl_client*client,structwl_listener*listener)
       Add a listener to be called at the beginning of wl_client destruction

       The listener provided will be called when wl_client destroy has begun, before any of that client's
       resources have been destroyed.

       There is no requirement to remove the link of the wl_listener when the signal is emitted.

   voidwl_client_add_resource_created_listener(structwl_client*client,structwl_listener*listener)
       Add a listener for the client's resource creation signal

       Parametersclient The client object
           listener The listener to be added

       When a new resource is created for this client the listener will be notified, carrying the new resource
       as the data argument.

   voidwl_client_flush(structwl_client*client)
       Flush pending events to the client

       Parametersclient The client object

       Events sent to clients are queued in a buffer and written to the socket later - typically when the
       compositor has handled all requests and goes back to block in the event loop. This function flushes all
       queued up events for a client immediately.

   voidwl_client_for_each_resource(structwl_client*client,wl_client_for_each_resource_iterator_func_titerator,void*user_data)
       Iterate over all the resources of a client

       Parametersclient The client object
           iterator The iterator function
           user_data The user data pointer

       The function pointed by iterator will be called for each resource owned by the client. The user_data will
       be passed as the second argument of the iterator function. If the iterator function returns
       WL_ITERATOR_CONTINUE the iteration will continue, if it returns WL_ITERATOR_STOP it will stop.

       Creating and destroying resources while iterating is safe, but new resources may or may not be picked up
       by the iterator.

       Seealsowl_iterator_resultstructwl_client*wl_client_from_link(structwl_list*link)
       Get a wl_client by its link

       Parameterslink The link of a wl_clientSeealsowl_client_for_each()wl_display_get_client_list()wl_client_get_link()voidwl_client_get_credentials(conststructwl_client*client,pid_t*pid,uid_t*uid,gid_t*gid)
       Return Unix credentials for the client

       Parametersclient The display object
           pid Returns the process ID
           uid Returns the user ID
           gid Returns the group ID

       This function returns the process ID, the user ID and the group ID for the given client. The credentials
       come from getsockopt() with SO_PEERCRED, on the client socket fd. All the pointers can be NULL, if the
       caller is not interested in a particular ID.

       Note, process IDs are subject to race conditions and are not a reliable way to identify a client.

       Be aware that for clients that a compositor forks and execs and then connects using socketpair(), this
       function will return the credentials for the compositor. The credentials for the socketpair are set at
       creation time in the compositor.

   structwl_display*wl_client_get_display(structwl_client*client)
       Get the display object for the given client

       Parametersclient The client object

       Returns
           The display object the client is associated with.

   intwl_client_get_fd(structwl_client*client)
       Get the file descriptor for the client

       Parametersclient The display object

       Returns
           The file descriptor to use for the connection

       This function returns the file descriptor for the given client.

       Be sure to use the file descriptor from the client for inspection only. If the caller does anything to
       the file descriptor that changes its state, it will likely cause problems.

       See also wl_client_get_credentials(). It is recommended that you evaluate whether
       wl_client_get_credentials() can be applied to your use case instead of this function.

       If you would like to distinguish just between the client and the compositor itself from the client's
       request, it can be done by getting the client credentials and by checking the PID of the client and the
       compositor's PID. Regarding the case in which the socketpair() is being used, you need to be careful.
       Please note the documentation for wl_client_get_credentials().

       This function can be used for a compositor to validate a request from a client if there are additional
       information provided from the client's file descriptor. For instance, suppose you can get the security
       contexts from the client's file descriptor. The compositor can validate the client's request with the
       contexts and make a decision whether it permits or deny it.

   structwl_list*wl_client_get_link(structwl_client*client)
       Get the link by which a client is inserted in the client list

       Parametersclient The client object

       Seealsowl_client_for_each()wl_display_get_client_list()wl_client_from_link()structwl_resource*wl_client_get_object(structwl_client*client,uint32_tid)
       Look up an object in the client name space

       Parametersclient The client object
           id The object id

       Returns
           The object or NULL if there is not object for the given ID

       This looks up an object in the client object name space by its object ID.

   voidwl_client_post_implementation_error(structwl_client*client,charconst*msg,...)
       Report an internal server error

       Parametersclient The client object
           msg A printf-style format string
           ... Format string arguments

       Report an unspecified internal implementation error and disconnect the client.

   voidwl_client_set_max_buffer_size(structwl_client*client,size_tmax_buffer_size)
       Adjust the maximum size of the client connection buffers

       Parametersclient The client object
           max_buffer_size The maximum size of the connection buffers

       The actual size of the connection buffers is a power of two, the requested max_buffer_size is therefore
       rounded up to the nearest power of two value.

       Lowering the maximum size may not take effect immediately if the current content of the buffer does not
       fit within the new size limit.

       The minimum buffer size is 4096. The default buffers size can be set using
       wl_display_set_default_max_buffer_size().

       Seealsowl_display_set_default_max_buffer_size()Since
           1.22.90

Name

       wl_client

Synopsis

PublicMemberFunctions
       void wl_client_flush (struct wl_client *client)
       struct wl_display * wl_client_get_display (struct wl_client *client)
       void wl_client_get_credentials (const struct wl_client *client, pid_t *pid, uid_t *uid, gid_t *gid)
       int wl_client_get_fd (struct wl_client *client)
       struct wl_resource * wl_client_get_object (struct wl_client *client, uint32_t id)
       void wl_client_post_implementation_error (struct wl_client *client, char const *msg,...)
       void wl_client_add_destroy_listener (struct wl_client *client, struct wl_listener *listener)
       void wl_client_add_destroy_late_listener (struct wl_client *client, struct wl_listener *listener)
       struct wl_list * wl_client_get_link (struct wl_client *client)
       struct wl_client * wl_client_from_link (struct wl_list *link)
       void wl_client_add_resource_created_listener (struct wl_client *client, struct wl_listener *listener)
       void wl_client_for_each_resource (struct wl_client *client, wl_client_for_each_resource_iterator_func_t
           iterator, void *user_data)
       void wl_client_set_max_buffer_size (struct wl_client *client, size_t max_buffer_size)

   DataFields
       struct wl_connection * connection
       struct wl_event_source * source
       struct wl_display * display
       struct wl_resource * display_resource
       struct wl_listlink
       struct wl_map objects
       struct wl_priv_signal destroy_signal
       struct wl_priv_signal destroy_late_signal
       pid_t pid
       uid_t uid
       gid_t gid
       bool error
       struct wl_priv_signal resource_created_signal
       void * datawl_user_data_destroy_func_tdata_dtor

See Also