diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2008-10-24 07:58:00 -0400 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2008-10-24 07:58:00 -0400 |
commit | 054a931b01f98cf94b42f1ff1f48fbcb4928c869 (patch) | |
tree | bc5555e5e64145320693d5a26d709e3aa6a6ab41 /server/dbus/sssd_dbus_server.h | |
parent | c6fd412c0dd03782aa28c20f90bde0e22f720e7b (diff) | |
download | sssd-054a931b01f98cf94b42f1ff1f48fbcb4928c869.tar.gz sssd-054a931b01f98cf94b42f1ff1f48fbcb4928c869.tar.bz2 sssd-054a931b01f98cf94b42f1ff1f48fbcb4928c869.zip |
Integrate D-BUS support for use as IPC between parts.
Integrates DBUS with the event system so that it is asynchronous.
Diffstat (limited to 'server/dbus/sssd_dbus_server.h')
-rw-r--r-- | server/dbus/sssd_dbus_server.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/server/dbus/sssd_dbus_server.h b/server/dbus/sssd_dbus_server.h new file mode 100644 index 00000000..85fc12c6 --- /dev/null +++ b/server/dbus/sssd_dbus_server.h @@ -0,0 +1,69 @@ +/* + SSSD + + Service monitor - D-BUS features + + Copyright (C) Stephen Gallagher 2008 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef MONITORDBUS_H_ +#define MONITORDBUS_H_ + +#include "dbus/dbus.h" +#include "monitor.h" +#include "events.h" +#include "sssd_dbus_common.h" + +/* Types */ +struct dbus_server_toplevel_context { + DBusServer *server; + struct event_context *ev; + void (*server_connection_setup)(DBusConnection *conn, struct event_context *); +}; + +struct dbus_server_watch_context { + DBusWatch *watch; + int fd; + struct fd_event *fde; + struct dbus_server_toplevel_context *top; +}; + +struct dbus_server_timeout_context { + DBusTimeout *timeout; + struct timed_event *te; + struct dbus_server_toplevel_context *top; +}; + +/* Functions */ +int integrate_server_with_event_loop( + struct event_context *event_ctx, + DBusServer *dbus_server, + void (*server_connection_setup)(DBusConnection *conn, struct event_context *) +); + +void new_connection_callback(DBusServer *server, + DBusConnection *new_connection, void *data); + +dbus_bool_t add_server_watch(DBusWatch *watch, void *data); +void toggle_server_watch(DBusWatch *watch, void *data); + +dbus_bool_t add_server_timeout(DBusTimeout *timeout, void *data); +void toggle_server_timeout(DBusTimeout *timeout, void *data); + +void dbus_server_read_write_handler(struct event_context *ev, struct fd_event *fde, uint16_t flags, void *ptr); +void dbus_server_timeout_handler(struct event_context *ev, struct timed_event *te, struct timeval t, void *data); + +#endif /*MONITORDBUS_H_*/ |