/pidgin/main: f4d353818589: Add time property to PurpleMessage

Tomasz Wasilczyk <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: f4d3538185897eb2df0c6b9c941e60673d5531c4
Author:	 Tomasz Wasilczyk <[email protected]>
Date:	 2014-05-22 19:09 +0200
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/f4d353818589

Description:

Add time property to PurpleMessage

diffstat:

 libpurple/message.c |  32 ++++++++++++++++++++++++++++++++
 libpurple/message.h |   6 ++++++
 2 files changed, 38 insertions(+), 0 deletions(-)

diffs (100 lines):

diff --git a/libpurple/message.c b/libpurple/message.c
--- a/libpurple/message.c
+++ b/libpurple/message.c
@@ -33,6 +33,7 @@ typedef struct {
 	guint id;
 	gchar *who;
 	gchar *contents;
+	guint64 msgtime;
 	PurpleMessageFlags flags;
 } PurpleMessagePrivate;
 
@@ -42,6 +43,7 @@ enum
 	PROP_ID,
 	PROP_WHO,
 	PROP_CONTENTS,
+	PROP_TIME,
 	PROP_FLAGS,
 	PROP_LAST
 };
@@ -63,6 +65,7 @@ purple_message_new(const gchar *who, con
 		"who", who,
 		"contents", contents,
 		"flags", flags,
+		"time", (guint64)time(NULL),
 		NULL);
 }
 
@@ -118,6 +121,26 @@ purple_message_is_empty(PurpleMessage *m
 	return (cont == NULL || cont[0] == '\0');
 }
 
+void
+purple_message_set_time(PurpleMessage *msg, guint64 msgtime)
+{
+	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+
+	g_return_if_fail(priv != NULL);
+
+	priv->msgtime = msgtime;
+}
+
+guint64
+purple_message_get_time(PurpleMessage *msg)
+{
+	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+
+	g_return_val_if_fail(priv != NULL, 0);
+
+	return priv->msgtime;
+}
+
 PurpleMessageFlags
 purple_message_get_flags(PurpleMessage *msg)
 {
@@ -174,6 +197,9 @@ purple_message_get_property(GObject *obj
 		case PROP_CONTENTS:
 			g_value_set_string(value, priv->contents);
 			break;
+		case PROP_TIME:
+			g_value_set_uint64(value, priv->msgtime);
+			break;
 		case PROP_FLAGS:
 			g_value_set_uint(value, priv->flags);
 			break;
@@ -199,6 +225,9 @@ purple_message_set_property(GObject *obj
 			g_free(priv->contents);
 			priv->contents = g_strdup(g_value_get_string(value));
 			break;
+		case PROP_TIME:
+			priv->msgtime = g_value_get_uint64(value);
+			break;
 		case PROP_FLAGS:
 			priv->flags = g_value_get_uint(value);
 			break;
@@ -232,6 +261,9 @@ purple_message_class_init(PurpleMessageC
 	properties[PROP_CONTENTS] = g_param_spec_string("contents",
 		"Contents", "The message text",
 		NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+	properties[PROP_TIME] = g_param_spec_uint64("time",
+		"Time", "Message time",
+		0, G_MAXUINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	/* XXX: it should be spec_enum, but PurpleMessageFlags isn't
 	 * gobjectified (yet) */
 	properties[PROP_FLAGS] = g_param_spec_uint("flags",
diff --git a/libpurple/message.h b/libpurple/message.h
--- a/libpurple/message.h
+++ b/libpurple/message.h
@@ -104,6 +104,12 @@ purple_message_get_contents(PurpleMessag
 gboolean
 purple_message_is_empty(PurpleMessage *msg);
 
+void
+purple_message_set_time(PurpleMessage *msg, guint64 msgtime);
+
+guint64
+purple_message_get_time(PurpleMessage *msg);
+
 PurpleMessageFlags
 purple_message_get_flags(PurpleMessage *msg);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.