--- a/loudmouth/lm-data-objects.c Tue Oct 21 15:47:01 2008 +0200
+++ b/loudmouth/lm-data-objects.c Wed Oct 22 13:12:40 2008 +0200
@@ -22,7 +22,8 @@
#include "lm-data-objects.h"
-static void auth_parameters_free (LmAuthParameters *params);
+static void auth_parameters_free (LmAuthParameters *params);
+static void connect_parameters_free (LmConnectParameters *params);
struct LmAuthParameters {
gchar *username;
@@ -32,6 +33,14 @@
guint ref_count;
};
+struct LmConnectParameters {
+ gchar *domain;
+ gchar *host;
+ guint port;
+
+ guint ref_count;
+};
+
static void
auth_parameters_free (LmAuthParameters *params)
{
@@ -42,6 +51,15 @@
g_slice_free (LmAuthParameters, params);
}
+static void
+connect_parameters_free (LmConnectParameters *params)
+{
+ g_free (params->domain);
+ g_free (params->host);
+
+ g_slice_free (LmConnectParameters, params);
+}
+
LmAuthParameters *
lm_auth_parameters_new (const gchar *username,
const gchar *password,
@@ -106,4 +124,68 @@
if (params->ref_count == 0) {
auth_parameters_free (params);
}
+}
+
+LmConnectParameters *
+lm_connect_parameters_new (const gchar *domain,
+ const gchar *host,
+ guint port)
+{
+ LmConnectParameters *params;
+
+ params = g_slice_new0 (LmConnectParameters);
+
+ params->domain = g_strdup (domain);
+ params->host = g_strdup (host);
+ params->port = port;
+
+ params->ref_count = 1;
+
+ return params;
+}
+
+const gchar *
+lm_connect_parameters_get_domain (LmConnectParameters *params)
+{
+ g_return_val_if_fail (params != NULL, NULL);
+
+ return params->domain;
+}
+
+const gchar *
+lm_connect_parameters_get_host (LmConnectParameters *params)
+{
+ g_return_val_if_fail (params != NULL, NULL);
+
+ return params->host;
+}
+
+guint
+lm_connect_parameters_get_port (LmConnectParameters *params)
+{
+ g_return_val_if_fail (params != NULL, 0);
+
+ return params->port;
+}
+
+LmConnectParameters *
+lm_connect_parameters_ref (LmConnectParameters *params)
+{
+ g_return_val_if_fail (params != NULL, NULL);
+
+ params->ref_count++;
+
+ return params;
+}
+
+void
+lm_connect_parameters_unref (LmConnectParameters *params)
+{
+ g_return_if_fail (params != NULL);
+
+ params->ref_count--;
+
+ if (params->ref_count == 0) {
+ connect_parameters_free (params);
+ }
}
\ No newline at end of file
--- a/loudmouth/lm-data-objects.h Tue Oct 21 15:47:01 2008 +0200
+++ b/loudmouth/lm-data-objects.h Wed Oct 22 13:12:40 2008 +0200
@@ -20,7 +20,8 @@
#include <glib.h>
-typedef struct LmAuthParameters LmAuthParameters;
+typedef struct LmAuthParameters LmAuthParameters;
+typedef struct LmConnectParameters LmConnectParameters;
LmAuthParameters * lm_auth_parameters_new (const gchar *username,
const gchar *password,
@@ -31,4 +32,15 @@
const gchar * lm_auth_parameters_get_resource (LmAuthParameters *params);
LmAuthParameters * lm_auth_parameters_ref (LmAuthParameters *params);
-void lm_auth_parameters_unref (LmAuthParameters *params);
\ No newline at end of file
+void lm_auth_parameters_unref (LmAuthParameters *params);
+
+LmConnectParameters * lm_connect_parameters_new (const gchar *domain,
+ const gchar *host,
+ guint port);
+
+const gchar * lm_connect_parameters_get_domain (LmConnectParameters *params);
+const gchar * lm_connect_parameters_get_host (LmConnectParameters *params);
+guint lm_connect_parameters_get_port (LmConnectParameters *params);
+
+LmConnectParameters * lm_connect_parameters_ref (LmConnectParameters *params);
+void lm_connect_parameters_unref (LmConnectParameters *params);
\ No newline at end of file
--- a/tests/Makefile.am Tue Oct 21 15:47:01 2008 +0200
+++ b/tests/Makefile.am Wed Oct 22 13:12:40 2008 +0200
@@ -5,19 +5,25 @@
noinst_PROGRAMS = $(TEST_PROGS)
TEST_PROGS =
-TEST_PROGS += test-parser
+TEST_PROGS += test-parser \
+ test-data-objects
+
test_parser_SOURCES = \
- test-parser.c
+ test-parser.c
+
+test_data_objects_SOURCES = \
+ test-data-objects.c \
+ $(top_srcdir)/loudmouth/lm-data-objects.c
AM_CPPFLAGS = \
- -I. \
- -I$(top_srcdir) \
- -DLM_COMPILATION \
- -DRUNTIME_ENDIAN \
- $(LOUDMOUTH_CFLAGS) \
- -DPARSER_TEST_DIR="\"$(top_srcdir)/tests/parser-tests\""
+ -I. \
+ -I$(top_srcdir) \
+ -DLM_COMPILATION \
+ -DRUNTIME_ENDIAN \
+ $(LOUDMOUTH_CFLAGS) \
+ -DPARSER_TEST_DIR="\"$(top_srcdir)/tests/parser-tests\""
LIBS = \
- $(LOUDMOUTH_LIBS) \
- $(top_builddir)/loudmouth/libloudmouth-1.la
+ $(LOUDMOUTH_LIBS) \
+ $(top_builddir)/loudmouth/libloudmouth-1.la
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-data-objects.c Wed Oct 22 13:12:40 2008 +0200
@@ -0,0 +1,62 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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 <stdlib.h>
+#include <glib.h>
+
+#include "loudmouth/lm-data-objects.h"
+
+static void
+test_auth_parameters ()
+{
+ LmAuthParameters *params;
+
+ params = lm_auth_parameters_new ("my_user", "my_pass", "my_resource");
+ g_assert (g_strcmp0 ("my_user", lm_auth_parameters_get_username (params)) == 0);
+ g_assert (g_strcmp0 ("my_pass", lm_auth_parameters_get_password (params)) == 0);
+ g_assert (g_strcmp0 ("my_resource", lm_auth_parameters_get_resource (params)) == 0);
+
+ lm_auth_parameters_unref (params);
+}
+
+static void
+test_connect_parameters ()
+{
+ LmConnectParameters *params;
+
+ params = lm_connect_parameters_new ("my_domain", "my_host", 5223);
+ g_assert (g_strcmp0 ("my_domain", lm_connect_parameters_get_domain (params)) == 0);
+ g_assert (g_strcmp0 ("my_host", lm_connect_parameters_get_host (params)) == 0);
+ g_assert (5223 == lm_connect_parameters_get_port (params));
+
+ lm_connect_parameters_unref (params);
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/data_objects/auth_paramters", test_auth_parameters);
+ g_test_add_func ("/data_objects/connect_parameters", test_connect_parameters);
+
+ return g_test_run ();
+}
+