diff options
Diffstat (limited to 'src/rabbit_exchange.erl')
| -rw-r--r-- | src/rabbit_exchange.erl | 30 |
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) -> |
