diff libpurple/protocols/novell/nmmessage.c @ 15373:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children 44b4e8bd759b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/novell/nmmessage.c	Sat Jan 20 02:32:10 2007 +0000
@@ -0,0 +1,97 @@
+/*
+ * nmmessage.c
+ *
+ * Copyright (c) 2004 Novell, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA	02111-1307	USA
+ *
+ */
+
+#include "nmmessage.h"
+
+struct _NMMessage
+{
+	NMConference *conference;
+	char *text;
+	gpointer data;
+	guint32 ref_count;
+};
+
+
+/** Message API **/
+
+NMMessage *
+nm_create_message(const char *text)
+{
+	NMMessage *msg = g_new0(NMMessage, 1);
+
+	if (text)
+		msg->text = g_strdup(text);
+
+	msg->ref_count = 1;
+	return msg;
+}
+
+void
+nm_message_add_ref(NMMessage * msg)
+{
+	if (msg)
+		msg->ref_count++;
+}
+
+void
+nm_release_message(NMMessage * msg)
+{
+	if (msg && (--(msg->ref_count) == 0)) {
+		if (msg->text)
+			g_free(msg->text);
+
+		if (msg->conference)
+			nm_release_conference(msg->conference);
+
+		g_free(msg);
+	}
+}
+
+const char *
+nm_message_get_text(NMMessage * msg)
+{
+	if (msg == NULL)
+		return NULL;
+
+	return msg->text;
+}
+
+void
+nm_message_set_conference(NMMessage * msg, NMConference * conf)
+{
+	if (msg == NULL || conf == NULL)
+		return;
+
+	/* Need to ref the conference first so that it doesn't
+	 * get released out from under us
+	 */
+	nm_conference_add_ref(conf);
+
+	msg->conference = conf;
+}
+
+NMConference *
+nm_message_get_conference(NMMessage * msg)
+{
+	if (msg == NULL)
+		return NULL;
+
+	return msg->conference;
+}