diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2011-06-01 16:39:00 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2011-06-01 16:39:00 +0100 |
commit | 06b44204c0fc6b0120db0925a8efba4fbb41ca98 (patch) | |
tree | 8f77f8eb671695fd37bdeccba4bed31cec554c4f | |
parent | afe7b305578972e05de2f487b783aa6df33baebb (diff) | |
download | rabbitmq-server-06b44204c0fc6b0120db0925a8efba4fbb41ca98.tar.gz |
rabbit_exchange:peek_serial/1.
-rw-r--r-- | src/rabbit_exchange.erl | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index 84a44cd2..14b078c0 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -24,7 +24,7 @@ info_keys/0, info/1, info/2, info_all/1, info_all/2, publish/2, delete/2]). %% these must be run inside a mnesia tx --export([maybe_auto_delete/1, serial/1]). +-export([maybe_auto_delete/1, serial/1, peek_serial/1]). %%---------------------------------------------------------------------------- @@ -75,7 +75,8 @@ -spec(maybe_auto_delete/1:: (rabbit_types:exchange()) -> 'not_deleted' | {'deleted', rabbit_binding:deletions()}). --spec(serial/1:: (rabbit_types:exchange()) -> 'none' | pos_integer()). +-spec(serial/1 :: (rabbit_types:exchange()) -> 'none' | pos_integer()). +-spec(peek_serial/1 :: (name()) -> pos_integer()). -endif. @@ -330,6 +331,12 @@ next_serial(XName) -> #exchange_serial{name = XName, next = Serial + 1}, write), Serial. +peek_serial(XName) -> + case mnesia:read({rabbit_exchange_serial, XName}) of + [#exchange_serial{next = Serial}] -> Serial; + _ -> exchange_already_deleted + end. + %% Used with atoms from records; e.g., the type is expected to exist. type_to_module(T) -> {ok, Module} = rabbit_registry:lookup_module(exchange, T), |