session_recovery: Add wayland extension protocol prototype for session recovery

Like with all other wayland protocols I add the files generated with wayland
scanner here. Also the xml so we have the source around for updating and
modifications. We might want to think about wayland-scanner support in our build
system but this works for now.

The protocol prototype is hold simple and does only have a uuid signal and provide
call to handle the uuid assignment from compositor to app and app providing its
uuid if present already.
This commit is contained in:
Stefan Schmidt 2015-03-20 19:07:43 +01:00 committed by Stefan Schmidt
parent 0522053dd1
commit df041fe77b
4 changed files with 80 additions and 0 deletions

View File

@ -368,6 +368,8 @@ endif
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

View File

@ -0,0 +1,23 @@
#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,
};

View File

@ -0,0 +1,43 @@
#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

View File

@ -0,0 +1,12 @@
<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>