From 3c105057c709f9ea4023cf6ce294040098cba42e Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 27 Jul 2023 13:42:44 -0700 Subject: [PATCH] libsysprof: add message-type property --- .../sysprof-document-dbus-message.c | 24 +++++++++++++++++++ .../sysprof-document-dbus-message.h | 18 +++++++------- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/libsysprof/sysprof-document-dbus-message.c b/src/libsysprof/sysprof-document-dbus-message.c index 83cbb2c3..d234807e 100644 --- a/src/libsysprof/sysprof-document-dbus-message.c +++ b/src/libsysprof/sysprof-document-dbus-message.c @@ -40,6 +40,7 @@ enum { PROP_0, PROP_MESSAGE, PROP_MESSAGE_LENGTH, + PROP_MESSAGE_TYPE, PROP_SERIAL, PROP_SENDER, PROP_DESTINATION, @@ -90,6 +91,10 @@ sysprof_document_dbus_message_get_property (GObject *object, g_value_set_string (value, sysprof_document_dbus_message_get_destination (self)); break; + case PROP_MESSAGE_TYPE: + g_value_set_enum (value, sysprof_document_dbus_message_get_message_type (self)); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -131,6 +136,12 @@ sysprof_document_dbus_message_class_init (SysprofDocumentDBusMessageClass *klass NULL, (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + properties[PROP_MESSAGE_TYPE] = + g_param_spec_enum ("message-type", NULL, NULL, + G_TYPE_DBUS_MESSAGE_TYPE, + G_DBUS_MESSAGE_TYPE_INVALID, + (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_properties (object_class, N_PROPS, properties); } @@ -251,3 +262,16 @@ sysprof_document_dbus_message_get_destination (SysprofDocumentDBusMessage *self) /* Safe because of self->message */ return g_dbus_message_get_destination (message); } + +GDBusMessageType +sysprof_document_dbus_message_get_message_type (SysprofDocumentDBusMessage *self) +{ + g_autoptr(GDBusMessage) message = NULL; + + g_return_val_if_fail (SYSPROF_IS_DOCUMENT_DBUS_MESSAGE (self), 0); + + if (!(message = sysprof_document_dbus_message_dup_message (self))) + return 0; + + return g_dbus_message_get_message_type (message); +} diff --git a/src/libsysprof/sysprof-document-dbus-message.h b/src/libsysprof/sysprof-document-dbus-message.h index 7073f735..6072feb1 100644 --- a/src/libsysprof/sysprof-document-dbus-message.h +++ b/src/libsysprof/sysprof-document-dbus-message.h @@ -35,20 +35,22 @@ typedef struct _SysprofDocumentDBusMessage SysprofDocumentDBusMessage; typedef struct _SysprofDocumentDBusMessageClass SysprofDocumentDBusMessageClass; SYSPROF_AVAILABLE_IN_ALL -GType sysprof_document_dbus_message_get_type (void) G_GNUC_CONST; +GType sysprof_document_dbus_message_get_type (void) G_GNUC_CONST; SYSPROF_AVAILABLE_IN_ALL -guint sysprof_document_dbus_message_get_message_length (SysprofDocumentDBusMessage *self); +guint sysprof_document_dbus_message_get_message_length (SysprofDocumentDBusMessage *self); SYSPROF_AVAILABLE_IN_ALL -const guint8 *sysprof_document_dbus_message_get_message_data (SysprofDocumentDBusMessage *self, - guint *length); +const guint8 *sysprof_document_dbus_message_get_message_data (SysprofDocumentDBusMessage *self, + guint *length); SYSPROF_AVAILABLE_IN_ALL -GDBusMessage *sysprof_document_dbus_message_dup_message (SysprofDocumentDBusMessage *self); +GDBusMessage *sysprof_document_dbus_message_dup_message (SysprofDocumentDBusMessage *self); SYSPROF_AVAILABLE_IN_ALL -guint sysprof_document_dbus_message_get_serial (SysprofDocumentDBusMessage *self); +guint sysprof_document_dbus_message_get_serial (SysprofDocumentDBusMessage *self); SYSPROF_AVAILABLE_IN_ALL -const char *sysprof_document_dbus_message_get_destination (SysprofDocumentDBusMessage *self); +const char *sysprof_document_dbus_message_get_destination (SysprofDocumentDBusMessage *self); SYSPROF_AVAILABLE_IN_ALL -const char *sysprof_document_dbus_message_get_sender (SysprofDocumentDBusMessage *self); +const char *sysprof_document_dbus_message_get_sender (SysprofDocumentDBusMessage *self); +SYSPROF_AVAILABLE_IN_ALL +GDBusMessageType sysprof_document_dbus_message_get_message_type (SysprofDocumentDBusMessage *self); G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofDocumentDBusMessage, g_object_unref)