[PATCH vignatti/wayland/doc 2/2] doc: Add some doxygen documentation to wayland-client entry points
Ander Conselvan de Oliveira
ander.conselvan.de.oliveira at intel.com
Fri Oct 12 07:28:57 PDT 2012
Add some brief documentation for the public libwayland-client entry
points. This is by no means complete, some funcions are still
undocumented and some might need extra information.
---
doc/doxygen/wayland.doxygen.in | 3 +-
src/wayland-client.c | 169 ++++++++++++++++++++++++++++++++++++++++
src/wayland-client.h | 17 ++--
3 files changed, 180 insertions(+), 9 deletions(-)
diff --git a/doc/doxygen/wayland.doxygen.in b/doc/doxygen/wayland.doxygen.in
index 323f5b4..c47a5ec 100644
--- a/doc/doxygen/wayland.doxygen.in
+++ b/doc/doxygen/wayland.doxygen.in
@@ -648,7 +648,8 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = @top_srcdir@/src/wayland-client.h
+INPUT = @top_srcdir@/src/wayland-client.c \
+ @top_srcdir@/src/wayland-client.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 8ced6cc..ee3b0c4 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -42,6 +42,9 @@
#include "wayland-client.h"
#include "wayland-private.h"
+
+/** \cond */
+
struct wl_proxy {
struct wl_object object;
struct wl_display *display;
@@ -73,6 +76,8 @@ struct wl_display {
pthread_mutex_t mutex;
};
+/** \endcond */
+
static int wl_debug = 0;
static void
@@ -96,6 +101,15 @@ wl_event_queue_release(struct wl_event_queue *queue)
pthread_cond_destroy(&queue->cond);
}
+/** Destroy an event queue
+ *
+ * \param queue The event queue to be destroyed
+ *
+ * Destroy the given event queue. Any pending event on that queue is
+ * discarded.
+ *
+ * \memberof wl_event_queue
+ */
WL_EXPORT void
wl_event_queue_destroy(struct wl_event_queue *queue)
{
@@ -103,6 +117,14 @@ wl_event_queue_destroy(struct wl_event_queue *queue)
free(queue);
}
+/** Create a new event queue for this display
+ *
+ * \param display The display context object
+ * \return A new event queue associated with this display on NULL on
+ * failure.
+ *
+ * \memberof wl_display
+ */
WL_EXPORT struct wl_event_queue *
wl_display_create_queue(struct wl_display *display)
{
@@ -117,6 +139,10 @@ wl_display_create_queue(struct wl_display *display)
return queue;
}
+/**
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT struct wl_proxy *
wl_proxy_create(struct wl_proxy *factory, const struct wl_interface *interface)
{
@@ -165,6 +191,12 @@ wl_proxy_create_for_id(struct wl_proxy *factory,
return proxy;
}
+/** Destroy a proxy object
+ *
+ * \param proxy The proxy to be destroyed
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT void
wl_proxy_destroy(struct wl_proxy *proxy)
{
@@ -184,6 +216,23 @@ wl_proxy_destroy(struct wl_proxy *proxy)
free(proxy);
}
+/** Set a proxy's listener
+ *
+ * \param proxy The proxy object
+ * \param implementation The listener to be added to proxy
+ * \param data User data to be associated with the proxy
+ * \return 0 on success or -1 on failure
+ *
+ * Set proxy's listener to \c implementation and its user data to
+ * \c data. Ifa listener has already been set, this functions
+ * fails and nothing is changed.
+ *
+ * \c implementation is a vector of function pointers. For an opcode
+ * \c n, \c implemention[n] should point to the handler of \c n for
+ * the given object.
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT int
wl_proxy_add_listener(struct wl_proxy *proxy,
void (**implementation)(void), void *data)
@@ -199,6 +248,10 @@ wl_proxy_add_listener(struct wl_proxy *proxy,
return 0;
}
+/**
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT void
wl_proxy_marshal(struct wl_proxy *proxy, uint32_t opcode, ...)
{
@@ -317,6 +370,13 @@ connect_to_socket(const char *name)
return fd;
}
+/** Connect to Wayland display on an already open fd
+ *
+ * \param fd The fd to use for the connection
+ * \return A \ref wl_display object or \c NULL on failure
+ *
+ * \memberof wl_display
+ */
WL_EXPORT struct wl_display *
wl_display_connect_to_fd(int fd)
{
@@ -360,6 +420,17 @@ wl_display_connect_to_fd(int fd)
return display;
}
+/** Connect to a Wayland display
+ *
+ * \param name Name of the Wayland display to connect to
+ * \return A \ref wl_display object or \c NULL on failure
+ *
+ * Connect to the Wayland display named \c name. If \c name is \c NULL,
+ * its value will bee replaced with the WAYLAND_DISPLAY environment
+ * variable if it is set, otherwise display "wayland-0" will be used.
+ *
+ * \memberof wl_display
+ */
WL_EXPORT struct wl_display *
wl_display_connect(const char *name)
{
@@ -390,6 +461,15 @@ wl_display_connect(const char *name)
return display;
}
+/** Close a connection to a Wayland display
+ *
+ * \param display The display context object
+ *
+ * Close the connection to \c display and free all resources associated
+ * with it.
+ *
+ * \memberof wl_display
+ */
WL_EXPORT void
wl_display_disconnect(struct wl_display *display)
{
@@ -404,6 +484,16 @@ wl_display_disconnect(struct wl_display *display)
free(display);
}
+/** Get a display context's file descriptor
+ *
+ * \param display The display context object
+ * \return Display object file descriptor
+ *
+ * Return the file descriptor associated with a display so it can be
+ * integrated into the client's main loop.
+ *
+ * \memberof wl_display
+ */
WL_EXPORT int
wl_display_get_fd(struct wl_display *display)
{
@@ -423,6 +513,15 @@ static const struct wl_callback_listener sync_listener = {
sync_callback
};
+/** Block until all pending request are processed by the server
+ *
+ * \param display The display context object
+ *
+ * Blocks until the server process all currently issued requests and
+ * sends out pending events on all event queues.
+ *
+ * \memberof wl_display
+ */
WL_EXPORT void
wl_display_roundtrip(struct wl_display *display)
{
@@ -552,6 +651,17 @@ dispatch_event(struct wl_display *display, struct wl_event_queue *queue)
}
+/** Dispatch events in an event queue
+ *
+ * \param display The display context object
+ * \param queue The event queue to dispatch
+ * \return 0 on success; -1 on failure
+ *
+ * Dispatch all incoming events for objects assigned to the given
+ * event queue. On failure -1 is returned and errno set appropriately.
+ *
+ * \memberof wl_display
+ */
WL_EXPORT int
wl_display_dispatch_queue(struct wl_display *display,
struct wl_event_queue *queue)
@@ -588,6 +698,17 @@ wl_display_dispatch_queue(struct wl_display *display,
return 0;
}
+/** Dispatch a display's main event queue
+ *
+ * \param display The display context object
+ * \return 0 on success or -1 on failure
+ *
+ * Dispatch the display's main event queue.
+ *
+ * \sa wl_display_dispatch_queue()
+ *
+ * \memberof wl_display
+ */
WL_EXPORT int
wl_display_dispatch(struct wl_display *display)
{
@@ -596,6 +717,18 @@ wl_display_dispatch(struct wl_display *display)
return wl_display_dispatch_queue(display, &display->queue);
}
+/** Send all buffered request on the display to the server
+ *
+ * \param display The display context object
+ * \return The number of bytes send on success or -1 on failure
+ *
+ * Send all buffered data on the client side to the servre. Clients
+ * should call this function before blocking. On success, the number
+ * of bytes sent to the server is returned. On failure, this
+ * function returns -1 and errno is set appropriately.
+ *
+ * \memberof wl_display
+ */
WL_EXPORT int
wl_display_flush(struct wl_display *display)
{
@@ -610,18 +743,42 @@ wl_display_flush(struct wl_display *display)
return ret;
}
+/** Set the user data associated with a proxy
+ *
+ * \param proxy The proxy object
+ * \param user_data The data to be associated with proxy
+ *
+ * Set the user data associated with proxy. When events for this
+ * proxy are received, user_data will be supplied to its listener.
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT void
wl_proxy_set_user_data(struct wl_proxy *proxy, void *user_data)
{
proxy->user_data = user_data;
}
+/** Get the user data associated with a proxy
+ *
+ * \param proxy The proxy object
+ * \return The user data associated with proxy
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT void *
wl_proxy_get_user_data(struct wl_proxy *proxy)
{
return proxy->user_data;
}
+/** Get the id of a proxy object
+ *
+ * \param proxy The proxy object
+ * \return The id the object associated with the proxy
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT uint32_t
wl_proxy_get_id(struct wl_proxy *proxy)
{
@@ -629,6 +786,18 @@ wl_proxy_get_id(struct wl_proxy *proxy)
}
+/** Assign a proxy to an event queue
+ *
+ * \param proxy The proxy object
+ * \param queue The event queue that will handle this proxy
+ *
+ * Assign proxy to event queue. Events coming from proxy will be
+ * queued in \c queue instead of the display's main queue.
+ *
+ * \sa wl_display_dispatch_queue()
+ *
+ * \memberof wl_proxy
+ */
WL_EXPORT void
wl_proxy_set_queue(struct wl_proxy *proxy, struct wl_event_queue *queue)
{
diff --git a/src/wayland-client.h b/src/wayland-client.h
index 088407a..d47ffae 100644
--- a/src/wayland-client.h
+++ b/src/wayland-client.h
@@ -30,8 +30,17 @@
extern "C" {
#endif
+/** \class wl_proxy
+ *
+ */
struct wl_proxy;
+
+/** \class wl_display
+ */
struct wl_display;
+
+/** \class wl_event_queue
+ */
struct wl_event_queue;
void wl_event_queue_destroy(struct wl_event_queue *queue);
@@ -56,14 +65,6 @@ typedef void (*wl_callback_func_t)(void *data, uint32_t time);
struct wl_display *wl_display_connect(const char *name);
struct wl_display *wl_display_connect_to_fd(int fd);
void wl_display_disconnect(struct wl_display *display);
-
-/**
- * @brief Connect to a Wayland socket
- * @param display: The display context object
- * @return Display object file descriptor
- *
- * \b this is the detailed description
- */
int wl_display_get_fd(struct wl_display *display);
int wl_display_dispatch(struct wl_display *display);
int wl_display_dispatch_queue(struct wl_display *display,
--
1.7.9.5
More information about the wayland-devel
mailing list