/** * inf_request_result_make_subscribe_chat: * @browser: A #InfBrowser. * @proxy: The #InfSessionProxy for the subscribed session. * * Creates a new #InfRequestResult for a "subscribe-chat" request, see * infc_browser_subscribe_chat(). The #InfRequestResult object is only valid * as long as the caller maintains a reference to @browser and @proxy. * * Returns: A new #InfRequestResult. Free with inf_request_result_free(). */ InfRequestResult* inf_request_result_make_subscribe_chat(InfBrowser* browser, InfSessionProxy* proxy) { InfRequestResultSubscribeChat* data; g_return_val_if_fail(INF_IS_BROWSER(browser), NULL); g_return_val_if_fail(INF_IS_SESSION_PROXY(proxy), NULL); data = g_malloc(sizeof(InfRequestResultSubscribeChat)); data->browser = browser; data->proxy = proxy; return inf_request_result_new(data, sizeof(*data)); }
/** * inf_request_result_make_join_user: * @proxy: A #InfSessionProxy. * @user: The joined user. * * Creates a new #InfRequestResult for a "join-user" request, see * inf_session_proxy_join_user(). The #InfRequestResult object is only valid * as long as the caller maintains a reference to @proxy. * * Returns: A new #InfRequestResult. Free with inf_request_result_free(). */ InfRequestResult* inf_request_result_make_join_user(InfSessionProxy* proxy, InfUser* user) { InfRequestResultJoinUser* data; g_return_val_if_fail(INF_IS_SESSION_PROXY(proxy), NULL); g_return_val_if_fail(user != NULL, NULL); data = g_malloc(sizeof(InfRequestResultJoinUser)); data->proxy = proxy; data->user = user; return inf_request_result_new(data, sizeof(*data)); }
/** * inf_session_proxy_join_user: * @proxy: A #InfSessionProxy. * @n_params: Number of parameters. * @params: Construction properties for the InfUser (or derived) object. * @func: Function to be called on completion of the user join, or %NULL. * @user_data: Additional data to be passed to @func. * * Requests a user join for a user with the given properties (which must not * include #InfUser:id or #InfUser:flags since these are chosen by the session * proxy). The #InfUser:status property is optional and defaults to * %INF_USER_ACTIVE if not given. It must not be %INF_USER_UNAVAILABLE. * * The request might either finish during the call to this function, in which * case @func will be called and %NULL being returned. If the request does not * finish within the function call, a #InfRequest object is returned, * where @func has been installed for the #InfRequest::finished signal, * so that it is called as soon as the request finishes. * * Returns: A #InfRequest object that may be used to get notified * when the request finishes, or %NULL. */ InfRequest* inf_session_proxy_join_user(InfSessionProxy* proxy, guint n_params, const GParameter* params, InfRequestFunc func, gpointer user_data) { InfSessionProxyIface* iface; g_return_val_if_fail(INF_IS_SESSION_PROXY(proxy), NULL); g_return_val_if_fail(n_params == 0 || params != NULL, NULL); iface = INF_SESSION_PROXY_GET_IFACE(proxy); g_return_val_if_fail(iface->join_user != NULL, NULL); return iface->join_user(proxy, n_params, params, func, user_data); }
/** * infinoted_plugin_manager_get_session_info: * @mgr: A #InfinotedPluginManager. * @plugin_info: The @plugin_info pointer of a plugin instance. * @proxy: The #InfSessionProxy for which to retrieve plugin data. * * Queries the session-specfic plugin data for the plugin instance * @plugin_info. Returns %NULL if no such object exists, i.e. when the * plugin's @session_info_size is set to 0. * * Returns: A pointer to the session-specific plugin data, or %NULL. */ gpointer infinoted_plugin_manager_get_session_info(InfinotedPluginManager* mgr, gpointer plugin_info, InfSessionProxy* proxy) { InfinotedPluginManagerPrivate* priv; g_return_val_if_fail(INFINOTED_IS_PLUGIN_MANAGER(mgr), NULL); g_return_val_if_fail(INF_IS_SESSION_PROXY(proxy), NULL); priv = INFINOTED_PLUGIN_MANAGER_PRIVATE(mgr); return g_hash_table_lookup( priv->sessions, infinoted_plugin_manager_hash(plugin_info, proxy) ); }