From 7d82476590033a93761035ead1dd761b68c5c049 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 4 Jun 2017 19:30:37 -0400 Subject: [PATCH] Refactor type implementations --- backend/backend.c | 2 +- backend/drm/backend.c | 2 +- backend/drm/drm.c | 5 ++-- backend/udev.c | 2 -- .../{backend.h => wlr/backend/interface.h} | 4 +-- include/wlr/session.h | 4 +-- include/{ => wlr}/session/interface.h | 5 +--- session/direct.c | 10 +++---- session/logind.c | 10 +++---- session/session.c | 26 ++++++++++--------- 10 files changed, 33 insertions(+), 37 deletions(-) rename include/{backend.h => wlr/backend/interface.h} (83%) rename include/{ => wlr}/session/interface.h (72%) diff --git a/backend/backend.c b/backend/backend.c index 9a3d81d8..3fb74c57 100644 --- a/backend/backend.c +++ b/backend/backend.c @@ -4,9 +4,9 @@ #include #include #include +#include #include "common/log.h" #include "backend/drm/backend.h" -#include "backend.h" struct wlr_backend *wlr_backend_create(const struct wlr_backend_impl *impl, struct wlr_backend_state *state) { diff --git a/backend/drm/backend.c b/backend/drm/backend.c index 2840f17f..7c2ff7fe 100644 --- a/backend/drm/backend.c +++ b/backend/drm/backend.c @@ -10,7 +10,7 @@ #include #include #include -#include "backend.h" +#include #include "backend/udev.h" #include "backend/drm/backend.h" #include "backend/drm/drm.h" diff --git a/backend/drm/drm.c b/backend/drm/drm.c index 27a5932f..2523eaf0 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -12,12 +12,11 @@ #include #include #include - -#include "types.h" -#include "backend.h" +#include #include "backend/drm/backend.h" #include "backend/drm/drm.h" #include "common/log.h" +#include "types.h" static const char *conn_name[] = { [DRM_MODE_CONNECTOR_Unknown] = "Unknown", diff --git a/backend/udev.c b/backend/udev.c index fb213339..c84b8e31 100644 --- a/backend/udev.c +++ b/backend/udev.c @@ -9,8 +9,6 @@ #include #include #include -#include "backend.h" -#include "backend/drm/backend.h" #include "backend/udev.h" #include "common/log.h" diff --git a/include/backend.h b/include/wlr/backend/interface.h similarity index 83% rename from include/backend.h rename to include/wlr/backend/interface.h index d42c6f17..15cfb6c3 100644 --- a/include/backend.h +++ b/include/wlr/backend/interface.h @@ -1,5 +1,5 @@ -#ifndef _WLR_BACKEND_INTERNAL_H -#define _WLR_BACKEND_INTERNAL_H +#ifndef _WLR_BACKEND_INTERFACE_H +#define _WLR_BACKEND_INTERFACE_H #include #include diff --git a/include/wlr/session.h b/include/wlr/session.h index 5f210f10..bd5a96c0 100644 --- a/include/wlr/session.h +++ b/include/wlr/session.h @@ -4,7 +4,7 @@ #include #include -struct session_interface; +struct session_impl; // Passed to the listeners of device_paused/resumed struct device_arg { @@ -13,7 +13,7 @@ struct device_arg { }; struct wlr_session { - const struct session_interface *iface; + const struct session_impl *impl; struct wl_signal device_paused; struct wl_signal device_resumed; diff --git a/include/session/interface.h b/include/wlr/session/interface.h similarity index 72% rename from include/session/interface.h rename to include/wlr/session/interface.h index 7345c4cf..78256dd6 100644 --- a/include/session/interface.h +++ b/include/wlr/session/interface.h @@ -3,7 +3,7 @@ #include -struct session_interface { +struct session_impl { struct wlr_session *(*start)(struct wl_display *disp); void (*finish)(struct wlr_session *session); int (*open)(struct wlr_session *restrict session, @@ -12,7 +12,4 @@ struct session_interface { bool (*change_vt)(struct wlr_session *session, int vt); }; -extern const struct session_interface session_logind_iface; -extern const struct session_interface session_direct_iface; - #endif diff --git a/session/direct.c b/session/direct.c index c135070f..c735dae4 100644 --- a/session/direct.c +++ b/session/direct.c @@ -1,5 +1,4 @@ #define _POSIX_C_SOURCE 200809L - #include #include #include @@ -7,10 +6,11 @@ #include #include #include - -#include "session/interface.h" +#include #include "common/log.h" +const struct session_impl session_direct; + struct direct_session { struct wlr_session base; }; @@ -44,13 +44,13 @@ static struct wlr_session *direct_session_start(struct wl_display *disp) { wlr_log(L_INFO, "Successfully loaded direct session"); - session->base.iface = &session_direct_iface; + session->base.impl = &session_direct; wl_signal_init(&session->base.device_paused); wl_signal_init(&session->base.device_resumed); return &session->base; } -const struct session_interface session_direct_iface = { +const struct session_impl session_direct = { .start = direct_session_start, .finish = direct_session_finish, .open = direct_session_open, diff --git a/session/logind.c b/session/logind.c index 6f0327e6..6ce7e4c2 100644 --- a/session/logind.c +++ b/session/logind.c @@ -1,5 +1,4 @@ #define _POSIX_C_SOURCE 200809L - #include #include #include @@ -12,10 +11,11 @@ #include #include #include - -#include "session/interface.h" +#include #include "common/log.h" +const struct session_impl session_logind; + struct logind_session { struct wlr_session base; @@ -335,7 +335,7 @@ static struct wlr_session *logind_session_start(struct wl_display *disp) { wlr_log(L_INFO, "Successfully loaded logind session"); - session->base.iface = &session_logind_iface; + session->base.impl = &session_logind; wl_signal_init(&session->base.device_paused); wl_signal_init(&session->base.device_resumed); return &session->base; @@ -350,7 +350,7 @@ error: return NULL; } -const struct session_interface session_logind_iface = { +const struct session_impl session_logind = { .start = logind_session_start, .finish = logind_session_finish, .open = logind_take_device, diff --git a/session/session.c b/session/session.c index 5df9fbd4..dbdd8156 100644 --- a/session/session.c +++ b/session/session.c @@ -1,22 +1,24 @@ #include - -#include #include +#include +#include #include "common/log.h" -#include "session/interface.h" -static const struct session_interface *ifaces[] = { +extern const struct session_impl session_logind; +extern const struct session_impl session_direct; + +static const struct session_impl *impls[] = { #ifdef HAS_SYSTEMD - &session_logind_iface, + &session_logind, #endif - &session_direct_iface, + &session_direct, NULL, }; struct wlr_session *wlr_session_start(struct wl_display *disp) { - const struct session_interface **iter; + const struct session_impl **iter; - for (iter = ifaces; *iter; ++iter) { + for (iter = impls; *iter; ++iter) { struct wlr_session *session = (*iter)->start(disp); if (session) { return session; @@ -28,19 +30,19 @@ struct wlr_session *wlr_session_start(struct wl_display *disp) { } void wlr_session_finish(struct wlr_session *session) { - session->iface->finish(session); + session->impl->finish(session); }; int wlr_session_open_file(struct wlr_session *restrict session, const char *restrict path) { - return session->iface->open(session, path); + return session->impl->open(session, path); } void wlr_session_close_file(struct wlr_session *session, int fd) { - session->iface->close(session, fd); + session->impl->close(session, fd); } bool wlr_session_change_vt(struct wlr_session *session, int vt) { - return session->iface->change_vt(session, vt); + return session->impl->change_vt(session, vt); }