Add comments to bus/connection.[ch].
BUG=none TEST=none Review URL: http://codereview.appspot.com/3164041
This commit is contained in:
Родитель
96cc5ab07c
Коммит
b1b50dbbf0
|
@ -28,11 +28,14 @@ struct _BusConnection {
|
||||||
IBusObject parent;
|
IBusObject parent;
|
||||||
|
|
||||||
/* instance members */
|
/* instance members */
|
||||||
|
|
||||||
|
/* underlying GDBus connetion */
|
||||||
GDBusConnection *connection;
|
GDBusConnection *connection;
|
||||||
|
/* a unique name of the connection like ":1.0" */
|
||||||
gchar *unique_name;
|
gchar *unique_name;
|
||||||
/* list for well known names */
|
/* list for well known names */
|
||||||
GList *names;
|
GList *names;
|
||||||
GList *rules;
|
|
||||||
guint filter_id;
|
guint filter_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,7 +45,7 @@ struct _BusConnectionClass {
|
||||||
/* class members */
|
/* class members */
|
||||||
};
|
};
|
||||||
|
|
||||||
// static guint _signals[LAST_SIGNAL] = { 0 };
|
/* static guint _signals[LAST_SIGNAL] = { 0 }; */
|
||||||
|
|
||||||
/* functions prototype */
|
/* functions prototype */
|
||||||
static void bus_connection_destroy (BusConnection *connection);
|
static void bus_connection_destroy (BusConnection *connection);
|
||||||
|
@ -71,8 +74,6 @@ bus_connection_class_init (BusConnectionClass *class)
|
||||||
static void
|
static void
|
||||||
bus_connection_init (BusConnection *connection)
|
bus_connection_init (BusConnection *connection)
|
||||||
{
|
{
|
||||||
connection->unique_name = NULL;
|
|
||||||
connection->names = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -113,7 +114,7 @@ bus_connection_dbus_connection_closed_cb (GDBusConnection *dbus_connection,
|
||||||
GError *error,
|
GError *error,
|
||||||
BusConnection *connection)
|
BusConnection *connection)
|
||||||
{
|
{
|
||||||
ibus_object_destroy ((IBusObject *)connection);
|
ibus_object_destroy ((IBusObject *) connection);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -122,10 +123,10 @@ bus_connection_set_dbus_connection (BusConnection *connection,
|
||||||
{
|
{
|
||||||
connection->connection = dbus_connection;
|
connection->connection = dbus_connection;
|
||||||
g_object_ref (connection->connection);
|
g_object_ref (connection->connection);
|
||||||
g_object_set_qdata_full ((GObject *)dbus_connection,
|
g_object_set_qdata_full ((GObject *) dbus_connection,
|
||||||
BUS_CONNECTION_QUARK,
|
BUS_CONNECTION_QUARK,
|
||||||
g_object_ref (connection),
|
g_object_ref (connection),
|
||||||
(GDestroyNotify)g_object_unref);
|
(GDestroyNotify) g_object_unref);
|
||||||
g_signal_connect (connection->connection, "closed",
|
g_signal_connect (connection->connection, "closed",
|
||||||
G_CALLBACK (bus_connection_dbus_connection_closed_cb), connection);
|
G_CALLBACK (bus_connection_dbus_connection_closed_cb), connection);
|
||||||
}
|
}
|
||||||
|
@ -144,7 +145,7 @@ BusConnection *
|
||||||
bus_connection_new (GDBusConnection *dbus_connection)
|
bus_connection_new (GDBusConnection *dbus_connection)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (bus_connection_lookup (dbus_connection) == NULL, NULL);
|
g_return_val_if_fail (bus_connection_lookup (dbus_connection) == NULL, NULL);
|
||||||
BusConnection * connection = BUS_CONNECTION (g_object_new (BUS_TYPE_CONNECTION, NULL));
|
BusConnection *connection = BUS_CONNECTION (g_object_new (BUS_TYPE_CONNECTION, NULL));
|
||||||
bus_connection_set_dbus_connection (connection, dbus_connection);
|
bus_connection_set_dbus_connection (connection, dbus_connection);
|
||||||
return connection;
|
return connection;
|
||||||
}
|
}
|
||||||
|
@ -153,7 +154,7 @@ BusConnection *
|
||||||
bus_connection_lookup (GDBusConnection *dbus_connection)
|
bus_connection_lookup (GDBusConnection *dbus_connection)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (G_IS_DBUS_CONNECTION (dbus_connection), NULL);
|
g_return_val_if_fail (G_IS_DBUS_CONNECTION (dbus_connection), NULL);
|
||||||
return (BusConnection *) g_object_get_qdata ((GObject *)dbus_connection,
|
return (BusConnection *) g_object_get_qdata ((GObject *) dbus_connection,
|
||||||
BUS_CONNECTION_QUARK);
|
BUS_CONNECTION_QUARK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +168,7 @@ void
|
||||||
bus_connection_set_unique_name (BusConnection *connection,
|
bus_connection_set_unique_name (BusConnection *connection,
|
||||||
const gchar *name)
|
const gchar *name)
|
||||||
{
|
{
|
||||||
g_assert (connection->unique_name == NULL);
|
g_assert (connection->unique_name == NULL); /* we don't allow rewriting the unique_name. */
|
||||||
connection->unique_name = g_strdup (name);
|
connection->unique_name = g_strdup (name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +180,7 @@ bus_connection_get_names (BusConnection *connection)
|
||||||
|
|
||||||
const gchar *
|
const gchar *
|
||||||
bus_connection_add_name (BusConnection *connection,
|
bus_connection_add_name (BusConnection *connection,
|
||||||
const gchar *name)
|
const gchar *name)
|
||||||
{
|
{
|
||||||
gchar *new_name;
|
gchar *new_name;
|
||||||
|
|
||||||
|
@ -191,7 +192,7 @@ bus_connection_add_name (BusConnection *connection,
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
bus_connection_remove_name (BusConnection *connection,
|
bus_connection_remove_name (BusConnection *connection,
|
||||||
const gchar *name)
|
const gchar *name)
|
||||||
{
|
{
|
||||||
GList *list = g_list_find_custom (connection->names, name, (GCompareFunc) g_strcmp0);
|
GList *list = g_list_find_custom (connection->names, name, (GCompareFunc) g_strcmp0);
|
||||||
|
|
||||||
|
@ -203,29 +204,6 @@ bus_connection_remove_name (BusConnection *connection,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
|
||||||
bus_connection_add_match (BusConnection *connection,
|
|
||||||
const gchar *rule)
|
|
||||||
{
|
|
||||||
g_assert (BUS_IS_CONNECTION (connection));
|
|
||||||
g_assert (rule != NULL);
|
|
||||||
|
|
||||||
BusMatchRule *match = bus_match_rule_new (rule);
|
|
||||||
if (match == NULL)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
GList *list;
|
|
||||||
for (list = connection->rules; list != NULL; list = list->next) {
|
|
||||||
if (bus_match_rule_is_equal (match, (BusMatchRule *)list->data)) {
|
|
||||||
g_object_unref (match);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
connection->rules = g_list_append (connection->rules, match);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
GDBusConnection *
|
GDBusConnection *
|
||||||
bus_connection_get_dbus_connection (BusConnection *connection)
|
bus_connection_get_dbus_connection (BusConnection *connection)
|
||||||
{
|
{
|
||||||
|
@ -251,5 +229,6 @@ bus_connection_set_filter (BusConnection *connection,
|
||||||
filter_func,
|
filter_func,
|
||||||
user_data,
|
user_data,
|
||||||
user_data_free_func);
|
user_data_free_func);
|
||||||
|
/* Note: g_dbus_connection_add_filter seems not to return zero as a valid id. */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,17 +48,65 @@ typedef struct _BusConnection BusConnection;
|
||||||
typedef struct _BusConnectionClass BusConnectionClass;
|
typedef struct _BusConnectionClass BusConnectionClass;
|
||||||
|
|
||||||
GType bus_connection_get_type (void);
|
GType bus_connection_get_type (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bus_connection_new:
|
||||||
|
*
|
||||||
|
* Create a BusConnection object from a low-level GDBus connection.
|
||||||
|
*/
|
||||||
BusConnection *bus_connection_new (GDBusConnection *connection);
|
BusConnection *bus_connection_new (GDBusConnection *connection);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bus_connection_lookup:
|
||||||
|
*
|
||||||
|
* Lookup the BusConnection object which corresponds to the low-level connection.
|
||||||
|
*/
|
||||||
BusConnection *bus_connection_lookup (GDBusConnection *connection);
|
BusConnection *bus_connection_lookup (GDBusConnection *connection);
|
||||||
|
|
||||||
const gchar *bus_connection_get_unique_name (BusConnection *connection);
|
const gchar *bus_connection_get_unique_name (BusConnection *connection);
|
||||||
void bus_connection_set_unique_name (BusConnection *connection,
|
void bus_connection_set_unique_name (BusConnection *connection,
|
||||||
const gchar *name);
|
const gchar *name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bus_connection_get_names:
|
||||||
|
*
|
||||||
|
* Get the list of well-known names of the connection.
|
||||||
|
*/
|
||||||
const GList *bus_connection_get_names (BusConnection *connection);
|
const GList *bus_connection_get_names (BusConnection *connection);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bus_connection_add_name:
|
||||||
|
* @name: a well-known name for the connection.
|
||||||
|
* @returns: g_strdup (name)
|
||||||
|
*
|
||||||
|
* Add the well-known name to the connection.
|
||||||
|
*/
|
||||||
const gchar *bus_connection_add_name (BusConnection *connection,
|
const gchar *bus_connection_add_name (BusConnection *connection,
|
||||||
const gchar *name);
|
const gchar *name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bus_connection_add_name:
|
||||||
|
* @name: a well-known name for the connection.
|
||||||
|
* @returns: TRUE on success.
|
||||||
|
*
|
||||||
|
* Remove the well-known name from the connection.
|
||||||
|
*/
|
||||||
gboolean bus_connection_remove_name (BusConnection *connection,
|
gboolean bus_connection_remove_name (BusConnection *connection,
|
||||||
const gchar *name);
|
const gchar *name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bus_connection_get_dbus_connection:
|
||||||
|
*
|
||||||
|
* Get the underlying GDBus connection.
|
||||||
|
*/
|
||||||
GDBusConnection *bus_connection_get_dbus_connection (BusConnection *connection);
|
GDBusConnection *bus_connection_get_dbus_connection (BusConnection *connection);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bus_connection_set_filter:
|
||||||
|
*
|
||||||
|
* Set a filter function which will be called on all incoming and outgoing messages on the connection.
|
||||||
|
* WARNING - this filter function could be called by the GDBus's worker thread. So the function should not call thread unsafe IBus functions.
|
||||||
|
*/
|
||||||
void bus_connection_set_filter (BusConnection *connection,
|
void bus_connection_set_filter (BusConnection *connection,
|
||||||
GDBusMessageFilterFunction
|
GDBusMessageFilterFunction
|
||||||
filter_func,
|
filter_func,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче