summaryrefslogtreecommitdiff
path: root/src/lib/eldbus/eldbus_types.eot
blob: ebd3130a43237a28312332d8f8354e974cbc8e81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
struct Eldbus.Proxy; [[Represents a client object bound to an interface]]
struct Eldbus.Connection; [[Represents a connection of one the type of connection with the DBus daemon.]]
struct Eldbus.Object; [[Represents an object path already attached with bus name or unique id]]

enum @extern Eldbus.Connection.Type
{
    [[Eldbus connection type]]
    unknown = 0, [[Sentinel, not a real type]]
    session, [[Regular user session bus, used for applications and services running per user]]
    system, [[System-wide connection bus, used for system services]]
    starter, [[Uses whatever bus started our application, be session or system]]
    address, [[A private bus at a specific address]]
    last, [[Sentinel, not a real type]]
}

enum Eldbus.Introspection.Argument_Direction
{
   [[Argument direction]]
   none = 0, [[No direction]]
   in, [[Incoming direction]]
   out, [[Outgoing direction]]
}

/* DTD conversion form: http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd */

enum Eldbus.Introspection.Property_Access
{
   [[Property access rights]]
   read, [[Property can be read]]
   write, [[Property can be written]]
   readwrite, [[Property can be read and written]]
}

/* FIXME: Properly type all of these lists. */
struct Eldbus.Introspection.Node
{
   [[DBus Node]]
   name: stringshare; [[Node name (optional)]]
   nodes: list<void_ptr>; [[List with nodes]]
   interfaces: list<void_ptr>; [[List with interfaces]]
}

struct Eldbus.Introspection.Interface
{
   [[DBus Interface]]
   name: stringshare; [[Interface name]]
   methods: list<void_ptr>; [[List with interface methods]]
   signals: list<void_ptr>; [[List with interface signals]]
   properties: list<void_ptr>; [[List with interface properties]]
   annotations: list<void_ptr>; [[List with interface annotations]]
}

struct Eldbus.Introspection.Method
{
   [[DBus Method]]
   name: stringshare; [[Method name]]
   arguments: list<void_ptr>; [[List with method arguments]]
   annotations: list<void_ptr>; [[List with method annotations]]
}

struct Eldbus.Introspection.Property
{
   [[DBus Property]]
   name: stringshare; [[Property name]]
   type: stringshare; [[Property type]]
   access: Eldbus.Introspection.Property_Access; [[Property access rights]]
   annotations: list<void_ptr>; [[List with property annotations]]
}

struct Eldbus.Introspection.Annotation
{
   [[DBus Annotation]]
   name: stringshare; [[Annotation name]]
   value: stringshare; [[Annotation value]]
}

struct Eldbus.Introspection.Argument
{
   [[DBus Argument]]
    name: stringshare; [[Argument name (optional)]]
    type: stringshare; [[Argument type]]
    direction: Eldbus.Introspection.Argument_Direction; [[Argument direction]]
}

struct Eldbus.Introspection.Signal
{
   [[DBus Signal]]
    name: stringshare; [[Signal name]]
    arguments: list<ptr(Eldbus.Introspection.Argument)>; [[List with signal arguments]]
    annotations: list<ptr(Eldbus.Introspection.Annotation)>; [[List with signal annotations]]
}