private void handleRecap(
MamdaSubscription subscription,
MamaMsg msg)
{
// Synchronize the current Order Book in case a snapshot is being created
if (mFullBook != null)
{
lock (mFullBook)
{
msg.tryU64(MamaReservedFields.SenderId, ref mPreviousSenderId);
handleStandardFields(subscription, msg, false);
if (createDeltaFromMamaMsg(mTempmDeltaBook, msg))
{
mDeltaBook.setSymbol(subscription.getSymbol());
mDeltaBook.setBookTime(msg.getDateTime(MamdaOrderBookFields.BOOK_TIME, mSrcTime));
mDeltaBook.setAsDeltaDifference(mFullBook, mTempmDeltaBook);
mFullBook.copy(mTempmDeltaBook);
mFullBook.setSymbol(subscription.getSymbol());
mFullBook.setBookTime(mDeltaBook.getBookTime());
mFullBook.setIsConsistent(true);
invokeRecapHandlers(subscription, msg);
}
}
}
else
{
handleStandardFields(subscription, msg, false);
// Set the delta to be the contents of the recap.
if (createDeltaFromMamaMsg(mDeltaBook, msg))
{
mDeltaBook.setSymbol(subscription.getSymbol());
invokeRecapHandlers(subscription, msg);
}
}
mGotInitial = true;
}