[1/2] Change the server_t module to behave more like a static class.

This first commit only touches server_new(), server_main(), and
	server_destroy().
This commit is contained in:
Juuso Alasuutari 2009-01-19 03:04:46 +02:00
parent 64444645b3
commit b239d891e9
3 changed files with 30 additions and 19 deletions

View File

@ -140,8 +140,7 @@ main(int argc,
loader_init();
g_server = server_new(default_dir);
if (g_server == NULL)
if (!server_start(default_dir))
{
goto uninit_loader;
}
@ -164,13 +163,12 @@ main(int argc,
/* setup our SIGSEGV magic that prints nice stack in our logfile */
setup_sigsegv();
server_main(g_server);
server_main();
lash_debug("Finished, cleaning up");
printf("Cleaning up\n");
server_destroy(g_server);
g_server = NULL;
server_stop();
uninit_loader:
loader_uninit();

View File

@ -54,8 +54,11 @@ server_t *g_server = NULL;
static void
server_fill_projects(server_t *server);
server_t *
server_new(const char *default_dir)
static void
server_destroy(server_t *server);
bool
server_start(const char *default_dir)
{
server_t *server;
@ -69,7 +72,7 @@ server_new(const char *default_dir)
if (!lash_appdb_load(&server->appdb)) {
lash_error("Failed to load application database");
free(server);
return NULL;
return false;
}
#ifdef LASH_DEBUG
@ -98,6 +101,7 @@ server_new(const char *default_dir)
lash_debug("Failed to launch D-Bus service");
goto fail;
}
g_server = server;
#ifdef HAVE_JACK_DBUS
server->jackdbus_mgr = lashd_jackdbus_mgr_new(server);
@ -109,14 +113,14 @@ server_new(const char *default_dir)
lash_debug("Server running");
return server;
return true;
fail:
server_destroy(server);
return NULL;
return false;
}
void
static void
server_destroy(server_t *server)
{
struct list_head *node;
@ -158,6 +162,15 @@ server_destroy(server_t *server)
lash_debug("Server destroyed");
}
void
server_stop(void)
{
if (g_server) {
server_destroy(g_server);
g_server = NULL;
}
}
static void
server_fill_projects(server_t *server)
{
@ -644,13 +657,13 @@ server_project_save_by_name(server_t *server,
}
void
server_main(server_t *server)
server_main(void)
{
while (!server->quit) {
dbus_connection_read_write_dispatch(server->dbus_service->connection, 50);
while (!g_server->quit) {
dbus_connection_read_write_dispatch(g_server->dbus_service->connection, 50);
loader_run();
// TODO: wtf?
loader_run();
}

View File

@ -60,14 +60,14 @@ struct _server
bool quit;
};
server_t *
server_new(const char *default_dir);
bool
server_start(const char *default_dir);
void
server_destroy(server_t *server);
server_stop(void);
void
server_main(server_t *server);
server_main(void);
project_t *
server_find_project_by_name(server_t *server,