mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-16 00:00:07 +01:00

This adds support for the integrating libdbus into the lws event loop. Unlike the other roles, lws doesn't completely adopt the fd and libdbus insists to retain control over the fd lifecycle. However libdbus provides apis for foreign code (lws) to provide event loop services to libdbus for the fd. Accordingly, unlike the other roles rx and writeable are not subsumed into lws callback messages and the events remain the property of libdbus. A context struct wrapper is provided that is available in the libdbus callbacks to bridge between the lws and dbus worlds, along with a minimal example dbus client and server.
42 lines
1.2 KiB
C
42 lines
1.2 KiB
C
/*
|
|
* libwebsockets - small server side websockets and web server implementation
|
|
*
|
|
* Copyright (C) 2010 - 2018 Andy Green <andy@warmcat.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation:
|
|
* version 2.1 of the License.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
* MA 02110-1301 USA
|
|
*
|
|
* This is included from core/private.h if LWS_ROLE_DBUS
|
|
*/
|
|
|
|
#include <dbus/dbus.h>
|
|
|
|
extern struct lws_role_ops role_ops_dbus;
|
|
|
|
#define lwsi_role_dbus(wsi) (wsi->role_ops == &role_ops_dbus)
|
|
|
|
struct lws_role_dbus_timer {
|
|
struct lws_dll timer_list;
|
|
void *data;
|
|
time_t fire;
|
|
};
|
|
|
|
struct lws_pt_role_dbus {
|
|
struct lws_dll timer_list_head;
|
|
};
|
|
|
|
struct _lws_dbus_mode_related {
|
|
DBusConnection *conn;
|
|
};
|