diff options
| author | Matthias Radestock <matthias@lshift.net> | 2008-11-18 21:19:35 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2008-11-18 21:19:35 +0000 |
| commit | 6ac77a9ec2f53357d84386c2266927c5e3b4174a (patch) | |
| tree | 8ed1be8f76234a4a8aa0524a2b3fd233cb27012c | |
| parent | 6a613d1278ddb85272c2ba647ed822c1cad10af9 (diff) | |
| download | rabbitmq-server-git-6ac77a9ec2f53357d84386c2266927c5e3b4174a.tar.gz | |
add rabbit_exchange:list_bindings/0
| -rw-r--r-- | src/rabbit_exchange.erl | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index cc73f80c9f..273cf3d380 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -33,7 +33,7 @@ info/1, info/2, info_all/0, info_all/1, simple_publish/6, simple_publish/3, route/2]). --export([add_binding/4, delete_binding/4]). +-export([add_binding/4, delete_binding/4, list_bindings/0]). -export([delete/2]). -export([delete_bindings_for_queue/1]). -export([check_type/1, assert_type/2, topic_matches/2]). @@ -80,6 +80,8 @@ -spec(delete_binding/4 :: (exchange_name(), queue_name(), routing_key(), amqp_table()) -> bind_res() | {'error', 'binding_not_found'}). +-spec(list_bindings/0 :: () -> + [{exchange_name(), queue_name(), routing_key(), amqp_table()}]). -spec(delete_bindings_for_queue/1 :: (queue_name()) -> 'ok'). -spec(topic_matches/2 :: (binary(), binary()) -> bool()). -spec(delete/2 :: (exchange_name(), bool()) -> @@ -360,6 +362,15 @@ sync_binding(ExchangeName, QueueName, RoutingKey, Arguments, Durable, Fun) -> R <- tuple_to_list(route_with_reverse(Binding))], ok. +list_bindings() -> + [{ExchangeName, QueueName, RoutingKey, Arguments} || + #route{binding = #binding{ + exchange_name = ExchangeName, + key = RoutingKey, + queue_name = QueueName, + args = Arguments}} + <- rabbit_misc:dirty_read_all(route)]. + route_with_reverse(#route{binding = Binding}) -> route_with_reverse(Binding); route_with_reverse(Binding = #binding{}) -> |
