Added wilcards to every argument field in binding record
This commit is contained in:
		
							parent
							
								
									de5b4fe2d4
								
							
						
					
					
						commit
						b35534595c
					
				|  | @ -208,7 +208,8 @@ route(X = #exchange{type = direct}, RoutingKey) -> | |||
| route_internal(#exchange{name = Name}, RoutingKey) -> | ||||
|     MatchHead = #route{binding = #binding{exchange_name = Name, | ||||
|                                           queue_name = '$1', | ||||
|                                           key = RoutingKey}}, | ||||
|                                           key = RoutingKey, | ||||
|                                           args = '_'}}, | ||||
|     lookup_qpids(mnesia:dirty_select(route, [{MatchHead, [], ['$1']}])). | ||||
| 
 | ||||
| lookup_qpids(Queues) -> | ||||
|  | @ -226,7 +227,8 @@ delete_bindings_for_exchange(ExchangeName) -> | |||
|     indexed_delete( | ||||
|       #route{binding = #binding{exchange_name = ExchangeName, | ||||
|                                 queue_name = '_', | ||||
|                                 key = '_'}},  | ||||
|                                 key = '_', | ||||
|                                 args = '_'}},  | ||||
|       fun delete_forward_routes/1, fun mnesia:delete_object/1). | ||||
| 
 | ||||
| delete_bindings_for_queue(QueueName) -> | ||||
|  | @ -234,7 +236,8 @@ delete_bindings_for_queue(QueueName) -> | |||
|     indexed_delete( | ||||
|       reverse_route(#route{binding = #binding{exchange_name = '_', | ||||
|                                               queue_name = QueueName,  | ||||
|                                               key = '_'}}), | ||||
|                                               key = '_', | ||||
|                                               args = '_'}}), | ||||
|       fun mnesia:delete_object/1, fun delete_forward_routes/1), | ||||
|     [begin | ||||
|          [X] = mnesia:read({exchange, ExchangeName}), | ||||
|  | @ -257,7 +260,8 @@ exchanges_for_queue(QueueName) -> | |||
|     MatchHead = reverse_route( | ||||
|                   #route{binding = #binding{exchange_name = '$1', | ||||
|                                             queue_name = QueueName, | ||||
|                                             key = '_'}}), | ||||
|                                             key = '_', | ||||
|                                             args = '_'}}), | ||||
|     sets:to_list( | ||||
|       sets:from_list( | ||||
|         mnesia:select(reverse_route, [{MatchHead, [], ['$1']}]))). | ||||
|  | @ -265,7 +269,8 @@ exchanges_for_queue(QueueName) -> | |||
| has_bindings(ExchangeName) -> | ||||
|     MatchHead = #route{binding = #binding{exchange_name = ExchangeName, | ||||
|                                           queue_name = '$1', | ||||
|                                           key = '_'}}, | ||||
|                                           key = '_', | ||||
|                                           args = '_'}}, | ||||
|     continue(mnesia:select(route, [{MatchHead, [], ['$1']}], 1, read)). | ||||
| 
 | ||||
| continue('$end_of_table')    -> false; | ||||
|  | @ -338,17 +343,21 @@ reverse_route(#reverse_route{reverse_binding = Binding}) -> | |||
| 
 | ||||
| reverse_binding(#reverse_binding{exchange_name = Exchange, | ||||
|                                  queue_name = Queue, | ||||
|                                  key = Key}) -> | ||||
|                                  key = Key, | ||||
|                                  args = Args}) -> | ||||
|     #binding{exchange_name = Exchange, | ||||
|              queue_name = Queue, | ||||
|              key = Key}; | ||||
|              key = Key, | ||||
|              args = Args}; | ||||
| 
 | ||||
| reverse_binding(#binding{exchange_name = Exchange, | ||||
|                          queue_name = Queue, | ||||
|                          key = Key}) -> | ||||
|                          key = Key, | ||||
|                          args = Args}) -> | ||||
|     #reverse_binding{exchange_name = Exchange, | ||||
|                      queue_name = Queue, | ||||
|                      key = Key}. | ||||
|                      key = Key, | ||||
|                      args = Args}. | ||||
| 
 | ||||
| split_topic_key(Key) -> | ||||
|     {ok, KeySplit} = regexp:split(binary_to_list(Key), "\\."), | ||||
|  | @ -409,9 +418,10 @@ unconditional_delete(#exchange{name = ExchangeName}) -> | |||
| list_exchange_bindings(ExchangeName) -> | ||||
|     Route = #route{binding = #binding{exchange_name = ExchangeName, | ||||
|                                       queue_name = '_', | ||||
|                                       key = '_'}}, | ||||
|     [{QueueName, RoutingKey, Args} || | ||||
|                                       key = '_', | ||||
|                                       args = '_'}}, | ||||
|     [{QueueName, RoutingKey, Arguments} || | ||||
|         #route{binding = #binding{queue_name = QueueName, | ||||
|                                   key = RoutingKey, | ||||
|                                   args = Args}}  | ||||
|                                   args = Arguments}}  | ||||
|             <- mnesia:dirty_match_object(Route)]. | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue