Andrew Stitcher wrote:
Just looking at current framing::Buffer usage in the broker.

A quick question about RecoveryManagerImpl.cpp:110

RecoverableMessage::shared_ptr
RecoveryManagerImpl::recoverMessage(framing::Buffer& buffer)
{
-->
    buffer.record();
<--
    //peek at type:
    Message::shared_ptr message(new Message());
    message->decodeHeader(buffer);
    return RecoverableMessage::shared_ptr(new
RecoverableMessageImpl(message, stagingThreshold)); }

the line is - buffer.record();

I can't see anywhere else in the class that buffer.restore() is called
so I'm wondering why buffer.record() is called.

My bad! That line should no longer be there.

Previously there were two different classes of message (corresponding to the different AMQP classes Basic and Message). They were encoded in the store in different ways, with a type discriminator written first. Th code in this method used to peek at the type before deciding which class to use for the decode.

Now there is a single class used in each case and the type discriminator is no longer read or written. I obviously omitted to remove the record which is not needed and looks confusing!

Reply via email to