Plasma GitLab Archive
Projects Blog Knowledge

(* $Id$ *)

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 (m, _) ->
	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 (m, _) ->
	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 (m, _) ->
	eps_e (`Done()) esys
     )


let delete_s ~channel ~exchange_name ?if_unused ?no_wait () =
  sync(delete_e ~channel ~exchange_name ?if_unused ?no_wait) ()

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml