Rework MatrixHTTPAPI in Vala

This commit is contained in:
Gergely Polonkai 2016-02-16 17:30:33 +01:00
parent 4d1d6562d0
commit 7d5a10e282
8 changed files with 1768 additions and 2929 deletions

1
.gitignore vendored
View File

@ -64,3 +64,4 @@ Makefile.in
/src/matrix-api.c /src/matrix-api.c
/src/matrix-client.c /src/matrix-client.c
/src/matrix-enums.c /src/matrix-enums.c
/src/matrix-http-api.c

View File

@ -19,6 +19,7 @@ libmatrix_glib_0_0_la_VALA_SOURCES = \
matrix-api.vala \ matrix-api.vala \
matrix-client.vala \ matrix-client.vala \
matrix-enums.vala \ matrix-enums.vala \
matrix-http-api.vala \
$(NULL) $(NULL)
AM_CPPFLAGS += \ AM_CPPFLAGS += \
@ -73,7 +74,6 @@ bin_PROGRAMS = test-api-client
INST_H_SRC_FILES = \ INST_H_SRC_FILES = \
matrix-types.h \ matrix-types.h \
matrix-http-api.h \
matrix-http-client.h \ matrix-http-client.h \
$(NULL) $(NULL)
@ -91,7 +91,6 @@ libmatrix_glib_0_0_la_SOURCES = \
$(libmatrix_glib_0_0_la_VALA_SOURCES:.vala=.c) \ $(libmatrix_glib_0_0_la_VALA_SOURCES:.vala=.c) \
matrix-version.c \ matrix-version.c \
matrix-types.c \ matrix-types.c \
matrix-http-api.c \
matrix-enumtypes.c \ matrix-enumtypes.c \
utils.c \ utils.c \
matrix-http-client.c \ matrix-http-client.c \

View File

@ -108,14 +108,29 @@ namespace Matrix {
} }
[CCode (cheader_filename = "matrix-types.h")] [CCode (cheader_filename = "matrix-types.h")]
public class Pusher {} public class Pusher {
public Json.Node? get_json_node()
[CCode (cheader_filename = "matrix-types.h")] throws Matrix.Error;
public class StateEvent {} }
[CCode (cheader_filename = "matrix-types.h")] [CCode (cheader_filename = "matrix-types.h")]
public class @3PidCredential {} public class StateEvent {
public Json.Node? get_json_node();
[CCode (cheader_filename = "matrix-types.h")] }
public class Filter {}
[CCode (cheader_filename = "matrix-types.h")]
public class @3PidCredential {
public Json.Node? get_json_node()
throws Matrix.Error;
}
[CCode (cheader_filename = "matrix-types.h")]
public class Filter {
public Json.Node? get_json_node();
public string? get_json_data(out size_t datalen);
}
[CCode (cheader_filename = "utils.h", cname = "_json_node_deep_copy")]
public Json.Node?
_json_node_deep_copy(Json.Node? node);
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,60 +0,0 @@
/*
* This file is part of matrix-glib-sdk
*
* matrix-glib-sdk is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either
* version 3 of the License, or (at your option) any later version.
*
* matrix-glib-sdk is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with matrix-glib-sdk. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef __MATRIX_HTTP_API_H__
#define __MATRIX_HTTP_API_H__
#include <glib-object.h>
#include "matrix-glib.h"
G_BEGIN_DECLS
#define MATRIX_TYPE_HTTP_API (matrix_http_api_get_type())
#define MATRIX_HTTP_API(o) (G_TYPE_CHECK_INSTANCE_CAST((o), MATRIX_TYPE_HTTP_API, MatrixHTTPAPI))
#define MATRIX_HTTP_API_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), MATRIX_TYPE_HTTP_API, MatrixHTTPAPIClass))
#define MATRIX_IS_HTTP_API(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), MATRIX_TYPE_HTTP_API))
#define MATRIX_IS_HTTP_API_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), MATRIX_TYPE_HTTP_API))
#define MATRIX_HTTP_API_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), MATRIX_TYPE_HTTP_API, MatrixHTTPAPIClass))
typedef struct _MatrixHTTPAPI MatrixHTTPAPI;
typedef struct _MatrixHTTPAPIClass MatrixHTTPAPIClass;
struct _MatrixHTTPAPI {
/* Parent instance structure */
GObject parent_instance;
/* Instance members */
};
struct _MatrixHTTPAPIClass {
GObjectClass parent_class;
};
GType matrix_http_api_get_type(void) G_GNUC_CONST;
void matrix_http_api_set_validate_certificate(MatrixHTTPAPI *api,
gboolean validate_certificate);
gboolean matrix_http_api_get_validate_certificate(MatrixHTTPAPI *api);
void matrix_http_api_set_base_url(MatrixHTTPAPI *api, const gchar *base_url);
gchar *matrix_http_api_get_base_url(MatrixHTTPAPI *api);
MatrixAPI *matrix_http_api_new(const gchar *base_url, const gchar *token);
G_END_DECLS
#endif /* __MATRIX_HTTP_API_H__ */

1745
src/matrix-http-api.vala Normal file

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,6 @@
#include <glib-object.h> #include <glib-object.h>
#include "matrix-glib.h" #include "matrix-glib.h"
#include "matrix-http-api.h"
G_BEGIN_DECLS G_BEGIN_DECLS

View File

@ -20,7 +20,7 @@
#include <json-glib/json-glib.h> #include <json-glib/json-glib.h>
#include <libsoup/soup.h> #include <libsoup/soup.h>
#include "matrix-http-api.h" #include "matrix-glib.h"
#define LOG_DOMAIN "Matrix-Test-Client" #define LOG_DOMAIN "Matrix-Test-Client"
@ -183,7 +183,7 @@ main(int argc, char *argv[])
g_info("Starting up: %s with %s:%s", *homeserver, user, password); g_info("Starting up: %s with %s:%s", *homeserver, user, password);
api = matrix_http_api_new(*homeserver, NULL); api = MATRIX_API(matrix_http_api_new(*homeserver, NULL));
matrix_http_api_set_validate_certificate(MATRIX_HTTP_API(api), matrix_http_api_set_validate_certificate(MATRIX_HTTP_API(api),
!no_validate_certs); !no_validate_certs);
builder = json_builder_new(); builder = json_builder_new();