コード例 #1
0
        public SeqNumPair GetNewMessages(SeqNumPair priorSeqNumPair, ref Queue <Logging.ILogMessage> updateMesgQueue)
        {
            SeqNumPair currentSeqNumPair        = new SeqNumPair(LastMesgAddedSeqNum, contentResetChangeSeqNum.Value);
            Int64      finalLastMesgAddedSeqNum = currentSeqNumPair.LastMesgAddedSeqNum;

            if (priorSeqNumPair.IsContentReplaced(currentSeqNumPair))
            {
                lock (rawLogMesgArrayMutex)
                {
                    rawLogMesgArray.AppendMesgsSinceSeqNum(0, ref updateMesgQueue, out finalLastMesgAddedSeqNum);
                }
            }
            else if (priorSeqNumPair.AreThereAddedMesgs(currentSeqNumPair))
            {
                lock (rawLogMesgArrayMutex)
                {
                    rawLogMesgArray.AppendMesgsSinceSeqNum(priorSeqNumPair.LastMesgAddedSeqNum, ref updateMesgQueue, out finalLastMesgAddedSeqNum);
                }
            }

            currentSeqNumPair.LastMesgAddedSeqNum = finalLastMesgAddedSeqNum;

            return(currentSeqNumPair);
        }
コード例 #2
0
 public bool AreThereAddedMesgs(SeqNumPair rhs)
 {
     return(LastMesgAddedSeqNum != rhs.LastMesgAddedSeqNum);
 }
コード例 #3
0
 public bool IsContentReplaced(SeqNumPair rhs)
 {
     return(ContentResetChangeSeqNum != rhs.ContentResetChangeSeqNum);
 }
コード例 #4
0
 public bool AreThereAnyChanges(SeqNumPair rhs)
 {
     return(AreThereAddedMesgs(rhs) || IsContentReplaced(rhs));
 }