summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-03-15 20:00:56 +0000
committerMatthias Radestock <matthias@rabbitmq.com>2011-03-15 20:00:56 +0000
commiteb0205d4bc8408d63736b13a6f7e6f5ba2879eee (patch)
treece7320bbbe30e18063a41432e49037f425a1d5b4
parentcc5413d3b863c14ccca00b2a4feb9c99589da170 (diff)
downloadrabbitmq-server-eb0205d4bc8408d63736b13a6f7e6f5ba2879eee.tar.gz
inlining and some minor refactoring
-rw-r--r--src/rabbit_queue_index.erl26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index d3a82fbf..c342101c 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -543,13 +543,6 @@ create_pub_record_body(MsgId, #message_properties{expiry = Expiry}) ->
expiry_to_binary(undefined) -> <<?NO_EXPIRY:?EXPIRY_BITS>>;
expiry_to_binary(Expiry) -> <<Expiry:?EXPIRY_BITS>>.
-read_pub_record_body(Hdl) ->
- case file_handle_cache:read(Hdl, ?MSG_ID_BYTES + ?EXPIRY_BYTES) of
- {ok, Bin} -> {MsgId, MsgProps, <<>>} = extract_pub_record_body(Bin),
- {MsgId, MsgProps};
- Error -> Error
- end.
-
extract_pub_record_body(<<MsgIdNum:?MSG_ID_BITS, Expiry:?EXPIRY_BITS,
Rest/binary>>) ->
%% work around for binary data fragmentation. See
@@ -682,15 +675,18 @@ load_journal_entries(State = #qistate { journal_handle = Hdl }) ->
?ACK_JPREFIX ->
load_journal_entries(add_to_journal(SeqId, ack, State));
_ ->
- case read_pub_record_body(Hdl) of
- {MsgId, MsgProps} ->
- Publish = {MsgId, MsgProps,
- case Prefix of
- ?PUB_PERSIST_JPREFIX -> true;
- ?PUB_TRANS_JPREFIX -> false
- end},
+ case file_handle_cache:read(
+ Hdl, ?MSG_ID_BYTES + ?EXPIRY_BYTES) of
+ {ok, Bin} ->
+ {MsgId, MsgProps, <<>>} =
+ extract_pub_record_body(Bin),
+ IsPersistent = case Prefix of
+ ?PUB_PERSIST_JPREFIX -> true;
+ ?PUB_TRANS_JPREFIX -> false
+ end,
load_journal_entries(
- add_to_journal(SeqId, Publish, State));
+ add_to_journal(
+ SeqId, {MsgId, MsgProps, IsPersistent}, State));
_ErrOrEoF -> %% err, we've lost at least a publish
State
end