Added LmBlockingResolver which will handle the case when we do not have libasyncns.
authorMikael Hallendal <micke@imendio.com>
Mon, 14 Jul 2008 00:14:28 +0200
changeset 458 0cd193ceddaa
parent 457 9eeae02afc18
child 459 e6e0a95d108a
Added LmBlockingResolver which will handle the case when we do not have libasyncns. The blocking resolver will be blocking while waiting for response from a web server.
loudmouth/Makefile.am
loudmouth/lm-blocking-resolver.c
loudmouth/lm-blocking-resolver.h
--- a/loudmouth/Makefile.am	Mon Jul 14 00:02:50 2008 +0200
+++ b/loudmouth/Makefile.am	Mon Jul 14 00:14:28 2008 +0200
@@ -49,6 +49,8 @@
 	lm-resolver.h                   \
 	lm-asyncns-resolver.c           \
 	lm-asyncns-resolver.h           \
+	lm-blocking-resolver.c          \
+	lm-blocking-resolver.h          \
 	                                \
 	lm-internals.h			\
 	lm-sha.c			\
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loudmouth/lm-blocking-resolver.c	Mon Jul 14 00:14:28 2008 +0200
@@ -0,0 +1,81 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2008 Imendio AB
+ *
+ * This program 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 2 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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 <config.h>
+
+#include "lm-marshal.h"
+#include "lm-blocking-resolver.h"
+
+#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolverPriv))
+
+typedef struct LmBlockingResolverPriv LmBlockingResolverPriv;
+struct LmBlockingResolverPriv {
+	gint my_prop;
+};
+
+static void     blocking_resolver_finalize    (GObject       *object);
+static void     blocking_resolver_lookup      (LmResolver    *resolver);
+static void     blocking_resolver_cancel      (LmResolver    *resolver);
+
+G_DEFINE_TYPE (LmBlockingResolver, lm_blocking_resolver, LM_TYPE_RESOLVER)
+
+static void
+lm_blocking_resolver_class_init (LmBlockingResolverClass *class)
+{
+        GObjectClass    *object_class   = G_OBJECT_CLASS (class);
+        LmResolverClass *resolver_class = LM_RESOLVER_CLASS (class);
+
+	object_class->finalize = blocking_resolver_finalize;
+
+        resolver_class->lookup = blocking_resolver_lookup;
+        resolver_class->cancel = blocking_resolver_cancel;
+	
+	g_type_class_add_private (object_class, sizeof (LmBlockingResolverPriv));
+}
+
+static void
+lm_blocking_resolver_init (LmBlockingResolver *blocking_resolver)
+{
+	LmBlockingResolverPriv *priv;
+
+	priv = GET_PRIV (blocking_resolver);
+
+}
+
+static void
+blocking_resolver_finalize (GObject *object)
+{
+	LmBlockingResolverPriv *priv;
+
+	priv = GET_PRIV (object);
+
+	(G_OBJECT_CLASS (lm_blocking_resolver_parent_class)->finalize) (object);
+}
+
+static void
+blocking_resolver_lookup (LmResolver *resolver)
+{
+}
+
+static void
+blocking_resolver_cancel (LmResolver *resolver)
+{
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loudmouth/lm-blocking-resolver.h	Mon Jul 14 00:14:28 2008 +0200
@@ -0,0 +1,53 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2008 Imendio AB
+ *
+ * This program 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 2 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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.
+ */
+
+#ifndef __LM_BLOCKING_RESOLVER_H__
+#define __LM_BLOCKING_RESOLVER_H__
+
+#include <glib-object.h>
+
+#include "lm-resolver.h" 
+
+G_BEGIN_DECLS
+
+#define LM_TYPE_BLOCKING_RESOLVER            (lm_blocking_resolver_get_type ())
+#define LM_BLOCKING_RESOLVER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolver))
+#define LM_BLOCKING_RESOLVER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolverClass))
+#define LM_IS_BLOCKING_RESOLVER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LM_TYPE_BLOCKING_RESOLVER))
+#define LM_IS_BLOCKING_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LM_TYPE_BLOCKING_RESOLVER))
+#define LM_BLOCKING_RESOLVER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolverClass))
+
+typedef struct LmBlockingResolver      LmBlockingResolver;
+typedef struct LmBlockingResolverClass LmBlockingResolverClass;
+
+struct LmBlockingResolver {
+        LmResolver parent;
+};
+
+struct LmBlockingResolverClass {
+	LmResolverClass parent_class;
+};
+
+GType   lm_blocking_resolver_get_type  (void);
+
+G_END_DECLS
+
+#endif /* __LM_BLOCKING_RESOLVER_H__ */
+