nicko       2004/06/02 09:25:33

  Modified:    src/Util CyclicBuffer.cs
  Log:
  Simplified CyclicBuffer.Append method signature. Now just returns the 
discarded event (if any) rather than having bools and out params
  
  Revision  Changes    Path
  1.5       +14 -7     logging-log4net/src/Util/CyclicBuffer.cs
  
  Index: CyclicBuffer.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Util/CyclicBuffer.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CyclicBuffer.cs   30 May 2004 10:50:43 -0000      1.4
  +++ CyclicBuffer.cs   2 Jun 2004 16:25:33 -0000       1.5
  @@ -58,20 +58,18 @@
                /// Appends a <paramref name="loggingEvent"/> to the buffer.
                /// </summary>
                /// <param name="loggingEvent">The event to append to the 
buffer.</param>
  -             /// <param name="discardedLoggingEvent">The event discarded 
from the buffer, if any.</param>
  -             /// <returns><c>true</c> if the buffer is not full, otherwise 
<c>false</c>.</returns>
  -             public bool Append(LoggingEvent loggingEvent, out LoggingEvent 
discardedLoggingEvent) 
  +             /// <returns>The event discarded from the buffer, if the buffer 
is full, otherwise <c>null</c>.</returns>
  +             public LoggingEvent Append(LoggingEvent loggingEvent)
                {       
  -                     discardedLoggingEvent = null;
  -
                        if (loggingEvent == null)
                        {
                                throw new ArgumentNullException("loggingEvent");
                        }
  +
                        lock(this)
                        {
                                // save the discarded event
  -                             discardedLoggingEvent = m_events[m_last];
  +                             LoggingEvent discardedLoggingEvent = 
m_events[m_last];
   
                                // overwrite the last event position
                                m_events[m_last] = loggingEvent;        
  @@ -89,7 +87,16 @@
                                        m_first = 0;
                                }
   
  -                             return (m_numElems < m_maxSize);
  +                             if (m_numElems < m_maxSize)
  +                             {
  +                                     // Space remaining
  +                                     return null;
  +                             }
  +                             else
  +                             {
  +                                     // Buffer is full and discarding an 
event
  +                                     return discardedLoggingEvent;
  +                             }
                        }
                }
   
  
  
  

Reply via email to