summaryrefslogtreecommitdiffstats
path: root/bus/main.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-03-13 03:52:58 +0000
committerHavoc Pennington <hp@redhat.com>2003-03-13 03:52:58 +0000
commit6ecc14ffabcffb69aa938a67940db48272e05046 (patch)
tree76e4c12cdc5c0ef9b3a9fc4913afdfa1fac6478c /bus/main.c
parent29560adcc79a259a0be3511c056ee7453aa26c04 (diff)
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.c105
1 files changed, 18 insertions, 87 deletions
diff --git a/bus/main.c b/bus/main.c
index 56345c76..ce03a6a7 100644
--- a/bus/main.c
+++ b/bus/main.c
@@ -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;
}