mono/Elements.cs
author hallski <hallski>
Sun, 10 Sep 2006 22:09:45 +0000
changeset 175 5e665ffe3e9c
parent 84 7ae7b690aa89
permissions -rw-r--r--
2006-09-11 Mikael Hallendal <micke@imendio.com> * Release 1.0.5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
     1
using System;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
     2
using System.Runtime.InteropServices;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
     3
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
     4
namespace Loudmouth {
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
     5
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
     6
    public class Element  {
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
     7
	protected IntPtr _obj;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
     8
	
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
     9
	public enum ElementType {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    10
	    MESSAGE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    11
	    PRESENCE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    12
	    IQ,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    13
	    STREAM,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    14
	    STREAM_ERROR,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    15
	    UNKNOWN
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
	
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    18
	public enum ElementSubType {
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    19
	    NOT_SET = -10,
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    20
	    AVAILABLE = -1,
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    21
	    NORMAL = 0,
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    22
	    CHAT,
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    23
	    GROUPCHAT,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    24
	    HEADLINE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    25
	    UNAVAILABLE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    26
	    PROBE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    27
	    SUBSCRIBE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    28
	    UNSUBSCRIBE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    29
	    SUBSCRIBED,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    30
	    UNSUBSCRIBED,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    31
	    GET,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    32
	    SET,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    33
	    RESULT,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    34
	    ERROR
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    35
	}
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
	public ElementType Kind {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    38
	    get {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    39
		return (ElementType) lm_message_get_type(this._obj);
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
	
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    43
	public string this[string data] {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    44
	    get {
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    45
		ElementNode node = this.GetNode ();
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    46
		return node[data];
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    47
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    48
	    set {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    49
		ElementNode node = this.GetNode();
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    50
		node[data] = value;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    51
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    52
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    53
	
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    54
	protected Element (IntPtr obj) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    55
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    56
	    this._obj = obj;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    57
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    58
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    59
	protected Element (string to, ElementType type) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    60
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    61
	    _obj = lm_message_new (to, type);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    62
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    63
	
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    64
	protected Element (string to, ElementType type, ElementSubType sub) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    65
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    66
	    _obj = lm_message_new_with_sub_type (to, type, sub);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    67
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    68
	
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    69
	protected ElementSubType GetElementSubType () 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    70
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    71
	    return lm_message_get_sub_type (this._obj);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    72
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    73
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    74
	public ElementNode GetNode () 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    75
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    76
	    return new ElementNode(lm_message_get_node (this._obj));
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    77
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    78
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    79
	public IntPtr GetObject ()
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    80
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    81
	    return _obj;
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    82
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    83
	
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    84
	public override string ToString () 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    85
	{
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    86
	    return "<Element: " + this.Kind + ":" + this.GetElementSubType() + ">";
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    87
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    88
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    89
	public static Element CreateElement (IntPtr obj)
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
    90
	{
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    91
	    switch (lm_message_get_type(obj)) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    92
		case (int)Element.ElementType.MESSAGE:
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    93
		    return new Message(obj);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    94
		case (int)Element.ElementType.PRESENCE:
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    95
		    return new Presence(obj);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    96
		case (int)Element.ElementType.IQ:
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    97
		    return new IQ(obj);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    98
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
    99
	    return null;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   100
	}
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   101
 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   102
	[DllImport ("libloudmouth-1.so")]
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   103
	    private static extern int lm_message_get_type (IntPtr obj);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   104
	[DllImport ("libloudmouth-1.so")]
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   105
	    private static extern IntPtr lm_message_new (string to, ElementType type);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   106
	[DllImport ("libloudmouth-1.so")]
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   107
	    private static extern IntPtr lm_message_new_with_sub_type (string to, ElementType type, ElementSubType sub);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   108
	[DllImport ("libloudmouth-1.so")]
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   109
	    private static extern ElementSubType lm_message_get_sub_type (IntPtr obj);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   110
	[DllImport ("libloudmouth-1.so")]
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   111
	    private static extern IntPtr lm_message_get_node (IntPtr obj);
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   112
   }
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   113
  
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   114
    public class Message : Element {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   115
	public MessageType Type {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   116
	    get {
59
ef952e8c114d 2003-12-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 48
diff changeset
   117
		return (MessageType) this.GetElementSubType ();
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   118
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   119
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   120
	public string Body {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   121
	    get {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   122
		ElementNode node = this.GetNode().FindChild("body");
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   123
		if (node == null) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   124
		    return null;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   125
		}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   126
		return node.Value;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   127
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   128
	    set {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   129
		this.GetNode().AddChild("body", value);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   130
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   131
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   132
	
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   133
	public enum MessageType {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   134
	    NORMAL     = Element.ElementSubType.NOT_SET,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   135
	    CHAT       = Element.ElementSubType.CHAT,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   136
	    GROUPCHAT  = Element.ElementSubType.GROUPCHAT,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   137
	    HEADLINE   = Element.ElementSubType.HEADLINE
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   138
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   139
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   140
	public Message (IntPtr obj) : base (obj) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   141
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   142
	}
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   143
	
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   144
	public Message (string to) : base (to, Element.ElementType.MESSAGE, Element.ElementSubType.NOT_SET) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   145
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   146
	}
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   147
	
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   148
	public Message (string to, MessageType type) : base (to, Element.ElementType.MESSAGE, (Element.ElementSubType) type) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   149
	{
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   150
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   151
    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   152
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   153
    public class Presence : Element {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   154
	public enum PresenceType {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   155
	    AVAILABLE    = Element.ElementSubType.AVAILABLE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   156
	    UNAVAILABLE  = Element.ElementSubType.UNAVAILABLE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   157
	    PROBE        = Element.ElementSubType.PROBE, 
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   158
	    SUBSCRIBE    = Element.ElementSubType.SUBSCRIBE, 
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   159
	    UNSUBSCRIBE  = Element.ElementSubType.UNSUBSCRIBE,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   160
	    SUBSCRIBED   = Element.ElementSubType.SUBSCRIBED,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   161
	    UNSUBSCRIBED = Element.ElementSubType.UNSUBSCRIBED, 
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   162
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   163
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   164
	public Presence (IntPtr obj) : base (obj) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   165
	{
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   166
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   167
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   168
	public Presence () : base (null, Element.ElementType.PRESENCE, Element.ElementSubType.AVAILABLE) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   169
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   170
	}
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   171
		    
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   172
	public Presence (PresenceType type) : base (null, Element.ElementType.PRESENCE, (Element.ElementSubType) type) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   173
	{
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   174
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   175
	
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   176
	public Presence (string to) : base (to, Element.ElementType.PRESENCE) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   177
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   178
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   179
	
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   180
	public Presence (string to, PresenceType type) : base (to, Element.ElementType.PRESENCE, (Element.ElementSubType) type) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   181
	{
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   182
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   183
    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   184
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   185
    public class IQ : Element {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   186
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   187
	public string XMLNs {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   188
	    get {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   189
		ElementNode qNode = this.GetNode().FindChild("query");
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   190
		if (qNode != null) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   191
		    return qNode["xmlns"];
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   192
		}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   193
		return "";
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   194
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   195
	    set {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   196
		ElementNode qNode = this.GetNode().FindChild("query");
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   197
		if (qNode == null) {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   198
		    qNode = this.GetNode().AddChild("query", null);
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   199
		}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   200
		
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   201
		qNode["xmlns"] = value;
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   202
	    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   203
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   204
	
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   205
	public enum IQType {
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   206
	    GET    = Element.ElementSubType.GET,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   207
	    SET    = Element.ElementSubType.SET,
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   208
	    RESULT = Element.ElementSubType.RESULT
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   209
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   210
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   211
	public IQ (IntPtr obj) : base (obj) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   212
	{
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   213
	}
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   214
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   215
	public IQ () : base (null, Element.ElementType.IQ, Element.ElementSubType.GET) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   216
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   217
	}
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   218
	
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   219
	public IQ (string to) : base (to, Element.ElementType.IQ, Element.ElementSubType.GET) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   220
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   221
	}
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   222
	
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   223
	public IQ (string to, IQType type) : base (to, Element.ElementType.IQ, (Element.ElementSubType) type) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   224
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   225
	}
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   226
84
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   227
	public IQ (IQType type) : base (null, Element.ElementType.IQ, (Element.ElementSubType) type) 
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   228
	{
7ae7b690aa89 2004-05-28 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 59
diff changeset
   229
	}
48
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   230
    }
d913b0d5c7b6 2003-10-13 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
diff changeset
   231
}