diff options
| author | Tony Garnock-Jones <tonyg@kcbbs.gen.nz> | 2009-12-02 06:47:57 +0000 |
|---|---|---|
| committer | Tony Garnock-Jones <tonyg@kcbbs.gen.nz> | 2009-12-02 06:47:57 +0000 |
| commit | d1ed3feb06fbf9bf117c5978f158b8e181c68cdd (patch) | |
| tree | 58dd4e128d4e1e83fdbf078926421f51c2f8dd94 /src | |
| parent | 8643064c82a17e36c38fb09098868c76ffc86add (diff) | |
| download | rabbitmq-server-git-d1ed3feb06fbf9bf117c5978f158b8e181c68cdd.tar.gz | |
Add declare/1 callback.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_exchange.erl | 1 | ||||
| -rw-r--r-- | src/rabbit_exchange_behaviour.erl | 7 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_direct.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_fanout.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_headers.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_topic.erl | 3 |
6 files changed, 13 insertions, 7 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index e796b16f7d..2c98deee2e 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -113,6 +113,7 @@ declare(ExchangeName, Type, Durable, AutoDelete, Args) -> durable = Durable, auto_delete = AutoDelete, arguments = Args}, + ok = Type:declare(Exchange), rabbit_misc:execute_mnesia_transaction( fun () -> case mnesia:wread({rabbit_exchange, ExchangeName}) of diff --git a/src/rabbit_exchange_behaviour.erl b/src/rabbit_exchange_behaviour.erl index d518891e29..4b275c0059 100644 --- a/src/rabbit_exchange_behaviour.erl +++ b/src/rabbit_exchange_behaviour.erl @@ -38,10 +38,11 @@ behaviour_info(callbacks) -> {description, 0}, {publish, 2}, + {declare, 1}, %% called BEFORE declaration, to check args etc; may exit with #amqp_error{} {init, 1}, %% called after declaration when previously absent, or during recovery - {delete, 1}, %% called after deletion - {add_binding, 2}, %% called after a new binding has appeared - {delete_binding, 2} %% called after a binding has been removed + {delete, 1}, %% called after exchange deletion + {add_binding, 2}, %% called after a binding has been added + {delete_binding, 2} %% called after a binding has been deleted ]; behaviour_info(_Other) -> undefined. diff --git a/src/rabbit_exchange_type_direct.erl b/src/rabbit_exchange_type_direct.erl index da19d2c294..dff06b2538 100644 --- a/src/rabbit_exchange_type_direct.erl +++ b/src/rabbit_exchange_type_direct.erl @@ -35,7 +35,7 @@ -behaviour(rabbit_exchange_behaviour). -export([description/0, publish/2]). --export([init/1, delete/1, add_binding/2, delete_binding/2]). +-export([declare/1, init/1, delete/1, add_binding/2, delete_binding/2]). -include("rabbit_exchange_behaviour_spec.hrl"). description() -> @@ -46,6 +46,7 @@ publish(#exchange{name = Name}, Delivery = #delivery{message = #basic_message{routing_key = RoutingKey}}) -> rabbit_router:deliver(rabbit_router:match_routing_key(Name, RoutingKey), Delivery). +declare(_X) -> ok. init(_X) -> ok. delete(_X) -> ok. add_binding(_X, _B) -> ok. diff --git a/src/rabbit_exchange_type_fanout.erl b/src/rabbit_exchange_type_fanout.erl index df3e31afaf..b4654b0c8a 100644 --- a/src/rabbit_exchange_type_fanout.erl +++ b/src/rabbit_exchange_type_fanout.erl @@ -35,7 +35,7 @@ -behaviour(rabbit_exchange_behaviour). -export([description/0, publish/2]). --export([init/1, delete/1, add_binding/2, delete_binding/2]). +-export([declare/1, init/1, delete/1, add_binding/2, delete_binding/2]). -include("rabbit_exchange_behaviour_spec.hrl"). description() -> @@ -45,6 +45,7 @@ description() -> publish(#exchange{name = Name}, Delivery) -> rabbit_router:deliver(rabbit_router:match_routing_key(Name, '_'), Delivery). +declare(_X) -> ok. init(_X) -> ok. delete(_X) -> ok. add_binding(_X, _B) -> ok. diff --git a/src/rabbit_exchange_type_headers.erl b/src/rabbit_exchange_type_headers.erl index dbd6c988e3..f28bfdc758 100644 --- a/src/rabbit_exchange_type_headers.erl +++ b/src/rabbit_exchange_type_headers.erl @@ -36,7 +36,7 @@ -behaviour(rabbit_exchange_behaviour). -export([description/0, publish/2]). --export([init/1, delete/1, add_binding/2, delete_binding/2]). +-export([declare/1, init/1, delete/1, add_binding/2, delete_binding/2]). -include("rabbit_exchange_behaviour_spec.hrl"). -ifdef(use_specs). @@ -120,6 +120,7 @@ headers_match([{PK, PT, PV} | PRest], [{DK, DT, DV} | DRest], end, headers_match(PRest, DRest, AllMatch1, AnyMatch1, MatchKind). +declare(_X) -> ok. init(_X) -> ok. delete(_X) -> ok. add_binding(_X, _B) -> ok. diff --git a/src/rabbit_exchange_type_topic.erl b/src/rabbit_exchange_type_topic.erl index 902575733d..ecb6580767 100644 --- a/src/rabbit_exchange_type_topic.erl +++ b/src/rabbit_exchange_type_topic.erl @@ -35,7 +35,7 @@ -behaviour(rabbit_exchange_behaviour). -export([description/0, publish/2]). --export([init/1, delete/1, add_binding/2, delete_binding/2]). +-export([declare/1, init/1, delete/1, add_binding/2, delete_binding/2]). -include("rabbit_exchange_behaviour_spec.hrl"). -export([topic_matches/2]). @@ -83,6 +83,7 @@ last_topic_match(P, R, []) -> last_topic_match(P, R, [BacktrackNext | BacktrackList]) -> topic_matches1(P, R) or last_topic_match(P, [BacktrackNext | R], BacktrackList). +declare(_X) -> ok. init(_X) -> ok. delete(_X) -> ok. add_binding(_X, _B) -> ok. |
