summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2010-09-04 07:30:33 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2010-09-04 07:30:33 +0100
commitc583ea0b0ce195bb73791bd7fccbdf6506926939 (patch)
treed8eda73f93e6654278476a97856343412221bcb3
parent83d8e5b2545959be3bd29b21d95340616dbe85e4 (diff)
downloadrabbitmq-server-c583ea0b0ce195bb73791bd7fccbdf6506926939.tar.gz
add a couple of convenience functions
so that callers can add/remove bindings without supplying a closure, which can be tricky across an rpc call.
-rw-r--r--src/rabbit_amqqueue.erl4
-rw-r--r--src/rabbit_binding.erl9
2 files changed, 9 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 5c5b143d..7116653c 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -254,9 +254,7 @@ add_default_binding(#amqqueue{name = QueueName}) ->
rabbit_binding:add(#binding{exchange_name = ExchangeName,
queue_name = QueueName,
key = RoutingKey,
- args = []},
- fun (_X, _Q) -> ok end),
- ok.
+ args = []}).
lookup(Name) ->
rabbit_misc:dirty_read({rabbit_queue, Name}).
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index a815f544..6caf7302 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -32,7 +32,7 @@
-module(rabbit_binding).
-include("rabbit.hrl").
--export([recover/0, add/2, remove/2, list/1]).
+-export([recover/0, add/1, remove/1, add/2, remove/2, list/1]).
-export([list_for_exchange/1, list_for_queue/1, list_for_exchange_and_queue/2]).
-export([info_keys/0, info/1, info/2, info_all/1, info_all/2]).
%% these must all be run inside a mnesia tx
@@ -56,6 +56,9 @@
-type(bindings() :: [rabbit_types:binding()]).
-spec(recover/0 :: () -> [rabbit_types:binding()]).
+-spec(add/1 :: (rabbit_types:binding()) -> bind_res()).
+-spec(remove/1 :: (rabbit_types:binding()) ->
+ bind_res() | rabbit_types:error('binding_not_found')).
-spec(add/2 :: (rabbit_types:binding(), inner_fun()) -> bind_res()).
-spec(remove/2 :: (rabbit_types:binding(), inner_fun()) ->
bind_res() | rabbit_types:error('binding_not_found')).
@@ -93,6 +96,10 @@ recover() ->
[B | Acc]
end, [], rabbit_durable_route).
+add(Binding) -> add(Binding, fun (_X, _Q) -> ok end).
+
+remove(Binding) -> remove(Binding, fun (_X, _Q) -> ok end).
+
add(Binding, InnerFun) ->
case binding_action(
Binding,