diff options
author | Havoc Pennington <hp@redhat.com> | 2003-03-13 03:52:58 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-03-13 03:52:58 +0000 |
commit | 6ecc14ffabcffb69aa938a67940db48272e05046 (patch) | |
tree | 76e4c12cdc5c0ef9b3a9fc4913afdfa1fac6478c /bus/main.c | |
parent | 29560adcc79a259a0be3511c056ee7453aa26c04 (diff) | |
download | dbus-6ecc14ffabcffb69aa938a67940db48272e05046.tar.gz |
2003-03-12 Havoc Pennington <hp@pobox.com>
Throughout: purge global variables, introduce BusActivation,
BusConnections, BusRegistry, etc. objects instead.
* bus/bus.h, bus/bus.c: introduce BusContext as a global
message bus object
* test/Makefile.am (TEST_BINARIES): disable bus-test for now,
going to redo this a bit differently I think
Diffstat (limited to 'bus/main.c')
-rw-r--r-- | bus/main.c | 105 |
1 files changed, 18 insertions, 87 deletions
@@ -20,110 +20,41 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ +#include "bus.h" #include "loop.h" -#include "activation.h" -#include "connection.h" -#include "driver.h" -#include <dbus/dbus-list.h> - -static void -server_watch_callback (DBusWatch *watch, - unsigned int condition, - void *data) -{ - DBusServer *server = data; - - dbus_server_handle_watch (server, watch, condition); -} - -static void -add_server_watch (DBusWatch *watch, - DBusServer *server) -{ - bus_loop_add_watch (watch, server_watch_callback, server, - NULL); -} - -static void -remove_server_watch (DBusWatch *watch, - DBusServer *server) -{ - bus_loop_remove_watch (watch, server_watch_callback, server); -} - -static void -setup_server (DBusServer *server) -{ - dbus_server_set_watch_functions (server, - (DBusAddWatchFunction) add_server_watch, - (DBusRemoveWatchFunction) remove_server_watch, - server, - NULL); -} - -static void -new_connection_callback (DBusServer *server, - DBusConnection *new_connection, - void *data) -{ - if (!bus_connection_setup (new_connection)) - ; /* we won't have ref'd the connection so it will die */ -} +#include <dbus/dbus-internals.h> int main (int argc, char **argv) { - DBusServer *server; - DBusResultCode result; - - if (argc < 2) + BusContext *context; + DBusError error; + const char *paths[] = { NULL, NULL }; + + if (argc < 3) { - _dbus_warn ("Give the server address as an argument\n"); + /* FIXME obviously just for testing */ + _dbus_warn ("Give the server address as an argument and activation directory as args\n"); return 1; } + paths[0] = argv[2]; - server = dbus_server_listen (argv[1], &result); - if (server == NULL) + dbus_error_init (&error); + context = bus_context_new (argv[1], paths, &error); + if (context == NULL) { - _dbus_warn ("Failed to start server on %s: %s\n", - argv[1], dbus_result_to_string (result)); + _dbus_warn ("Failed to start message bus: %s\n", + error.message); + dbus_error_free (&error); return 1; } - if (argc < 3) - { - _dbus_warn ("No service location given, not activating activation\n"); - } - else - { - const char *paths[] = { argv[2], NULL }; - DBusError error; - - dbus_error_init (&error); - if (!bus_activation_init (argv[1], paths, - &error)) - { - _dbus_warn ("Could not initialize service activation: %s\n", - error.message); - dbus_error_free (&error); - return 1; - } - } - - setup_server (server); - - bus_connection_init (); - - dbus_server_set_new_connection_function (server, - new_connection_callback, - NULL, NULL); - _dbus_verbose ("We are on D-Bus...\n"); bus_loop_run (); - dbus_server_disconnect (server); - dbus_server_unref (server); + bus_context_shutdown (context); + bus_context_unref (context); return 0; } |