private void handleStandardFields(MamdaSubscription subscription,
MamaMsg msg,
bool checkSeqNum)
{
if (mSymbol == null)
msg.tryString (MamdaCommonFields.SYMBOL, ref mSymbol);
if (mPartId == null)
{
if ((!msg.tryString (MamdaOrderBookFields.PART_ID, ref mPartId)) && (mSymbol != null))
{
// No explicit part ID in message, but maybe in symbol.
int lastDot = mSymbol.IndexOf (".");
if (lastDot != -1)
{
lastDot++;
int lastChar = mSymbol.Length;
if (lastDot != lastChar)
{
mPartId = mSymbol.Substring (lastDot, (lastChar-lastDot));
}
}
}
}
msg.tryDateTime (MamdaOrderBookFields.SRC_TIME, ref mSrcTime);
msg.tryDateTime (MamdaOrderBookFields.ACTIVITY_TIME, ref mActivityTime);
msg.tryDateTime (MamdaOrderBookFields.LINE_TIME, ref mLineTime);
msg.tryDateTime (MamaReservedFields.SendTime, ref mSendTime);
mEventTime = msg.getDateTime (MamdaOrderBookFields.BOOK_TIME, mSrcTime);
long seqNum = msg.getI64(MamaReservedFields.SeqNum);
if (checkSeqNum && (seqNum != (mEventSeqNum + 1)))
{
mGapBegin = mEventSeqNum + 1;
mGapEnd = seqNum - 1;
mEventSeqNum = seqNum;
invokeGapHandlers (subscription, msg);
}
else
{
mEventSeqNum = seqNum;
}
}