wl_interface

Protocol object interface

A wl_interface describes the API of a protocol object defined in the Wayland protocol specification. The protocol implementation uses a wl_interface within its marshalling machinery for encoding client requests.

The name of a wl_interface is the name of the corresponding protocol interface, and version represents the version of the interface. The members method_count and event_count represent the number of methods (requests) and events in the respective wl_message members.

For example, consider a protocol interface foo, marked as version 1, with two requests and one event.

\code <interface name="foo" version="1"> <request name="a"></request> <request name="b"></request> <event name="c"></event> </interface> \endcode

Given two wl_message arrays foo_requests and foo_events, a wl_interface for foo might be:

\code struct wl_interface foo_interface = { "foo", 1, 2, foo_requests, 1, foo_events }; \endcode

\note The server side of the protocol may define interface <em>implementation types</em> that incorporate the term interface in their name. Take care to not confuse these server-side structs with a wl_interface variable whose name also ends in interface. For example, while the server may define a type struct wl_foo_interface, the client may define a struct wl_interface wl_foo_interface.

\sa wl_message \sa wl_proxy \sa <a href="https://wayland.freedesktop.org/docs/html/ch04.html#sect-Protocol-Interfaces">Interfaces</a> \sa <a href="https://wayland.freedesktop.org/docs/html/ch04.html#sect-Protocol-Versioning">Versioning</a>

Members

Variables

event_count
int event_count;

Number of events

events
const(wl_message)* events;

Event signatures

method_count
int method_count;

Number of methods (requests)

methods
const(wl_message)* methods;

Method (request) signatures

name
const(char)* name;

Interface name

version_
int version_;

Interface version

Meta