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:
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 |
} |