Пример #1
0
/**
 * gsf_open_pkg_open_rel_by_id :
 * @opkg : #GsfInput
 * @id : target id
 * @err : optionally %NULL
 *
 * New in 1.14.7
 *
 * Open @opkg's relation @id
 *
 * Returns: A new GsfInput or %NULL, and sets @err if possible.
 **/
GsfInput *
gsf_open_pkg_open_rel_by_id (GsfInput *opkg, char const *id, GError **err)
{
	GsfOpenPkgRel *rel = NULL;
	GsfOpenPkgRels *rels = gsf_open_pkg_get_rels (opkg);

	if (NULL != rels && NULL != (rel = g_hash_table_lookup (rels->by_id, id)))
		return gsf_open_pkg_open_rel (opkg, rel, err);
	if (err)
		*err = g_error_new (gsf_input_error_id(), gsf_open_pkg_error_id (),
			_("Unable to find part id='%s' for '%s'"),
			id, gsf_input_name (opkg) );
	return NULL;
}
Пример #2
0
/**
 * gsf_open_pkg_foreach_rel:
 * @opkg: #GsfInput
 * @func: (scope call): #GsfOpenPkgIter
 * @user_data: gpointer
 *
 * New in 1.14.9
 *
 * Walks each relationship associated with @opkg and calls @func with @user_data.
 **/
void
gsf_open_pkg_foreach_rel (GsfInput *opkg,
			  GsfOpenPkgIter func,
			  gpointer       user_data)
{
	GsfOpenPkgRels *rels = gsf_open_pkg_get_rels (opkg);
	struct pkg_iter_data dat;

	if (NULL != rels) {
		dat.opkg = opkg;
		dat.func = func;
		dat.user_data = user_data;
		g_hash_table_foreach (rels->by_id, (GHFunc)&cb_foreach_rel, &dat);
	}
}
Пример #3
0
/**
 * gsf_open_pkg_lookup_rel_by_id: (skip)
 * @opkg: #GsfInput
 * @id: identifier.
 *
 * New in 1.14.6
 *
 * Finds @opkg's relation with @id
 *
 * NOTE: skipping because gsf_open_pkg_rel_get_type() does not return a GType.
 *
 * Returns: (transfer none): A #GsfOpenPkgRel or %NULL
 **/
GsfOpenPkgRel *
gsf_open_pkg_lookup_rel_by_id (GsfInput *opkg, char const *id)
{
	GsfOpenPkgRels *rels = gsf_open_pkg_get_rels (opkg);
	return rels ? g_hash_table_lookup (rels->by_id, id) : NULL;
}