/* Generated by wayland-scanner 1.24.0 */

#ifndef E_SESSION_RECOVERY_CLIENT_PROTOCOL_H
#define E_SESSION_RECOVERY_CLIENT_PROTOCOL_H

#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"

#ifdef  __cplusplus
extern "C" {
#endif

/**
 * @page page_e_session_recovery The e_session_recovery protocol
 * @section page_ifaces_e_session_recovery Interfaces
 * - @subpage page_iface_zwp_e_session_recovery - 
 */
struct wl_surface;
struct zwp_e_session_recovery;

#ifndef ZWP_E_SESSION_RECOVERY_INTERFACE
#define ZWP_E_SESSION_RECOVERY_INTERFACE
/**
 * @page page_iface_zwp_e_session_recovery zwp_e_session_recovery
 * @section page_iface_zwp_e_session_recovery_api API
 * See @ref iface_zwp_e_session_recovery.
 */
/**
 * @defgroup iface_zwp_e_session_recovery The zwp_e_session_recovery interface
 */
extern const struct wl_interface zwp_e_session_recovery_interface;
#endif

/**
 * @ingroup iface_zwp_e_session_recovery
 * @struct zwp_e_session_recovery_listener
 */
struct zwp_e_session_recovery_listener {
	/**
	 */
	void (*create_uuid)(void *data,
			    struct zwp_e_session_recovery *zwp_e_session_recovery,
			    struct wl_surface *surface,
			    const char *uuid);
};

/**
 * @ingroup iface_zwp_e_session_recovery
 */
static inline int
zwp_e_session_recovery_add_listener(struct zwp_e_session_recovery *zwp_e_session_recovery,
				    const struct zwp_e_session_recovery_listener *listener, void *data)
{
	return wl_proxy_add_listener((struct wl_proxy *) zwp_e_session_recovery,
				     (void (**)(void)) listener, data);
}

#define ZWP_E_SESSION_RECOVERY_GET_UUID 0
#define ZWP_E_SESSION_RECOVERY_SET_UUID 1
#define ZWP_E_SESSION_RECOVERY_DESTROY_UUID 2

/**
 * @ingroup iface_zwp_e_session_recovery
 */
#define ZWP_E_SESSION_RECOVERY_CREATE_UUID_SINCE_VERSION 1

/**
 * @ingroup iface_zwp_e_session_recovery
 */
#define ZWP_E_SESSION_RECOVERY_GET_UUID_SINCE_VERSION 1
/**
 * @ingroup iface_zwp_e_session_recovery
 */
#define ZWP_E_SESSION_RECOVERY_SET_UUID_SINCE_VERSION 1
/**
 * @ingroup iface_zwp_e_session_recovery
 */
#define ZWP_E_SESSION_RECOVERY_DESTROY_UUID_SINCE_VERSION 1

/** @ingroup iface_zwp_e_session_recovery */
static inline void
zwp_e_session_recovery_set_user_data(struct zwp_e_session_recovery *zwp_e_session_recovery, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) zwp_e_session_recovery, user_data);
}

/** @ingroup iface_zwp_e_session_recovery */
static inline void *
zwp_e_session_recovery_get_user_data(struct zwp_e_session_recovery *zwp_e_session_recovery)
{
	return wl_proxy_get_user_data((struct wl_proxy *) zwp_e_session_recovery);
}

static inline uint32_t
zwp_e_session_recovery_get_version(struct zwp_e_session_recovery *zwp_e_session_recovery)
{
	return wl_proxy_get_version((struct wl_proxy *) zwp_e_session_recovery);
}

/** @ingroup iface_zwp_e_session_recovery */
static inline void
zwp_e_session_recovery_destroy(struct zwp_e_session_recovery *zwp_e_session_recovery)
{
	wl_proxy_destroy((struct wl_proxy *) zwp_e_session_recovery);
}

/**
 * @ingroup iface_zwp_e_session_recovery
 */
static inline void
zwp_e_session_recovery_get_uuid(struct zwp_e_session_recovery *zwp_e_session_recovery, struct wl_surface *surface)
{
	wl_proxy_marshal_flags((struct wl_proxy *) zwp_e_session_recovery,
			 ZWP_E_SESSION_RECOVERY_GET_UUID, NULL, wl_proxy_get_version((struct wl_proxy *) zwp_e_session_recovery), 0, surface);
}

/**
 * @ingroup iface_zwp_e_session_recovery
 */
static inline void
zwp_e_session_recovery_set_uuid(struct zwp_e_session_recovery *zwp_e_session_recovery, struct wl_surface *surface, const char *uuid)
{
	wl_proxy_marshal_flags((struct wl_proxy *) zwp_e_session_recovery,
			 ZWP_E_SESSION_RECOVERY_SET_UUID, NULL, wl_proxy_get_version((struct wl_proxy *) zwp_e_session_recovery), 0, surface, uuid);
}

/**
 * @ingroup iface_zwp_e_session_recovery
 */
static inline void
zwp_e_session_recovery_destroy_uuid(struct zwp_e_session_recovery *zwp_e_session_recovery, struct wl_surface *surface, const char *uuid)
{
	wl_proxy_marshal_flags((struct wl_proxy *) zwp_e_session_recovery,
			 ZWP_E_SESSION_RECOVERY_DESTROY_UUID, NULL, wl_proxy_get_version((struct wl_proxy *) zwp_e_session_recovery), 0, surface, uuid);
}

#ifdef  __cplusplus
}
#endif

#endif
