summaryrefslogtreecommitdiff
path: root/src/rabbit_exchange.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rabbit_exchange.erl')
-rw-r--r--src/rabbit_exchange.erl30
1 files changed, 6 insertions, 24 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index d2932d61..be73e818 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -33,7 +33,6 @@
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
--export([create_type_registry/0, register_type/2]).
-export([recover/0, declare/5, lookup/1, lookup_or_die/1,
list/1, info/1, info/2, info_all/1, info_all/2,
publish/2]).
@@ -95,23 +94,6 @@
-define(INFO_KEYS, [name, type, durable, auto_delete, arguments].
-create_type_registry() ->
- rabbit_exchange_type_modules =
- ets:new(rabbit_exchange_type_modules, [public, set, named_table]),
- rabbit_exchange_type_names =
- ets:new(rabbit_exchange_type_names, [public, set, named_table]),
- ok = register_type(<<"direct">>, rabbit_exchange_type_direct),
- ok = register_type(<<"fanout">>, rabbit_exchange_type_fanout),
- ok = register_type(<<"headers">>, rabbit_exchange_type_headers),
- ok = register_type(<<"topic">>, rabbit_exchange_type_topic),
- ok.
-
-register_type(TypeName, ModuleName)
- when is_binary(TypeName), is_atom(ModuleName) ->
- true = ets:insert(rabbit_exchange_type_modules, {TypeName, ModuleName}),
- true = ets:insert(rabbit_exchange_type_names, {ModuleName, TypeName}),
- ok.
-
recover() ->
ok = rabbit_misc:table_foreach(
fun(Exchange) -> ok = mnesia:write(rabbit_exchange,
@@ -152,17 +134,17 @@ declare(ExchangeName, Type, Durable, AutoDelete, Args) ->
end
end).
-typename_to_plugin_module(T) when is_binary(T) ->
- case ets:lookup(rabbit_exchange_type_modules, T) of
- [{_, Module}] ->
+typename_to_plugin_module(T) ->
+ case rabbit_exchange_type:lookup_module(T) of
+ {ok, Module} ->
Module;
- [] ->
+ {error, not_found} ->
rabbit_misc:protocol_error(
command_invalid, "invalid exchange type '~s'", [T])
end.
-plugin_module_to_typename(M) when is_atom(M) ->
- [{_, TypeName}] = ets:lookup(rabbit_exchange_type_names, M),
+plugin_module_to_typename(M) ->
+ {ok, TypeName} = rabbit_exchange_type:lookup_name(M),
TypeName.
check_type(T) ->