loudmouth/lm-data-objects.c
changeset 536 d2e9e1df6d82
parent 535 65e61128ef18
child 577 33f1a77acc72
child 579 b1eec2598783
--- 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