diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-03-28 13:35:24 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-03-28 13:35:24 +0100 |
| commit | 3d3e85021bed87a9ecaf5c480d9309f88a44ff1d (patch) | |
| tree | 0da5a0b0fd6380acafbc6a2bf064f45e52a300ce /src | |
| parent | c9fa97452653795ba47467575d9de2a12cdecc98 (diff) | |
| download | rabbitmq-server-git-3d3e85021bed87a9ecaf5c480d9309f88a44ff1d.tar.gz | |
Make serialise_events into /0, don't call it via callback/3.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_binding.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_exchange.erl | 13 | ||||
| -rw-r--r-- | src/rabbit_exchange_type.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_direct.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_fanout.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_headers.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_topic.erl | 4 |
7 files changed, 17 insertions, 16 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl index cc7aea33bb..1c0433705d 100644 --- a/src/rabbit_binding.erl +++ b/src/rabbit_binding.erl @@ -453,7 +453,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, [X]) of + case rabbit_exchange:serialise_events([X]) of true -> next_serial(X); false -> none end. diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index 504cf93517..5694336a81 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -20,7 +20,7 @@ -export([recover/0, declare/6, lookup/1, lookup_or_die/1, list/1, info_keys/0, info/1, info/2, info_all/1, info_all/2, publish/2, delete/2]). --export([callback/3]). +-export([callback/3, serialise_events/1]). %% this must be run inside a mnesia tx -export([maybe_auto_delete/1]). -export([assert_equivalence/6, assert_args_equivalence/2, check_type/1]). @@ -72,9 +72,8 @@ -spec(maybe_auto_delete/1:: (rabbit_types:exchange()) -> 'not_deleted' | {'deleted', rabbit_binding:deletions()}). --spec(callback/3:: (rabbit_types:exchange(), atom(), [any()]) -> - boolean() | 'ok'). - +-spec(callback/3:: (rabbit_types:exchange(), atom(), [any()]) -> 'ok'). +-spec(serialise_events/1:: (rabbit_types:exchange()) -> boolean()). -endif. %%---------------------------------------------------------------------------- @@ -129,8 +128,7 @@ declare(XName, Type, Durable, AutoDelete, Internal, Args) -> fun ({new, Exchange}, Tx) -> S = case Tx of true -> transaction; - false -> case callback(Exchange, serialise_events, - [Exchange]) of + false -> case serialise_events(Exchange) of true -> 0; false -> none end @@ -307,6 +305,9 @@ maybe_auto_delete(#exchange{auto_delete = true} = X) -> callback(#exchange{type = XType}, Fun, Args) -> apply(type_to_module(XType), Fun, Args). +serialise_events(#exchange{type = XType}) -> + apply(type_to_module(XType), serialise_events, []). + conditional_delete(X = #exchange{name = XName}) -> case rabbit_binding:has_for_source(XName) of false -> unconditional_delete(X); diff --git a/src/rabbit_exchange_type.erl b/src/rabbit_exchange_type.erl index 670551de08..468ee0b4cf 100644 --- a/src/rabbit_exchange_type.erl +++ b/src/rabbit_exchange_type.erl @@ -25,7 +25,7 @@ behaviour_info(callbacks) -> %% 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, 1}, + {serialise_events, 0}, {route, 2}, diff --git a/src/rabbit_exchange_type_direct.erl b/src/rabbit_exchange_type_direct.erl index bc7a76e30b..b99ee27db7 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/1]). +-export([description/0, route/2, serialise_events/0]). -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"). @@ -39,7 +39,7 @@ route(#exchange{name = Name}, #delivery{message = #basic_message{routing_keys = Routes}}) -> rabbit_router:match_routing_key(Name, Routes). -serialise_events(_X) -> false. +serialise_events() -> 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 2e70fb24f2..e12c996460 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/1]). +-export([description/0, route/2, serialise_events/0]). -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,7 +38,7 @@ description() -> route(#exchange{name = Name}, _Delivery) -> rabbit_router:match_routing_key(Name, ['_']). -serialise_events(_X) -> false. +serialise_events() -> 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 1e8b0687a0..f571978f5a 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/1]). +-export([description/0, route/2, serialise_events/0]). -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"). @@ -112,7 +112,7 @@ headers_match([{PK, PT, PV} | PRest], [{DK, DT, DV} | DRest], end, headers_match(PRest, DRest, AllMatch1, AnyMatch1, MatchKind). -serialise_events(_X) -> false. +serialise_events() -> 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 e3fd9283b1..1bd91dcbfb 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/1]). +-export([description/0, route/2, serialise_events/0]). -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"). @@ -46,7 +46,7 @@ route(#exchange{name = X}, mnesia:async_dirty(fun trie_match/2, [X, Words]) end || RKey <- Routes]). -serialise_events(_X) -> false. +serialise_events() -> false. validate(_X) -> ok. create(_Tx, _X) -> ok. |
