summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hood <0x6e6562@gmail.com>2008-10-13 22:51:23 +0100
committerBen Hood <0x6e6562@gmail.com>2008-10-13 22:51:23 +0100
commit15fe46007c2df9f2bceade06d9b8b5cb2e27bfc1 (patch)
treec4fb07c266e56c8442c417239b7f17f886dab5bc
parentf4b5182063a1583af7d5f26af72e745d821ee3e2 (diff)
downloadrabbitmq-server-15fe46007c2df9f2bceade06d9b8b5cb2e27bfc1.tar.gz
Added function for Rabbiter
-rw-r--r--src/rabbit_exchange.erl15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index fc26915f..a8c54438 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -39,6 +39,7 @@
%% EXTENDED API
-export([list_exchange_bindings/1]).
+-export([list_queue_bindings/1]).
-import(mnesia).
-import(sets).
@@ -77,6 +78,10 @@
-spec(topic_matches/2 :: (binary(), binary()) -> bool()).
-spec(delete/2 :: (exchange_name(), bool()) ->
'ok' | not_found() | {'error', 'in_use'}).
+-spec(list_queue_bindings/1 :: (queue_name()) ->
+ [{exchange_name(), routing_key(), amqp_table()}]).
+-spec(list_exchange_bindings/1 :: (exchange_name()) ->
+ [{queue_name(), routing_key(), amqp_table()}]).
-endif.
@@ -417,3 +422,13 @@ list_exchange_bindings(ExchangeName) ->
key = RoutingKey,
args = Arguments}}
<- mnesia:dirty_match_object(Route)].
+
+% Refactoring is left as an exercise for the reader
+list_queue_bindings(QueueName) ->
+ Route = #route{binding = #binding{queue_name = QueueName,
+ _ = '_'}},
+ [{ExchangeName, RoutingKey, Arguments} ||
+ #route{binding = #binding{exchange_name = ExchangeName,
+ key = RoutingKey,
+ args = Arguments}}
+ <- mnesia:dirty_match_object(Route)].