author | hallski <hallski> |
Sun, 10 Sep 2006 22:09:45 +0000 | |
changeset 175 | 5e665ffe3e9c |
parent 84 | 7ae7b690aa89 |
permissions | -rw-r--r-- |
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 |
} |