Esempio n. 1
0
        /// <summary>
        /// Tries to get the next message from the provided stream, starting at the start index.
        /// </summary>
        /// <param name="start"></param>
        /// <param name="streamIdentity"></param>
        /// <param name="comparer"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public bool TryFindNextMessage(int start, IStreamIdentity streamIdentity, ICacheDataComparer <TCachedMessage> comparer, out int index)
        {
            if (start < readIndex)
            {
                throw new ArgumentOutOfRangeException("start");
            }

            for (int i = start; i < writeIndex; i++)
            {
                if (comparer.Equals(cachedMessages[i], streamIdentity))
                {
                    index = i;
                    return(true);
                }
            }

            index = writeIndex - 1;
            return(false);
        }
Esempio n. 2
0
 /// <summary>
 /// Checks to see if the cached message is part of the provided stream
 /// </summary>
 /// <param name="cachedMessage"></param>
 /// <param name="comparer"></param>
 /// <param name="streamIdentity"></param>
 /// <returns></returns>
 public static bool Equals <TCachedMessage>(this ICacheDataComparer <TCachedMessage> comparer, IStreamIdentity streamIdentity, TCachedMessage cachedMessage)
 {
     return(comparer.Equals(cachedMessage, streamIdentity));
 }