diff options
author | Tony Garnock-Jones <tonyg@lshift.net> | 2009-11-23 15:39:50 +0000 |
---|---|---|
committer | Tony Garnock-Jones <tonyg@lshift.net> | 2009-11-23 15:39:50 +0000 |
commit | 0dda8fdc398dda44784dde67670e6879e9a9025d (patch) | |
tree | c050dba06aa4b1138e326d4f0497151874e3d427 | |
parent | 29cb6dd31fa90ace0992ef9c8a03bd3d935662ff (diff) | |
download | rabbitmq-server-0dda8fdc398dda44784dde67670e6879e9a9025d.tar.gz |
Speculative specs, pending R13B to try them out
-rw-r--r-- | include/rabbit_exchange_behaviour_spec.erl | 41 | ||||
-rw-r--r-- | include/rabbit_framing_spec.hrl | 2 | ||||
-rw-r--r-- | src/rabbit_exchange_type_direct.erl | 1 | ||||
-rw-r--r-- | src/rabbit_exchange_type_fanout.erl | 1 | ||||
-rw-r--r-- | src/rabbit_exchange_type_headers.erl | 1 | ||||
-rw-r--r-- | src/rabbit_exchange_type_topic.erl | 1 |
6 files changed, 46 insertions, 1 deletions
diff --git a/include/rabbit_exchange_behaviour_spec.erl b/include/rabbit_exchange_behaviour_spec.erl new file mode 100644 index 00000000..30662af8 --- /dev/null +++ b/include/rabbit_exchange_behaviour_spec.erl @@ -0,0 +1,41 @@ +%% The contents of this file are subject to the Mozilla Public License +%% Version 1.1 (the "License"); you may not use this file except in +%% compliance with the License. You may obtain a copy of the License at +%% http://www.mozilla.org/MPL/ +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +%% License for the specific language governing rights and limitations +%% under the License. +%% +%% The Original Code is RabbitMQ. +%% +%% The Initial Developers of the Original Code are LShift Ltd, +%% Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd. +%% +%% Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd, +%% Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd +%% are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial +%% Technologies LLC, and Rabbit Technologies Ltd. +%% +%% Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift +%% Ltd. Portions created by Cohesive Financial Technologies LLC are +%% Copyright (C) 2007-2009 Cohesive Financial Technologies +%% LLC. Portions created by Rabbit Technologies Ltd are Copyright +%% (C) 2007-2009 Rabbit Technologies Ltd. +%% +%% All Rights Reserved. +%% +%% Contributor(s): ______________________________________. +%% +-ifdef(use_specs). + +-spec(description/0 :: () -> [{atom(), any()}]). +-spec(publish/2 :: (exchange(), delivery()) -> {routing_result(), [pid()]}). +-spec(recover/1 :: (exchange()) -> 'ok'). +-spec(init/1 :: (exchange()) -> 'ok'). +-spec(delete/1 :: (exchange()) -> 'ok'). +-spec(add_binding/2 :: (exchange(), binding()) -> 'ok'). +-spec(delete_binding/2 :: (exchange(), binding()) -> 'ok'). + +-endif. diff --git a/include/rabbit_framing_spec.hrl b/include/rabbit_framing_spec.hrl index a78c2301..16af8ad3 100644 --- a/include/rabbit_framing_spec.hrl +++ b/include/rabbit_framing_spec.hrl @@ -56,5 +56,5 @@ -type(password() :: binary()). -type(vhost() :: binary()). -type(ctag() :: binary()). --type(exchange_type() :: 'direct' | 'topic' | 'fanout'). +-type(exchange_type() :: atom()). -type(binding_key() :: binary()). diff --git a/src/rabbit_exchange_type_direct.erl b/src/rabbit_exchange_type_direct.erl index 3a68267e..e30f8c3f 100644 --- a/src/rabbit_exchange_type_direct.erl +++ b/src/rabbit_exchange_type_direct.erl @@ -36,6 +36,7 @@ -export([description/0, publish/2]). -export([recover/1, init/1, delete/1, add_binding/2, delete_binding/2]). +-include("rabbit_exchange_behaviour_spec.erl"). description() -> [{name, <<"direct">>}, diff --git a/src/rabbit_exchange_type_fanout.erl b/src/rabbit_exchange_type_fanout.erl index 2709cea7..85206739 100644 --- a/src/rabbit_exchange_type_fanout.erl +++ b/src/rabbit_exchange_type_fanout.erl @@ -36,6 +36,7 @@ -export([description/0, publish/2]). -export([recover/1, init/1, delete/1, add_binding/2, delete_binding/2]). +-include("rabbit_exchange_behaviour_spec.erl"). description() -> [{name, <<"fanout">>}, diff --git a/src/rabbit_exchange_type_headers.erl b/src/rabbit_exchange_type_headers.erl index 5efcc30c..a29e4877 100644 --- a/src/rabbit_exchange_type_headers.erl +++ b/src/rabbit_exchange_type_headers.erl @@ -37,6 +37,7 @@ -export([description/0, publish/2]). -export([recover/1, init/1, delete/1, add_binding/2, delete_binding/2]). +-include("rabbit_exchange_behaviour_spec.erl"). -ifdef(use_specs). -spec(headers_match/2 :: (amqp_table(), amqp_table()) -> boolean()). diff --git a/src/rabbit_exchange_type_topic.erl b/src/rabbit_exchange_type_topic.erl index 45e26429..c1ff5a02 100644 --- a/src/rabbit_exchange_type_topic.erl +++ b/src/rabbit_exchange_type_topic.erl @@ -36,6 +36,7 @@ -export([description/0, publish/2]). -export([recover/1, init/1, delete/1, add_binding/2, delete_binding/2]). +-include("rabbit_exchange_behaviour_spec.erl"). -export([topic_matches/2]). |