summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-03-28 13:35:24 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-03-28 13:35:24 +0100
commit3d3e85021bed87a9ecaf5c480d9309f88a44ff1d (patch)
tree0da5a0b0fd6380acafbc6a2bf064f45e52a300ce /src
parentc9fa97452653795ba47467575d9de2a12cdecc98 (diff)
downloadrabbitmq-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.erl2
-rw-r--r--src/rabbit_exchange.erl13
-rw-r--r--src/rabbit_exchange_type.erl2
-rw-r--r--src/rabbit_exchange_type_direct.erl4
-rw-r--r--src/rabbit_exchange_type_fanout.erl4
-rw-r--r--src/rabbit_exchange_type_headers.erl4
-rw-r--r--src/rabbit_exchange_type_topic.erl4
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.