diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_binding.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_exchange_type.erl | 6 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_direct.erl | 5 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_fanout.erl | 5 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_headers.erl | 5 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_topic.erl | 5 |
6 files changed, 12 insertions, 16 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl index d2767d158d..d363e3427a 100644 --- a/src/rabbit_binding.erl +++ b/src/rabbit_binding.erl @@ -449,7 +449,7 @@ pd_callback(Arg, CB, X, Bindings) -> ok = rabbit_exchange:callback(X, CB, [Arg, X, Bindings]). serial(X) -> - case rabbit_exchange:callback(X, serialise_events, []) of + case rabbit_exchange:callback(X, serialise_events, [X]) of true -> next_serial(X); false -> none end. diff --git a/src/rabbit_exchange_type.erl b/src/rabbit_exchange_type.erl index b34d1aec5b..670551de08 100644 --- a/src/rabbit_exchange_type.erl +++ b/src/rabbit_exchange_type.erl @@ -22,10 +22,10 @@ behaviour_info(callbacks) -> [ {description, 0}, - %% Should Rabbit ensure that all events delivered to this - %% exchange can be serialised (they might still be delivered out + %% Should Rabbit ensure that all events delivered to an individual exchange + %% this can be serialised? (they might still be delivered out %% of order, but there'll be a serial number). - {serialise_events, 0}, + {serialise_events, 1}, {route, 2}, diff --git a/src/rabbit_exchange_type_direct.erl b/src/rabbit_exchange_type_direct.erl index d1ea62f38e..bc7a76e30b 100644 --- a/src/rabbit_exchange_type_direct.erl +++ b/src/rabbit_exchange_type_direct.erl @@ -19,7 +19,7 @@ -behaviour(rabbit_exchange_type). --export([description/0, route/2, serialise_events/0]). +-export([description/0, route/2, serialise_events/1]). -export([validate/1, create/2, recover/2, delete/3, add_binding/3, remove_bindings/3, assert_args_equivalence/2]). -include("rabbit_exchange_type_spec.hrl"). @@ -35,12 +35,11 @@ description() -> [{name, <<"direct">>}, {description, <<"AMQP direct exchange, as per the AMQP specification">>}]. -serialise_events() -> false. - route(#exchange{name = Name}, #delivery{message = #basic_message{routing_keys = Routes}}) -> rabbit_router:match_routing_key(Name, Routes). +serialise_events(_X) -> false. validate(_X) -> ok. create(_Tx, _X) -> ok. recover(_X, _Bs) -> ok. diff --git a/src/rabbit_exchange_type_fanout.erl b/src/rabbit_exchange_type_fanout.erl index 9b6e68d826..2e70fb24f2 100644 --- a/src/rabbit_exchange_type_fanout.erl +++ b/src/rabbit_exchange_type_fanout.erl @@ -19,7 +19,7 @@ -behaviour(rabbit_exchange_type). --export([description/0, route/2, serialise_events/0]). +-export([description/0, route/2, serialise_events/1]). -export([validate/1, create/2, recover/2, delete/3, add_binding/3, remove_bindings/3, assert_args_equivalence/2]). -include("rabbit_exchange_type_spec.hrl"). @@ -35,11 +35,10 @@ description() -> [{name, <<"fanout">>}, {description, <<"AMQP fanout exchange, as per the AMQP specification">>}]. -serialise_events() -> false. - route(#exchange{name = Name}, _Delivery) -> rabbit_router:match_routing_key(Name, ['_']). +serialise_events(_X) -> false. validate(_X) -> ok. create(_Tx, _X) -> ok. recover(_X, _Bs) -> ok. diff --git a/src/rabbit_exchange_type_headers.erl b/src/rabbit_exchange_type_headers.erl index 1480afc847..1e8b0687a0 100644 --- a/src/rabbit_exchange_type_headers.erl +++ b/src/rabbit_exchange_type_headers.erl @@ -20,7 +20,7 @@ -behaviour(rabbit_exchange_type). --export([description/0, route/2, serialise_events/0]). +-export([description/0, route/2, serialise_events/1]). -export([validate/1, create/2, recover/2, delete/3, add_binding/3, remove_bindings/3, assert_args_equivalence/2]). -include("rabbit_exchange_type_spec.hrl"). @@ -41,8 +41,6 @@ description() -> [{name, <<"headers">>}, {description, <<"AMQP headers exchange, as per the AMQP specification">>}]. -serialise_events() -> false. - route(#exchange{name = Name}, #delivery{message = #basic_message{content = Content}}) -> Headers = case (Content#content.properties)#'P_basic'.headers of @@ -114,6 +112,7 @@ headers_match([{PK, PT, PV} | PRest], [{DK, DT, DV} | DRest], end, headers_match(PRest, DRest, AllMatch1, AnyMatch1, MatchKind). +serialise_events(_X) -> false. validate(_X) -> ok. create(_Tx, _X) -> ok. recover(_X, _Bs) -> ok. diff --git a/src/rabbit_exchange_type_topic.erl b/src/rabbit_exchange_type_topic.erl index 9a9cbc47ad..2f77b8385c 100644 --- a/src/rabbit_exchange_type_topic.erl +++ b/src/rabbit_exchange_type_topic.erl @@ -20,7 +20,7 @@ -behaviour(rabbit_exchange_type). --export([description/0, route/2, serialise_events/0]). +-export([description/0, route/2, serialise_events/1]). -export([validate/1, create/2, recover/2, delete/3, add_binding/3, remove_bindings/3, assert_args_equivalence/2]). -include("rabbit_exchange_type_spec.hrl"). @@ -38,8 +38,6 @@ description() -> [{name, <<"topic">>}, {description, <<"AMQP topic exchange, as per the AMQP specification">>}]. -serialise_events() -> false. - %% NB: This may return duplicate results in some situations (that's ok) route(#exchange{name = X}, #delivery{message = #basic_message{routing_keys = Routes}}) -> @@ -48,6 +46,7 @@ route(#exchange{name = X}, mnesia:async_dirty(fun trie_match/2, [X, Words]) end || RKey <- Routes]). +serialise_events(_X) -> false. validate(_X) -> ok. create(_Tx, _X) -> ok. |
