diff libpurple/protocols/novell/nmrequest.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 32c366eeeb99
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/novell/nmrequest.c	Sat Jan 20 02:32:10 2007 +0000
@@ -0,0 +1,161 @@
+/*
+ * nmrequest.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 "nmrequest.h"
+
+static int count = 0;
+
+struct _NMRequest
+{
+	int trans_id;
+	char *cmd;
+	int gmt;
+	gpointer data;
+	gpointer user_define;
+	nm_response_cb callback;
+	int ref_count;
+	NMERR_T ret_code;
+};
+
+NMRequest *nm_create_request(const char *cmd, int trans_id, int gmt, nm_response_cb cb,
+							 gpointer resp_data, gpointer user_define)
+{
+	NMRequest *req;
+
+	if (cmd == NULL)
+		return NULL;
+
+	req  = g_new0(NMRequest, 1);
+	req->cmd = g_strdup(cmd);
+	req->trans_id = trans_id;
+	req->gmt = gmt;
+	req->callback = cb;
+	req->data = resp_data;
+	req->user_define = user_define;
+	req->ref_count = 1;
+
+	gaim_debug_info("novell", "Creating NMRequest instance, total=%d\n", ++count);
+
+	return req;
+}
+
+void
+nm_release_request(NMRequest * req)
+{
+	if (req && (--req->ref_count == 0)) {
+		if (req->cmd)
+			g_free(req->cmd);
+		g_free(req);
+
+		gaim_debug_info("novell",
+						"Releasing NMRequest instance, total=%d\n", --count);
+	}
+
+}
+
+void
+nm_request_add_ref(NMRequest * req)
+{
+	if (req)
+		req->ref_count++;
+}
+
+void
+nm_request_set_callback(NMRequest * req, nm_response_cb callback)
+{
+	if (req)
+		req->callback = callback;
+}
+
+void
+nm_request_set_data(NMRequest * req, gpointer data)
+{
+	if (req)
+		req->data = data;
+}
+
+void
+nm_request_set_user_define(NMRequest * req, gpointer user_define)
+{
+	if (req)
+		req->user_define = user_define;
+}
+
+int
+nm_request_get_trans_id(NMRequest * req)
+{
+	if (req)
+		return req->trans_id;
+	else
+		return -1;
+}
+
+const char *
+nm_request_get_cmd(NMRequest * req)
+{
+	if (req == NULL)
+		return NULL;
+
+	return req->cmd;
+}
+
+gpointer
+nm_request_get_data(NMRequest * req)
+{
+	if (req == NULL)
+		return NULL;
+
+	return req->data;
+}
+
+gpointer
+nm_request_get_user_define(NMRequest * req)
+{
+	if (req == NULL)
+		return NULL;
+
+	return req->user_define;
+}
+
+nm_response_cb
+nm_request_get_callback(NMRequest * req)
+{
+	if (req == NULL)
+		return NULL;
+
+	return req->callback;
+}
+
+
+void
+nm_request_set_ret_code(NMRequest * req, NMERR_T rc)
+{
+	if (req)
+		req->ret_code = rc;
+}
+
+NMERR_T
+nm_request_get_ret_code(NMRequest * req)
+{
+	if (req)
+		return req->ret_code;
+	else
+		return (NMERR_T) - 1;
+}