1
// Copyright 2006 Alp Toker <alp@atoker.com>
2
// This software is made available under the MIT License
3
// See COPYING for details
6
using System.Xml.Serialization;
7
using System.Collections.Generic;
9
namespace NDesk.DBus.Introspection
11
[XmlRootAttribute(IsNullable=true)]
13
[XmlAttributeAttribute("name")]
17
[XmlRootAttribute("node", IsNullable=true)]
20
[XmlAttributeAttribute("name")]
23
[XmlElementAttribute("interface", Type=typeof(@Interface))]
24
public Interface[] Interfaces;
25
[XmlElementAttribute("node", Type=typeof(Node))]
29
[XmlRootAttribute("interface", IsNullable=true)]
30
public class @Interface {
32
[XmlAttributeAttribute("name")]
36
[XmlElementAttribute("method", Type=typeof(Method))]
37
[XmlElementAttribute("signal", Type=typeof(Signal))]
38
[XmlElementAttribute("property", Type=typeof(Property))]
39
//[XmlElementAttribute("annotation", Type=typeof(Annotation))]
40
//public Member[] Members;
43
[XmlElementAttribute("method", Type=typeof(Method))]
44
public Method[] Methods;
46
[XmlElementAttribute("signal", Type=typeof(Signal))]
47
public Signal[] Signals;
49
[XmlElementAttribute("property", Type=typeof(Property))]
50
public Property[] Properties;
53
[XmlRootAttribute(IsNullable=true)]
54
public class Method : Member {
57
[XmlElementAttribute("arg", Type=typeof(Argument))]
58
[XmlElementAttribute("annotation", Type=typeof(Annotation))]
59
public object[] Items;
62
//[System.ComponentModel.DefaultValue(new Argument[0])]
63
[XmlElementAttribute("arg", Type=typeof(Argument))]
64
//public List<Argument> Arguments;
65
public Argument[] Arguments;
68
[XmlRootAttribute(IsNullable=true)]
69
public class Argument {
71
[XmlAttributeAttribute("name")]
72
public string Name = String.Empty;
74
[XmlAttributeAttribute("type")]
77
[System.ComponentModel.DefaultValue(ArgDirection.@in)]
78
[XmlAttributeAttribute("direction")]
79
public ArgDirection Direction = ArgDirection.@in;
82
public enum ArgDirection {
87
[XmlRootAttribute(IsNullable=true)]
88
public class Annotation {
90
[XmlAttributeAttribute("name")]
91
public string Name = String.Empty;
93
[XmlAttributeAttribute("value")]
94
public string Value = String.Empty;
97
[XmlRootAttribute("signal", IsNullable=true)]
98
public class Signal : Method {
101
[XmlRootAttribute(IsNullable=true)]
102
public class Property : Member {
103
[XmlAttributeAttribute("type")]
104
public string Type = String.Empty;
106
[XmlAttributeAttribute("access")]
107
public propertyAccess Access;
109
[XmlElementAttribute("annotation")]
110
public Annotation[] Annotations;
113
public enum propertyAccess {