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 | 9d0960818b2a8d25eee5117abd7919c52ac4f4a9 (patch) | |
| tree | 8f77f8eb671695fd37bdeccba4bed31cec554c4f /src | |
| parent | af973d1406b57a3790a6aef905c5de5b208beb80 (diff) | |
| download | rabbitmq-server-git-9d0960818b2a8d25eee5117abd7919c52ac4f4a9.tar.gz | |
rabbit_exchange:peek_serial/1.
Diffstat (limited to 'src')
| -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 84a44cd2ee..14b078c00d 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), |
