-
Notifications
You must be signed in to change notification settings - Fork 1
/
dBus.mli
270 lines (249 loc) · 7.48 KB
/
dBus.mli
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
(*
* Copyright (C) 2006-2009 Vincent Hanquez <vincent@snarc.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; version 2.1 only. with the special
* exception on linking described in file LICENSE.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Dbus binding
*)
exception Error of string * string
type bus
type message
type pending_call
type watch
type timeout
type service = string
type interface = string
type path = string
type add_watch_fn = watch -> bool
type rm_watch_fn = watch -> unit
type toggle_watch_fn = watch -> unit
type add_timeout_fn = timeout -> bool
type rm_timeout_fn = timeout -> unit
type toggle_timeout_fn = timeout -> unit
type watch_fns = add_watch_fn * rm_watch_fn * (toggle_watch_fn option)
type timeout_fns = add_timeout_fn * rm_timeout_fn * (toggle_timeout_fn option)
type error_name =
| ERR_FAILED
| ERR_NO_MEMORY
| ERR_SERVICE_UNKNOWN
| ERR_NAME_HAS_NO_OWNER
| ERR_NO_REPLY
| ERR_IO_ERROR
| ERR_BAD_ADDRESS
| ERR_NOT_SUPPORTED
| ERR_LIMITS_EXCEEDED
| ERR_ACCESS_DENIED
| ERR_AUTH_FAILED
| ERR_NO_SERVER
| ERR_TIMEOUT
| ERR_NO_NETWORK
| ERR_ADDRESS_IN_USE
| ERR_DISCONNECTED
| ERR_INVALID_ARGS
| ERR_FILE_NOT_FOUND
| ERR_FILE_EXISTS
| ERR_UNKNOWN_METHOD
| ERR_TIMED_OUT
| ERR_MATCH_RULE_NOT_FOUND
| ERR_MATCH_RULE_INVALID
| ERR_SPAWN_EXEC_FAILED
| ERR_SPAWN_FORK_FAILED
| ERR_SPAWN_CHILD_EXITED
| ERR_SPAWN_CHILD_SIGNALED
| ERR_SPAWN_FAILED
| ERR_SPAWN_SETUP_FAILED
| ERR_SPAWN_CONFIG_INVALID
| ERR_SPAWN_SERVICE_INVALID
| ERR_SPAWN_SERVICE_NOT_FOUND
| ERR_SPAWN_PERMISSIONS_INVALID
| ERR_SPAWN_FILE_INVALID
| ERR_SPAWN_NO_MEMORY
| ERR_UNIX_PROCESS_ID_UNKNOWN
| ERR_INVALID_SIGNATURE
| ERR_INVALID_FILE_CONTENT
| ERR_SELINUX_SECURITY_CONTEXT_UNKNOWN
| ERR_ADT_AUDIT_DATA_UNKNOWN
| ERR_OBJECT_PATH_IN_USE
type ty_sig =
| SigByte
| SigBool
| SigInt16
| SigUInt16
| SigInt32
| SigUInt32
| SigInt64
| SigUInt64
| SigDouble
| SigString
| SigObjectPath
| SigVariant
| SigArray of ty_sig
| SigStruct of ty_sig list
| SigDict of ty_sig * ty_sig
type ty_array =
| Unknowns
| Bytes of char list
| Bools of bool list
| Int16s of int list
| UInt16s of int list
| Int32s of int32 list
| UInt32s of int32 list
| Int64s of int64 list
| UInt64s of int64 list
| Doubles of float list
| Strings of string list
| ObjectPaths of string list
| Structs of ty_sig list * (ty list list)
| Variants of ty list
| Dicts of (ty_sig * ty_sig) * ((ty * ty) list)
| Arrays of ty_sig * (ty_array list)
and ty =
| Unknown
| Byte of char
| Bool of bool
| Int16 of int
| UInt16 of int
| Int32 of int32
| UInt32 of int32
| Int64 of int64
| UInt64 of int64
| Double of float
| String of string
| ObjectPath of string
| Array of ty_array
| Struct of ty list
| Variant of ty
val string_of_ty : ty -> string
val string_of_error_name : error_name -> string
module Bus :
sig
type ty = Session | System | Starter
type flags = Replace_existing
type grab_flag = AllowReplacement | ReplaceExisting | DoNotQueue
type request_reply = PrimaryOwner | InQueue | Exists | AlreadyOwner | ReqUnknown of int
type release_reply = Released | NonExistent | NotOwner | RelUnknown of int
val get : ty -> bus
val get_private : ty -> bus
val register : bus -> unit
val set_unique_name : bus -> string -> bool
val get_unique_name : bus -> string
val request_name : bus -> string -> grab_flag list -> request_reply
val release_name : bus -> string -> release_reply
val has_owner : bus -> string -> bool
val add_match : bus -> string -> bool -> unit
val remove_match : bus -> string -> bool -> unit
end
module Message :
sig
type message_type =
| Invalid
| Method_call
| Method_return
| Error
| Signal
type message_header = {
serial: int32;
ty: message_type;
destination: service option;
path: path option;
interface: interface option;
member: string option;
error_name: error_name option;
sender: string option;
}
val string_of_message_ty : message_type -> string
val create : message_type -> message
val new_method_call : service -> path -> interface -> string -> message
val new_method_return : message -> message
val new_signal : path -> interface -> string -> message
val new_error : message -> error_name -> string -> message
val get_header : message -> message_header
val append : message -> ty list -> unit
val get : message -> ty list
val marshal : message -> string
val set_path : message -> path -> unit
val set_interface : message -> interface -> unit
val set_member : message -> string -> unit
val set_error_name : message -> error_name -> unit
val set_destination : message -> service -> unit
val set_sender : message -> string -> unit
val set_reply_serial : message -> int32 -> unit
val set_auto_start : message -> bool -> unit
val has_path : message -> path -> bool
val has_interface : message -> interface -> bool
val has_member : message -> string -> bool
val has_destination : message -> service -> bool
val has_sender : message -> string -> bool
val has_signature : message -> string -> bool
val get_type : message -> message_type
val get_path : message -> path option
val get_interface : message -> interface option
val get_member : message -> string option
val get_error_name : message -> error_name option
val get_destination : message -> service option
val get_sender : message -> string option
val get_signature : message -> string option
val get_serial : message -> int32
val get_reply_serial : message -> int32
val get_auto_start : message -> bool
val is_signal : message -> interface -> string -> bool
val is_method_call : message -> interface -> string -> bool
val is_error : message -> string -> bool
end
module Connection :
sig
type dispatch_status = Data_remains | Complete | Need_memory
val send : bus -> message -> int32
val send_with_reply : bus -> message -> int -> pending_call
val send_with_reply_and_block : bus -> message -> int -> message
val add_filter : bus -> (bus -> message -> bool) -> unit
val flush : bus -> unit
val read_write : bus -> int -> bool
val read_write_dispatch : bus -> int -> bool
val pop_message : bus -> message option
val get_dispatch_status : bus -> dispatch_status
val dispatch : bus -> dispatch_status
val get_fd : bus -> Unix.file_descr
val set_watch_functions : bus -> watch_fns -> unit
val set_timeout_functions : bus -> timeout_fns -> unit
val get_max_message_size : bus -> int
val set_max_message_size : bus -> int -> unit
val get_max_received_size : bus -> int
val set_max_received_size : bus -> int -> unit
val get_outgoing_size : bus -> int
val set_allow_anonymous : bus -> bool -> unit
end
module PendingCall :
sig
val block : pending_call -> unit
val cancel : pending_call -> unit
val get_completed : pending_call -> bool
val steal_reply : pending_call -> message
end
module Watch :
sig
type flags = Readable | Writable
val get_unix_fd : watch -> Unix.file_descr
val get_enabled : watch -> bool
val get_flags : watch -> flags list
val handle : watch -> flags list -> unit
end
module Timeout :
sig
val get_interval : timeout -> int
val get_enabled : timeout -> bool
val handle : timeout -> unit
end
module Helper :
sig
val new_message_request_name : string -> Bus.grab_flag list -> message
val new_message_release_name : string -> message
end