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; } }