-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnetamqp_exchange.ml
74 lines (61 loc) · 2.07 KB
/
netamqp_exchange.ml
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
open Netamqp_types
open Netamqp_rtypes
open Netamqp_endpoint
open Uq_engines.Operators
type exchange_name = string
type exchange_type = string
let amq_direct = "amq.direct"
let amq_fanout = "amq.fanout"
let amq_topic = "amq.topic"
let amq_match = "amq.match"
let direct = "direct"
let fanout = "fanout"
let topic = "topic"
let headers = "headers"
let system = "system"
let declare_passively_e ~channel ~exchange_name ?(no_wait=false) () =
let esys = Netamqp_channel.event_system channel in
Netamqp_channel.sync_c2s_e
?no_wait:(if no_wait then Some (`AMQP_0_9 `Exchange_declare_ok) else None)
channel
(`AMQP_0_9
(`Exchange_declare
(0, exchange_name, "", true, false, false, false, no_wait, [])))
None
++ (fun (_, _) ->
eps_e (`Done()) esys
)
let declare_passively_s ~channel ~exchange_name ?no_wait () =
sync (declare_passively_e ~channel ~exchange_name ?no_wait) ()
let declare_e ~channel ~exchange_name ~exchange_type ?(durable=false)
?(no_wait=false) ?(arguments=[]) () =
let esys = Netamqp_channel.event_system channel in
Netamqp_channel.sync_c2s_e
?no_wait:(if no_wait then Some (`AMQP_0_9 `Exchange_declare_ok) else None)
channel
(`AMQP_0_9
(`Exchange_declare
(0, exchange_name, exchange_type, false, durable, false, false,
no_wait, arguments)))
None
++ (fun (_, _) ->
eps_e (`Done()) esys
)
let declare_s ~channel ~exchange_name ~exchange_type ?durable ?no_wait
?arguments () =
sync(declare_e ~channel ~exchange_name ~exchange_type ?durable ?no_wait
?arguments) ()
let delete_e ~channel ~exchange_name ?(if_unused=false) ?(no_wait=false) () =
let esys = Netamqp_channel.event_system channel in
Netamqp_channel.sync_c2s_e
?no_wait:(if no_wait then Some (`AMQP_0_9 `Exchange_delete_ok) else None)
channel
(`AMQP_0_9
(`Exchange_delete
(0, exchange_name, if_unused, no_wait)))
None
++ (fun (_, _) ->
eps_e (`Done()) esys
)
let delete_s ~channel ~exchange_name ?if_unused ?no_wait () =
sync(delete_e ~channel ~exchange_name ?if_unused ?no_wait) ()