protected void NextSequenceReset(Message sequenceReset)
{
bool isGapFill = false;
if (sequenceReset.IsSetField(Fields.Tags.GapFillFlag))
{
isGapFill = sequenceReset.GetBoolean(Fields.Tags.GapFillFlag);
}
if (!Verify(sequenceReset, isGapFill, isGapFill))
{
return;
}
if (sequenceReset.IsSetField(Fields.Tags.NewSeqNo))
{
int newSeqNo = sequenceReset.GetInt(Fields.Tags.NewSeqNo);
this.Log.OnEvent("Received SequenceReset FROM: " + state_.GetNextTargetMsgSeqNum() + " TO: " + newSeqNo);
if (newSeqNo > state_.GetNextTargetMsgSeqNum())
{
state_.SetNextTargetMsgSeqNum(newSeqNo);
}
else
{
if (newSeqNo < state_.GetNextTargetMsgSeqNum())
{
GenerateReject(sequenceReset, FixValues.SessionRejectReason.VALUE_IS_INCORRECT);
}
}
}
}