diff --git a/.gitignore b/.gitignore
index db191e5..9cfa4bf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,7 +36,6 @@ Makefile.in
/INSTALL
/ChangeLog
/src/matrix-version.h
-/src/matrix-enumtypes.[ch]
/src/matrix-marshalers.[ch]
/src/stamp-matrix-marshalers
/docs/reference/matrix-glib/version.xml
diff --git a/src/Makefile.am b/src/Makefile.am
index b5dabc6..e0f79c0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -75,24 +75,16 @@ $(libmatrix_glib_0_0_la_VALA_SOURCES:.vala=.c): vala-stamp
bin_PROGRAMS = test-api-client
INST_H_SRC_FILES = \
- matrix-types.h \
$(NULL)
INST_H_BUILT_FILES = \
matrix-version.h \
- matrix-enumtypes.h \
- $(NULL)
-
-matrix_enum_headers = \
- matrix-types.h \
$(NULL)
libmatrix_glib_0_0_la_SOURCES = \
$(INST_H_BUILT_FILES) \
$(libmatrix_glib_0_0_la_VALA_SOURCES:.vala=.c) \
matrix-version.c \
- matrix-types.c \
- matrix-enumtypes.c \
$(INST_H_SRC_FILES) \
$(NULL)
@@ -116,8 +108,6 @@ libmatrix_glib_0_0_la_LDFLAGS = \
$(PUBLIC_HEADER): vala-stamp
BUILT_SOURCES += \
- matrix-enumtypes.c \
- matrix-enumtypes.h \
$(NULL)
test_api_client_SOURCES = test-api-client.c
@@ -129,21 +119,9 @@ test_api_client_LDADD = \
CLEANFILES += $(BUILT_SOURCES)
EXTRA_DIST += \
- matrix-enumtypes.h.template \
- matrix-enumtypes.c.template \
$(INST_H_SRC_FILES) \
$(NULL)
-matrix-enumtypes.h: $(matrix_enum_headers) matrix-enumtypes.h.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(filter %.template,$^) \
- $(filter-out %.template,$^) > $@.tmp \
- && mv $@.tmp $@
-
-matrix-enumtypes.c: $(matrix_enum_headers) matrix-enumtypes.h matrix-enumtypes.c.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(filter %.template,$^) \
- $(filter-out %.template,$^) > $@.tmp \
- && mv $@.tmp $@
-
include $(INTROSPECTION_MAKEFILE)
Matrix-0.0.gir: libmatrix-glib-$(MATRIX_GLIB_API_VERSION).la
diff --git a/src/c-api.vapi b/src/c-api.vapi
index 829a19c..610bebe 100644
--- a/src/c-api.vapi
+++ b/src/c-api.vapi
@@ -18,26 +18,4 @@
[CCode (cprefix = "Matrix", gir_namespace = "Matrix", gir_version = "0.0", lower_case_cprefix = "matrix_")]
namespace Matrix {
- [CCode (cheader_filename = "matrix-enumtypes.h", cprefix = "MATRIX_ERROR_")]
- public errordomain Error {
- NONE,
- COMMUNICATION_ERROR,
- INCOMPLETE,
- BAD_REQUEST,
- BAD_RESPONSE,
- INVALID_ROOM_ID,
- UNKNOWN_VALUE,
- INVALID_TYPE,
- UNSUPPORTED,
- INVALID_FORMAT,
- M_MISSING_TOKEN,
- M_FORBIDDEN,
- M_UNKNOWN,
- M_UNKNOWN_TOKEN,
- M_NOT_JSON,
- M_UNRECOGNIZED,
- UNSPECIFIED,
- UNKNOWN_ERROR;
- public static GLib.Quark quark ();
- }
}
diff --git a/src/matrix-enums.vala b/src/matrix-enums.vala
index 4e050a9..bed3ad5 100644
--- a/src/matrix-enums.vala
+++ b/src/matrix-enums.vala
@@ -17,6 +17,57 @@
*/
namespace Matrix {
+ public errordomain Error {
+ NONE, /// no error
+ COMMUNICATION_ERROR, /// there was a problem in communication (e.g. connection error)
+ INCOMPLETE, /// the passed/generated data is incomplete
+ BAD_REQUEST, /// the request is invalid
+ BAD_RESPONSE, /// malformed response, or the response is not a JSON object
+ INVALID_ROOM_ID, /// the provided string doesn’t contain a valid room ID
+ UNKNOWN_VALUE, /// the response from the Matrix.org server contains a value unknown to this library. These should be reported to the Matrix GLib SDK developers
+ INVALID_TYPE, /// the provided type is invalid
+ UNSUPPORTED, ///the operation is unsupported
+ INVALID_FORMAT, /// the format of the JSON node is invalid (e.g. it is an array instead of an object)
+
+ /* Add Matrix-defined error codes under here, prefixing them with
+ * `MATRIX_ERROR_`, i.e. `M_FORBIDDEN` =>
+ * `MATRIX_ERROR_M_FORBIDDEN` */
+ M_MISSING_TOKEN = 500, /// authorization token is missing from the request
+ M_FORBIDDEN, /// access was forbidden (e.g. due to a missing/invalid token, or using a bad password during login)
+ M_UNKNOWN, /// an error unknown to the Matrix homeserver
+ M_UNKNOWN_TOKEN, /// the token provided is not known for the homeserver
+ M_NOT_JSON, /// illegal request, the content is not valid JSON
+ M_UNRECOGNIZED, /// the homeserver didn't understand the request
+ M_UNAUTHORIZED, /// the request is unauthorized
+ M_BAD_JSON, /// the JSON data is not in the required format
+ M_USER_IN_USE, /// the specified username is in use
+ M_ROOM_IN_USE, /// the specified room is in use
+ M_BAD_PAGINATION, /// invalid pagination parameters
+ M_BAD_STATE, /// invalid state event
+ M_NOT_FOUND, /// the requested resource is not found
+ M_GUEST_ACCESS_FORBIDDEN, /// guest access was requested, but it is forbidden
+ M_LIMIT_EXCEEDED, /// the request was rate limited
+ M_CAPTCHA_NEEDED, /// a captcha is needed to continue
+ M_CAPTCHA_INVALID, /// the provided captcha is invalid
+ M_MISSING_PARAM, /// a parameter is missing from the request
+ M_TOO_LARGE, /// the request data is too large
+ M_EXCLUSIVE, /// the desired user ID is in an exclusive namespace claimed by an application server
+ M_THREEPID_AUTH_FAILED, /// 3rd party authentication failed
+ M_THREEPID_IN_USE, /// the provided 3rd party ID is already in use
+ M_INVALID_USERNAME, /// the given username is invalid
+
+ /* Allow for a lot of Matrix.org defined codes
+ * Do not define error codes after this! */
+ UNSPECIFIED = 16383, /// no error code was sent by the homeserver. If you see this error, that usually indicates a homeserver bug
+ UNKNOWN_ERROR; /// an error unknown to this library
+
+ public static GLib.Quark
+ quark ()
+ {
+ return Quark.from_string("matrix-error-quark");
+ }
+ }
+
/**
* User account types.
*/
diff --git a/src/matrix-enumtypes.c.template b/src/matrix-enumtypes.c.template
deleted file mode 100644
index 82f02a8..0000000
--- a/src/matrix-enumtypes.c.template
+++ /dev/null
@@ -1,59 +0,0 @@
-/*** BEGIN file-header ***/
-/*
- * 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
- * .
- */
-
-#include "matrix-enumtypes.h"
-/*** END file-header ***/
-
-/*** BEGIN file-production ***/
-
-/* enumerations from @filename@ */
-/*** END file-production ***/
-
-/*** BEGIN value-header ***/
-
-GType
-@enum_name@_get_type(void)
-{
- static volatile gsize g_define_type_id__volatile = 0;
-
- if (g_once_init_enter(&g_define_type_id__volatile)) {
- static const G@Type@Value values[] = {
-/*** END value-header ***/
-
-/*** BEGIN value-production ***/
- {
- @VALUENAME@,
- "@VALUENAME@",
- "@valuenick@"
- },
-/*** END value-production ***/
-
-/*** BEGIN value-tail ***/
- {0, NULL, NULL}
- };
-
- GType g_define_type_id = g_@type@_register_static(
- g_intern_static_string("@EnumName@"),
- values);
- g_once_init_leave(&g_define_type_id__volatile, g_define_type_id);
- }
-
- return g_define_type_id__volatile;
-}
-/*** END value-tail ***/
diff --git a/src/matrix-enumtypes.h.template b/src/matrix-enumtypes.h.template
deleted file mode 100644
index 0327afa..0000000
--- a/src/matrix-enumtypes.h.template
+++ /dev/null
@@ -1,42 +0,0 @@
-/*** BEGIN file-header ***/
-/*
- * 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
- * .
- */
-
-#ifndef __MATRIX_ENUMTYPES_H__
-#define __MATRIX_ENUMTYPES_H__
-
-#include
-
-/*** END file-header ***/
-
-/*** BEGIN file-production ***/
-/* enumerations from "@filename@" */
-
-#include "@filename@"
-/*** END file-production ***/
-
-/*** BEGIN value-header ***/
-
-GType @enum_name@_get_type(void);
-#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
-/*** END value-header ***/
-
-/*** BEGIN file-tail ***/
-
-#endif /* __MATRIX_ENUMTYPES_H__ */
-/*** END file-tail ***/
diff --git a/src/matrix-types.c b/src/matrix-types.c
deleted file mode 100644
index e0c4e70..0000000
--- a/src/matrix-types.c
+++ /dev/null
@@ -1,111 +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
- * .
- */
-
-#include "matrix-types.h"
-#include "matrix-enumtypes.h"
-#include "matrix-glib.h"
-
-/**
- * SECTION:matrix-types
- * @title: Generic types
- * @short_description: Generic types for Matrix GLib SDK calls
- *
- * These are the generic types used by many SDK calls for
- * communication with the homeserver.
- */
-
-/**
- * MatrixError:
- * @MATRIX_ERROR_NONE: no error
- * @MATRIX_ERROR_COMMUNICATION_ERROR: there was a problem in
- * communication (e.g. connection
- * error)
- * @MATRIX_ERROR_INCOMPLETE: the passed/generated data is incomplete
- * @MATRIX_ERROR_BAD_REQUEST: the request is invalid
- * @MATRIX_ERROR_BAD_RESPONSE: malformed response, or the response is
- * not a JSON object
- * @MATRIX_ERROR_INVALID_ROOM_ID: the provided string doesn’t contain
- * a valid room ID
- * @MATRIX_ERROR_INVALID_TYPE: the provided type is invalid
- * @MATRIX_ERROR_UNSUPPORTED: the operation is unsupported
- * @MATRIX_ERROR_INVALID_FORMAT: the format of the JSON node is
- * invalid (e.g. it is an array instead
- * of an object)
- * @MATRIX_ERROR_UNKNOWN_VALUE: the response from the Matrix.org
- * server contains a value unknown to
- * this library. These should be reported
- * to the Matrix GLib SDK developers
- * @MATRIX_ERROR_M_MISSING_TOKEN: authorization token is missing from
- * the request
- * @MATRIX_ERROR_M_FORBIDDEN: access was forbidden (e.g. due to a
- * missing/invalid token, or using a bad
- * password during login)
- * @MATRIX_ERROR_M_UNKNOWN: an error unknown to the Matrix homeserver
- * @MATRIX_ERROR_M_UNKNOWN_TOKEN: the token provided is not known for
- * the homeserver
- * @MATRIX_ERROR_M_NOT_JSON: illegal request, the content is not valid
- * JSON
- * @MATRIX_ERROR_M_UNRECOGNIZED: the homeserver didn't understand the
- * request
- * @MATRIX_ERROR_M_UNAUTHORIZED: the request is unauthorized
- * @MATRIX_ERROR_M_BAD_JSON: the JSON data is not in the required
- * format
- * @MATRIX_ERROR_M_USER_IN_USE: the specified username is in use
- * @MATRIX_ERROR_M_ROOM_IN_USE: the specified room is in use
- * @MATRIX_ERROR_M_BAD_PAGINATION: invalid pagination parameters
- * @MATRIX_ERROR_M_BAD_STATE: invalid state event
- * @MATRIX_ERROR_M_NOT_FOUND: the requested resource is not found
- * @MATRIX_ERROR_M_GUEST_ACCESS_FORBIDDEN: guest access was requested,
- * but it is forbidden
- * @MATRIX_ERROR_M_LIMIT_EXCEEDED: the request was rate limited
- * @MATRIX_ERROR_M_CAPTCHA_NEEDED: a captcha is needed to continue
- * @MATRIX_ERROR_M_CAPTCHA_INVALID: the provided captcha is invalid
- * @MATRIX_ERROR_M_MISSING_PARAM: a parameter is missing from the
- * request
- * @MATRIX_ERROR_M_TOO_LARGE: the request data is too large
- * @MATRIX_ERROR_M_EXCLUSIVE: the desired user ID is in an exclusive
- * namespace claimed by an application
- * server
- * @MATRIX_ERROR_M_THREEPID_AUTH_FAILED: 3rd party authentication
- * failed
- * @MATRIX_ERROR_M_THREEPID_IN_USE: the provided 3rd party ID is
- * already in use
- * @MATRIX_ERROR_M_INVALID_USERNAME: the given username is invalid
- * @MATRIX_ERROR_UNSPECIFIED: no error code was sent by the
- * homeserver. If you see this error, that
- * usually indicates a homeserver bug
- * @MATRIX_ERROR_UNKNOWN_ERROR: an error unknown to this library
- *
- * Value mappings from Matrix.org API error codes
- * (e.g. M_MISSING_TOKEN
). They should be set
- * automatically by API calls, if the response contains an error code.
- */
-
-/**
- * MATRIX_ERROR:
- *
- * Error domain for Matrix GLib SDK. See #GError for more information
- * on error domains.
- */
-
-/**
- * matrix_error_quark:
- *
- * Gets the Matrix error #GQuark
- */
-G_DEFINE_QUARK(matrix-error-quark, matrix_error);
diff --git a/src/matrix-types.h b/src/matrix-types.h
deleted file mode 100644
index a77e7a9..0000000
--- a/src/matrix-types.h
+++ /dev/null
@@ -1,77 +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
- * .
- */
-
-#ifndef __MATRIX_TYPES_H__
-#define __MATRIX_TYPES_H__
-
-#include
-#include
-
-G_BEGIN_DECLS
-
-typedef enum {
- MATRIX_ERROR_NONE,
- MATRIX_ERROR_COMMUNICATION_ERROR,
- MATRIX_ERROR_INCOMPLETE,
- MATRIX_ERROR_BAD_REQUEST,
- MATRIX_ERROR_BAD_RESPONSE,
- MATRIX_ERROR_INVALID_ROOM_ID,
- MATRIX_ERROR_UNKNOWN_VALUE,
- MATRIX_ERROR_INVALID_TYPE,
- MATRIX_ERROR_UNSUPPORTED,
- MATRIX_ERROR_INVALID_FORMAT,
-
- /* Add Matrix-defined error codes under here, prefixing them with
- * `MATRIX_ERROR_`, i.e. `M_FORBIDDEN` =>
- * `MATRIX_ERROR_M_FORBIDDEN` */
- MATRIX_ERROR_M_MISSING_TOKEN = 500,
- MATRIX_ERROR_M_FORBIDDEN,
- MATRIX_ERROR_M_UNKNOWN,
- MATRIX_ERROR_M_UNKNOWN_TOKEN,
- MATRIX_ERROR_M_NOT_JSON,
- MATRIX_ERROR_M_UNRECOGNIZED,
- MATRIX_ERROR_M_UNAUTHORIZED,
- MATRIX_ERROR_M_BAD_JSON,
- MATRIX_ERROR_M_USER_IN_USE,
- MATRIX_ERROR_M_ROOM_IN_USE,
- MATRIX_ERROR_M_BAD_PAGINATION,
- MATRIX_ERROR_M_BAD_STATE,
- MATRIX_ERROR_M_NOT_FOUND,
- MATRIX_ERROR_M_GUEST_ACCESS_FORBIDDEN,
- MATRIX_ERROR_M_LIMIT_EXCEEDED,
- MATRIX_ERROR_M_CAPTCHA_NEEDED,
- MATRIX_ERROR_M_CAPTCHA_INVALID,
- MATRIX_ERROR_M_MISSING_PARAM,
- MATRIX_ERROR_M_TOO_LARGE,
- MATRIX_ERROR_M_EXCLUSIVE,
- MATRIX_ERROR_M_THREEPID_AUTH_FAILED,
- MATRIX_ERROR_M_THREEPID_IN_USE,
- MATRIX_ERROR_M_INVALID_USERNAME,
-
- /* Allow for a lot of Matrix.org defined codes
- Do not define error codes after this! */
- MATRIX_ERROR_UNSPECIFIED = 16383,
- MATRIX_ERROR_UNKNOWN_ERROR
-} MatrixError;
-
-#define MATRIX_ERROR matrix_error_quark()
-GQuark matrix_error_quark(void);
-
-G_END_DECLS
-
-#endif /* __MATRIX_TYPES_H__ */