if HAVE_WAYLAND
enlightenment_src += \
src/bin/e_uuid_store.c \
+src/bin/session-recovery-protocol.c \
+src/bin/session-recovery-server-protocol.h \
src/bin/e_comp_wl_data.c \
src/bin/e_comp_wl_input.c \
src/bin/e_comp_wl.c
--- /dev/null
+#include <stdlib.h>
+#include <stdint.h>
+#include "wayland-util.h"
+
+
+static const struct wl_interface *types[] = {
+ NULL,
+};
+
+static const struct wl_message session_recovery_requests[] = {
+ { "provide_uuid", "s", types + 0 },
+};
+
+static const struct wl_message session_recovery_events[] = {
+ { "uuid", "s", types + 0 },
+};
+
+WL_EXPORT const struct wl_interface session_recovery_interface = {
+ "session_recovery", 1,
+ 1, session_recovery_requests,
+ 1, session_recovery_events,
+};
+
--- /dev/null
+#ifndef SESSION_RECOVERY_SERVER_PROTOCOL_H
+#define SESSION_RECOVERY_SERVER_PROTOCOL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stddef.h>
+#include "wayland-util.h"
+
+struct wl_client;
+struct wl_resource;
+
+struct session_recovery;
+
+extern const struct wl_interface session_recovery_interface;
+
+struct session_recovery_interface {
+ /**
+ * provide_uuid - (none)
+ * @uuid: (none)
+ */
+ void (*provide_uuid)(struct wl_client *client,
+ struct wl_resource *resource,
+ const char *uuid);
+};
+
+#define SESSION_RECOVERY_UUID 0
+
+#define SESSION_RECOVERY_UUID_SINCE_VERSION 1
+
+static inline void
+session_recovery_send_uuid(struct wl_resource *resource_, const char *uuid)
+{
+ wl_resource_post_event(resource_, SESSION_RECOVERY_UUID, uuid);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+<protocol name="session_recovery">
+
+ <interface name="session_recovery" version="1">
+ <request name="provide_uuid">
+ <arg name="uuid" type="string"/>
+ </request>
+ <event name="uuid">
+ <arg name="uuid" type="string"/>
+ </event>
+ </interface>
+
+</protocol>