EDBusServer

EDBusServer — An abstract base class for a D-Bus server

Synopsis

#include <libebackend/libebackend.h>

struct              EDBusServer;
struct              EDBusServerClass;
EDBusServerExitCode e_dbus_server_run                   (EDBusServer *server,
                                                         gboolean wait_for_client);
void                e_dbus_server_quit                  (EDBusServer *server,
                                                         EDBusServerExitCode code);
void                e_dbus_server_hold                  (EDBusServer *server);
void                e_dbus_server_release               (EDBusServer *server);
void                e_dbus_server_load_modules          (EDBusServer *server);

Description

Details

struct EDBusServer

struct EDBusServer {
	GObject parent;
	EDBusServerPrivate *priv;
};

Contains only private data that should be read and manipulated using the functions below.

Since 3.4


struct EDBusServerClass

struct EDBusServerClass {
	GObjectClass parent_class;

	const gchar *bus_name;
	const gchar *module_directory;

	/* Signals */
	void		(*bus_acquired)		(EDBusServer *server,
						 GDBusConnection *connection);
	void		(*bus_name_acquired) (EDBusServer *server,
						 GDBusConnection *connection);
	void		(*bus_name_lost) (EDBusServer *server,
						 GDBusConnection *connection);
	EDBusServerExitCode
			(*run_server)		(EDBusServer *server);
	void		(*quit_server)		(EDBusServer *server,
						 EDBusServerExitCode code);

	gpointer reserved[14];
};

e_dbus_server_run ()

EDBusServerExitCode e_dbus_server_run                   (EDBusServer *server,
                                                         gboolean wait_for_client);

Emits the "run" signal.

By default the server will start its main loop and attempt to acquire its well-known session bus name. If the server's main loop is already running, the function will immediately return E_DBUS_SERVER_EXIT_NONE. Otherwise the function blocks until e_dbus_server_quit() is called.

If wait_for_client is TRUE, the server will continue running until the first client connection is made instead of quitting on its own if no client connection is made within the first few seconds.

server :

an EDBusServer

wait_for_client :

continue running until a client connects

Returns :

the exit code passed to e_dbus_server_quit()

Since 3.4


e_dbus_server_quit ()

void                e_dbus_server_quit                  (EDBusServer *server,
                                                         EDBusServerExitCode code);

Emits the "quit" signal with the given code.

By default the server will quit its main loop and cause e_dbus_server_run() to return code.

server :

an EDBusServer

code :

an EDBusServerExitCode

Since 3.4


e_dbus_server_hold ()

void                e_dbus_server_hold                  (EDBusServer *server);

Increases the use count of server.

Use this function to indicate that the server has a reason to continue to run. To cancel the hold, call e_dbus_server_release().

server :

an EDBusServer

Since 3.4


e_dbus_server_release ()

void                e_dbus_server_release               (EDBusServer *server);

Decreates the use count of server.

When the use count reaches zero, the server will stop running.

Never call this function except to cancel the effect of a previous call to e_dbus_server_hold().

server :

an EDBusServer

Since 3.4


e_dbus_server_load_modules ()

void                e_dbus_server_load_modules          (EDBusServer *server);

This function should be called once during server initialization to load all available library modules to extend the server's functionality.

server :

an EDBusServer

Since 3.4