Create setter for MatrixAPI.user_id and MatrixAPI.homeserver
This commit is contained in:
		| @@ -73,7 +73,9 @@ matrix_api_media_upload | ||||
| matrix_api_get_token | ||||
| matrix_api_set_token | ||||
| matrix_api_get_user_id | ||||
| matrix_api_set_user_id | ||||
| matrix_api_get_homeserver | ||||
| matrix_api_set_homeserver | ||||
| MatrixAPI | ||||
| </SECTION> | ||||
|  | ||||
|   | ||||
| @@ -101,7 +101,9 @@ | ||||
|  * @get_token: the virtual function pointer to matrix_api_get_token() | ||||
|  * @set_token: the virtual function pointer to matrix_api_set_token() | ||||
|  * @get_user_id: the virtual function pointer to matrix_api_get_user_id() | ||||
|  * @set_user_id: the virtual function pointer to matrix_api_set_user_id() | ||||
|  * @get_homeserver: the virtual function pointer to matrix_api_get_homeserver() | ||||
|  * @set_homeserver: the virtual function pointer to matrix_api_set_homeserver() | ||||
|  * | ||||
|  * The virtual function table for for #MatrixAPI. | ||||
|  */ | ||||
| @@ -1935,6 +1937,21 @@ matrix_api_get_user_id(MatrixAPI *matrix_api) | ||||
|     return MATRIX_API_GET_IFACE(matrix_api)->get_user_id(matrix_api); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * matrix_api_set_user_id: | ||||
|  * @api: a #MatrixAPI | ||||
|  * @user_id: (nullable): a Matrix ID | ||||
|  * | ||||
|  * Set the user ID of the user logged in using @api.  This might be useful for restoring state. | ||||
|  */ | ||||
| void | ||||
| matrix_api_set_user_id(MatrixAPI *matrix_api, const gchar *user_id) | ||||
| { | ||||
|     g_return_if_fail(matrix_api != NULL); | ||||
|  | ||||
|     MATRIX_API_GET_IFACE(matrix_api)->set_user_id(matrix_api, user_id); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * matrix_api_get_homeserver: | ||||
|  * @api: a #MatrixAPI | ||||
| @@ -1953,6 +1970,22 @@ matrix_api_get_homeserver(MatrixAPI *matrix_api) | ||||
|     return MATRIX_API_GET_IFACE(matrix_api)->get_homeserver(matrix_api); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * matrix_api_set_homeserver: | ||||
|  * @api: a #MatrixAPI | ||||
|  * @homeserver: (nullable): a homeserver name | ||||
|  * | ||||
|  * Set the name of the homeserver, as it calls itself.  This might be useful for | ||||
|  * restoring state. | ||||
|  */ | ||||
| void | ||||
| matrix_api_set_homeserver(MatrixAPI *api, const gchar *homeserver) | ||||
| { | ||||
|     g_return_if_fail(api != NULL); | ||||
|  | ||||
|     MATRIX_API_GET_IFACE(api)->set_homeserver(api, homeserver); | ||||
| } | ||||
|  | ||||
| static void | ||||
| matrix_api_default_init(MatrixAPIInterface *iface) | ||||
| { | ||||
|   | ||||
| @@ -456,7 +456,9 @@ struct _MatrixAPIInterface { | ||||
|     const gchar *(*get_token)(MatrixAPI *api); | ||||
|     void (*set_token)(MatrixAPI *api, const gchar *value); | ||||
|     const gchar *(*get_user_id)(MatrixAPI *api); | ||||
|     void (*set_user_id)(MatrixAPI *api, const gchar *user_id); | ||||
|     const gchar *(*get_homeserver)(MatrixAPI *api); | ||||
|     void (*set_homeserver)(MatrixAPI *api, const gchar *homeserver); | ||||
| }; | ||||
|  | ||||
| void matrix_api_abort_pending(MatrixAPI *api); | ||||
| @@ -875,7 +877,9 @@ void matrix_api_media_upload(MatrixAPI *api, | ||||
| const gchar *matrix_api_get_token(MatrixAPI *api); | ||||
| void matrix_api_set_token(MatrixAPI *api, const gchar *token); | ||||
| const gchar *matrix_api_get_user_id(MatrixAPI *api); | ||||
| void matrix_api_set_user_id(MatrixAPI *api, const gchar *user_id); | ||||
| const gchar *matrix_api_get_homeserver(MatrixAPI *api); | ||||
| void matrix_api_set_homeserver(MatrixAPI *api, const gchar *homeserver); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
|   | ||||
| @@ -51,6 +51,8 @@ typedef struct { | ||||
|     SoupURI *api_uri; | ||||
|     SoupURI *media_uri; | ||||
|     gchar *token; | ||||
|     gchar *homeserver; | ||||
|     gchar *user_id; | ||||
| } MatrixHTTPAPIPrivate; | ||||
|  | ||||
| static void matrix_http_api_matrix_api_interface_init(MatrixAPIInterface * iface); | ||||
| @@ -222,8 +224,8 @@ _matrix_http_api_response_callback(SoupSession *session, SoupMessage *msg, gpoin | ||||
|                     g_debug("Our home server calls itself %s", homeserver); | ||||
| #endif | ||||
|  | ||||
|                     g_free(matrix_http_api->_homeserver); | ||||
|                     matrix_http_api->_homeserver = g_strdup(homeserver); | ||||
|                     g_free(priv->homeserver); | ||||
|                     priv->homeserver = g_strdup(homeserver); | ||||
|                 } | ||||
|  | ||||
|                 /* Check if the response holds a user ID; if it does, | ||||
| @@ -235,8 +237,8 @@ _matrix_http_api_response_callback(SoupSession *session, SoupMessage *msg, gpoin | ||||
|                     g_debug("We are reported to be logged in as %s", user_id); | ||||
| #endif | ||||
|  | ||||
|                     g_free(matrix_http_api->_user_id); | ||||
|                     matrix_http_api->_user_id = g_strdup(user_id); | ||||
|                     g_free(priv->user_id); | ||||
|                     priv->user_id = g_strdup(user_id); | ||||
|                 } | ||||
|  | ||||
|                 /* Check if the response holds an error */ | ||||
| @@ -2237,11 +2239,11 @@ matrix_http_api_set_base_url(MatrixHTTPAPI *matrix_http_api, const gchar *base_u | ||||
|         priv->base_url = g_strdup(base_url); | ||||
|  | ||||
|         g_free(priv->token); | ||||
|         g_free(matrix_http_api->_homeserver); | ||||
|         g_free(matrix_http_api->_user_id); | ||||
|         priv->token = NULL; | ||||
|         matrix_http_api->_homeserver = NULL; | ||||
|         matrix_http_api->_user_id = NULL; | ||||
|         g_free(priv->homeserver); | ||||
|         g_free(priv->user_id); | ||||
|         priv->homeserver = NULL; | ||||
|         priv->user_id = NULL; | ||||
|  | ||||
| #if DEBUG | ||||
|         gchar *uri; | ||||
| @@ -2293,7 +2295,9 @@ matrix_http_api_set_validate_certificate(MatrixHTTPAPI *matrix_http_api, gboolea | ||||
| static const gchar * | ||||
| matrix_http_api_get_user_id (MatrixAPI *api) | ||||
| { | ||||
|     return MATRIX_HTTP_API(matrix_api)->_user_id; | ||||
|     MatrixHTTPAPIPrivate *priv = matrix_http_api_get_instance_private(MATRIX_HTTP_API(api)); | ||||
|  | ||||
|     return priv->user_id; | ||||
| } | ||||
|  | ||||
| static const gchar * | ||||
| @@ -2319,13 +2323,14 @@ matrix_http_api_set_token(MatrixAPI *matrix_api, const gchar *token) | ||||
|  | ||||
| static const gchar * | ||||
| matrix_http_api_get_homeserver(MatrixAPI *api) { | ||||
|     return MATRIX_HTTP_API(api)->_homeserver; | ||||
|     MatrixHTTPAPIPrivate *priv = matrix_http_api_get_instance_private(MATRIX_HTTP_API(api)); | ||||
|  | ||||
|     return priv->homeserver; | ||||
| } | ||||
|  | ||||
| static void | ||||
| matrix_http_api_finalize(GObject *gobject) | ||||
| { | ||||
|     MatrixHTTPAPI *matrix_http_api = MATRIX_HTTP_API(gobject); | ||||
|     MatrixHTTPAPIPrivate *priv = matrix_http_api_get_instance_private(MATRIX_HTTP_API(gobject)); | ||||
|  | ||||
|     g_object_unref(priv->soup_session); | ||||
| @@ -2339,9 +2344,9 @@ matrix_http_api_finalize(GObject *gobject) | ||||
|         soup_uri_free(priv->media_uri); | ||||
|     } | ||||
|  | ||||
|     g_free(matrix_http_api->_user_id); | ||||
|     g_free(priv->token); | ||||
|     g_free(matrix_http_api->_homeserver); | ||||
|     g_free(priv->user_id); | ||||
|     g_free(priv->homeserver); | ||||
|  | ||||
|     G_OBJECT_CLASS(matrix_http_api_parent_class)->finalize(gobject); | ||||
| } | ||||
| @@ -2537,4 +2542,6 @@ matrix_http_api_init(MatrixHTTPAPI *matrix_http_api) | ||||
|     priv->api_uri = NULL; | ||||
|     priv->media_uri = NULL; | ||||
|     priv->token = NULL; | ||||
|     priv->homeserver = NULL; | ||||
|     priv->user_id = NULL; | ||||
| } | ||||
|   | ||||
| @@ -37,9 +37,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(MatrixHTTPAPI, g_object_unref); | ||||
|  | ||||
| struct _MatrixHTTPAPI { | ||||
|     GObject parent_instance; | ||||
|  | ||||
|     gchar *_homeserver; | ||||
|     gchar *_user_id; | ||||
| }; | ||||
|  | ||||
| struct _MatrixHTTPAPIClass { | ||||
|   | ||||
| @@ -808,20 +808,18 @@ matrix_http_client_real_load_state(MatrixClient *matrix_client, const gchar *fil | ||||
|     matrix_http_api_set_validate_certificate(MATRIX_HTTP_API(matrix_client), json_node_get_boolean(node)); | ||||
|  | ||||
|     if ((node = json_object_get_member(root, "user_id")) != NULL) { | ||||
|         g_free(MATRIX_HTTP_API(matrix_client)->_user_id); | ||||
|         MATRIX_HTTP_API(matrix_client)->_user_id = g_strdup(json_node_get_string(node)); | ||||
|         matrix_api_set_user_id(MATRIX_API(matrix_client), json_node_get_string(node)); | ||||
|  | ||||
| #if DEBUG | ||||
|         g_debug("Loaded user ID %s", MATRIX_HTTP_API(matrix_client)->_user_id); | ||||
|         g_debug("Loaded user ID %s", matrix_api_get_user_id(MATRIX_API(matrix_client))); | ||||
| #endif | ||||
|     } | ||||
|  | ||||
|     if ((node = json_object_get_member(root, "homeserver_name")) != NULL) { | ||||
|         g_free(MATRIX_HTTP_API(matrix_client)->_homeserver); | ||||
|         MATRIX_HTTP_API(matrix_client)->_homeserver = g_strdup(json_node_get_string(node)); | ||||
|         matrix_api_set_homeserver(MATRIX_API(matrix_client), json_node_get_string(node)); | ||||
|  | ||||
| #if DEBUG | ||||
|         g_debug("Loaded homeserver name %s", MATRIX_HTTP_API(matrix_client)->_homeserver); | ||||
|         g_debug("Loaded homeserver name %s", matrix_api_get_homeserver(MATRIX_API(matrix_client))); | ||||
| #endif | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user