Started with the big rewrite for GNOME 2.0:
2000-11-20 Martin Baulig <baulig@suse.de> Started with the big rewrite for GNOME 2.0: - split the `glibtop' structure into `glibtop_server' and `glibtop_client' and make `glibtop_client' a GObject. - cleanly separate the library and the backends. This stuff currently does not compile. * glibtop.h (glibtop_server_private, glibtop_server_info): Removed typedefs. (struct _glibtop, struct _glibtop_server_info): Removed. (glibtop_global_server, glibtop_server_features): Removed. (glibtop_server_ref, glibtop_server_unref): Removed. * glibtop.h (glibtop_init_s): First argument is now a `glibtop_server *'. * include/glibtop/*.h: Removed all #defines with the glibtop_global_server. (glibtop_get_*_l): First argument is now a `glibtop_client *'. (glibtop_get_*_s, glibtop_init_*_s): First argument is now a `glibtop_server *'. * lib/glibtop-client.c: New file. * sysdeps/common/xmalloc.c: Moved to lib/. * sysdeps/common/error.c: Moved to lib/. * lib/xmalloc.c: Moved here from sysdeps/common/. * lib/error.c: Moved here from sysdeps/common/. * include/glibtop/backend.h (glibtop_backend_open_func_t, glibtop_backend_close_func_t): First argument is now a `glibtop_server *'. (glibtop_backend_info): Added `glibtop_server *server'. (glibtop_open_backend_l): Returns `glibtop_backend *', first argument is `glibtop_client *' and added `GError **'. * include/glibtop/close.h (glibtop_close_s, glibtop_close_p): First argument is now a `glibtop_server *'. * include/glibtop/error.h (*): First argument is now a `glibtop_server *'. * include/glibtop/errors.h: Switched this to use GError.
This commit is contained in:
committed by
Martin Baulig
parent
c15ff3f342
commit
752d5b47d2
97
lib/init.c
97
lib/init.c
@@ -28,104 +28,9 @@
|
||||
#include <glibtop/sysdeps.h>
|
||||
#include <glibtop/parameter.h>
|
||||
|
||||
#ifndef DEFAULT_PORT
|
||||
#define DEFAULT_PORT 42800
|
||||
#endif
|
||||
|
||||
static glibtop _glibtop_global_server;
|
||||
glibtop *glibtop_global_server = &_glibtop_global_server;
|
||||
|
||||
void
|
||||
glibtop_server_ref (glibtop *server)
|
||||
glibtop_init_s (glibtop_server *server, unsigned long features, unsigned flags)
|
||||
{
|
||||
if (server == NULL)
|
||||
return;
|
||||
|
||||
server->refcount++;
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_server_unref (glibtop *server)
|
||||
{
|
||||
if (server == NULL)
|
||||
return;
|
||||
|
||||
if (!server->refcount) {
|
||||
glibtop_warn_r (server, "Attempted to unref server "
|
||||
"which refcount == 0");
|
||||
return;
|
||||
}
|
||||
|
||||
server->refcount--;
|
||||
}
|
||||
|
||||
glibtop *
|
||||
glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags)
|
||||
{
|
||||
glibtop *server;
|
||||
|
||||
if (server_ptr == NULL)
|
||||
return NULL;
|
||||
|
||||
if (*server_ptr == NULL)
|
||||
*server_ptr = glibtop_global_server;
|
||||
|
||||
server = *server_ptr;
|
||||
|
||||
/* Should we do the initialization? */
|
||||
|
||||
if (flags & GLIBTOP_INIT_NO_INIT)
|
||||
return server;
|
||||
|
||||
if (!server->info) {
|
||||
server->info = g_new0 (glibtop_server_info, 1);
|
||||
}
|
||||
|
||||
/* Do the initialization, but only if not already initialized. */
|
||||
|
||||
if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) {
|
||||
if (flags & GLIBTOP_FEATURES_EXCEPT)
|
||||
features = ~features & GLIBTOP_SYSDEPS_ALL;
|
||||
|
||||
if (features == 0)
|
||||
features = GLIBTOP_SYSDEPS_ALL;
|
||||
|
||||
if (flags & GLIBTOP_FEATURES_NO_SERVER) {
|
||||
features = 0;
|
||||
}
|
||||
|
||||
server->info->features = features;
|
||||
|
||||
server->flags |= _GLIBTOP_INIT_STATE_INIT;
|
||||
}
|
||||
|
||||
/* Should we open the server? */
|
||||
|
||||
if (flags & GLIBTOP_INIT_NO_OPEN)
|
||||
return server;
|
||||
|
||||
/* Open server, but only if not already opened. */
|
||||
|
||||
if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0)
|
||||
glibtop_open_l (glibtop_global_server, "glibtop",
|
||||
features, flags);
|
||||
|
||||
return server;
|
||||
}
|
||||
|
||||
glibtop *
|
||||
glibtop_init_s (glibtop **server_ptr, unsigned long features, unsigned flags)
|
||||
{
|
||||
glibtop *server;
|
||||
|
||||
if (server_ptr == NULL)
|
||||
return NULL;
|
||||
|
||||
if (*server_ptr == NULL)
|
||||
*server_ptr = glibtop_global_server;
|
||||
|
||||
server = *server_ptr;
|
||||
|
||||
/* Should we do the initialization? */
|
||||
|
||||
if (flags & GLIBTOP_INIT_NO_INIT)
|
||||
|
Reference in New Issue
Block a user