summaryrefslogtreecommitdiff
path: root/src/rabbit_exchange_type_direct.erl
diff options
context:
space:
mode:
authorTony Garnock-Jones <tonyg@kcbbs.gen.nz>2009-11-21 21:24:15 +0000
committerTony Garnock-Jones <tonyg@kcbbs.gen.nz>2009-11-21 21:24:15 +0000
commit0378154c75db5884f3720cc632e1d2f460c27f7c (patch)
tree193b0e9537ae67eaae1112c0ab1ba59d528e674e /src/rabbit_exchange_type_direct.erl
parentb9e643bb45c32d214125ba06f3c95b97147a3f6c (diff)
downloadrabbitmq-server-0378154c75db5884f3720cc632e1d2f460c27f7c.tar.gz
Make exchanges modular behaviours. Added
rabbit_exchange_behaviour. Split fanout, direct, topic and headers into new modules that implement the new behaviour. Added convention that for exchange type X, a module named rabbit_exchange_type_X must exist.
Diffstat (limited to 'src/rabbit_exchange_type_direct.erl')
-rw-r--r--src/rabbit_exchange_type_direct.erl20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/rabbit_exchange_type_direct.erl b/src/rabbit_exchange_type_direct.erl
new file mode 100644
index 00000000..b2de8f2c
--- /dev/null
+++ b/src/rabbit_exchange_type_direct.erl
@@ -0,0 +1,20 @@
+-module(rabbit_exchange_type_direct).
+-include("rabbit.hrl").
+
+-behaviour(rabbit_exchange_behaviour).
+
+-export([description/0, route/3]).
+-export([recover/1, init/1, delete/1, add_binding/2, delete_binding/2]).
+
+description() ->
+ [{name, <<"direct">>},
+ {description, <<"AMQP direct exchange, as per the AMQP specification">>}].
+
+route(#exchange{name = Name}, RoutingKey, _Content) ->
+ rabbit_router:match_routing_key(Name, RoutingKey).
+
+recover(_X) -> ok.
+init(_X) -> ok.
+delete(_X) -> ok.
+add_binding(_X, _B) -> ok.
+delete_binding(_X, _B) -> ok.