mono/ElementNode.cs
author hallski <hallski>
Mon, 02 Aug 2004 23:57:41 +0000
changeset 84 7ae7b690aa89
parent 48 d913b0d5c7b6
permissions -rw-r--r--
2004-05-28 Mikael Hallendal <micke@imendio.com> * configure.in: - Correctly inform whether SSL support was enabled or not. 2004-05-28 Mikael Hallendal <micke@imendio.com> * src/lm-sha.c: Fixed lvalue cast that wasn't approved by newer GCC. 2004-05-10 Mikael Hallendal <micke@imendio.com> * configure.in: Enable Mono on request * mono/*: - Updated the bindings some. - Removed the autogenerated, it's such a small API that I figured it was easier to wrap it manually. 2004-04-30 Mikael Hallendal <micke@imendio.com> * loudmouth/lm-parser.c (parser_end_node_cb): Unref the message node. 2004-04-29 Mikael Hallendal <micke@imendio.com> * examples/lm-change-password.c: * examples/Makefile.am: - Added a small tool to change the password on a jabber account. 2004-04-27 Mikael Hallendal <micke@imendio.com> * Ignore on autogenerated files. 2004-04-20 Mikael Hallendal <micke@imendio.com> * loudmouth/*.[ch]: Updated copyright information 2004-04-20 Mikael Hallendal <micke@imendio.com> * configure.in: Now depend on Glib 2.4 * loudmouth/lm-queue.[ch]: Removed, use the new GQueue in Glib 2.4 * loudmouth/lm-connection.[ch]: Use GQueue instead of LmQueue. 2004-04-16 Mikael Hallendal <micke@imendio.com> * configure.in: Added libtasn1 requirement * loudmouth.spec.in: Added requirement on libtasn if built with SSL. 2004-04-04 Mikael Hallendal <micke@imendio.com> * loudmouth/lm-sha.c: Commited compile fix from Sjoerd. 2004-03-20 Mikael Hallendal <micke@imendio.com> * docs/reference/loudmouth-sections.txt: - Added lm_connection_get_state - Added LmConnectionState
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
     1
using System;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
     2
using System.Runtime.InteropServices;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
     3
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
     4
namespace Loudmouth {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
     5
    
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
     6
    public class ElementNode {
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
     7
	private IntPtr _obj;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
     8
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
     9
	public string Value {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    10
	    get {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    11
		return lm_message_node_get_value (this._obj);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    12
	    } 
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    13
	    set {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    14
		lm_message_node_set_value (this._obj, value);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    15
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    16
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    17
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
    18
	[DllImport ("libloudmouth-1.so")]
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    19
	    private static extern string lm_message_node_get_value (IntPtr obj);
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
    20
	[DllImport ("libloudmouth-1.so")]
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    21
	    private static extern void lm_message_node_set_value (IntPtr obj, string value);
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
    22
	[DllImport ("libloudmouth-1.so")]
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    23
	    private static extern IntPtr lm_message_node_add_child (IntPtr obj, string name, string value);
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
    24
	[DllImport ("libloudmouth-1.so")]
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    25
	    private static extern void lm_message_node_set_attribute (IntPtr obj, string name, string value);
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
    26
	[DllImport ("libloudmouth-1.so")]
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    27
	    private static extern string lm_message_node_get_attribute (IntPtr obj, string name);
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
    28
	[DllImport ("libloudmouth-1.so")]
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    29
	    private static extern IntPtr lm_message_node_get_child (IntPtr obj, string name);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    30
	
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
    31
	[DllImport ("libloudmouth-1.so")]
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    32
	    private static extern IntPtr lm_message_node_find_child (IntPtr obj, string name);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    33
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    34
	public ElementNode (IntPtr obj) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    35
	    this._obj = obj;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    36
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    37
	
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    38
	public ElementNode AddChild (string name, string value) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    39
	    return new ElementNode(lm_message_node_add_child(this._obj, name, value));
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    40
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    41
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    42
	public ElementNode GetChild (string name) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    43
	    IntPtr cChild = lm_message_node_get_child(this._obj, name);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    44
	    if (cChild.ToInt32() == 0) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    45
		return null;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    46
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    47
	    return new ElementNode(cChild);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    48
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    49
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    50
	public ElementNode FindChild (string name) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    51
	    IntPtr cChild = lm_message_node_find_child(this._obj, name);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    52
	    if (cChild.ToInt32() == 0) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    53
		return null;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    54
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    55
	    return new ElementNode(cChild);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    56
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    57
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    58
	public string this[string data] {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    59
	    get {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    60
		return lm_message_node_get_attribute(this._obj, data);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    61
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    62
	    set {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    63
		Console.WriteLine("Setting {0} = {1}: {2}", data, value, this._obj);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    64
		lm_message_node_set_attribute (this._obj, data, value);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    65
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    66
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    67
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    68
	public override string ToString () {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    69
	    return "Loudmouth.ElementNode";
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    70
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    71
    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    72
}