You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2004/12/19 20:22:54 UTC

cvs commit: logging-log4net/src/Core LevelCollection.cs

nicko       2004/12/19 11:22:54

  Modified:    src/Core LevelCollection.cs
  Log:
  Updates suggested by FxCop.
  Minor naming changes to internal types.
  Perf improvements to type check + type cast code.
  
  Revision  Changes    Path
  1.9       +27 -221   logging-log4net/src/Core/LevelCollection.cs
  
  Index: LevelCollection.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Core/LevelCollection.cs,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- LevelCollection.cs	13 Dec 2004 01:42:50 -0000	1.8
  +++ LevelCollection.cs	19 Dec 2004 19:22:54 -0000	1.9
  @@ -25,12 +25,10 @@
   	/// A strongly-typed collection of <see cref="Level"/> objects.
   	/// </summary>
   	/// <author>Nicko Cadell</author>
  -#if !NETCF
  -	[Serializable]
  -#endif
   	public class LevelCollection : ICollection, IList, IEnumerable, ICloneable
   	{
   		#region Interfaces
  +
   		/// <summary>
   		/// Supports type-safe iteration over a <see cref="LevelCollection"/>.
   		/// </summary>
  @@ -58,6 +56,7 @@
   			/// </summary>
   			void Reset();
   		}
  +
   		#endregion
   
   		private const int DEFAULT_CAPACITY = 16;
  @@ -65,29 +64,12 @@
   		#region Implementation (data)
   
   		private Level[] m_array;
  -
   		private int m_count = 0;
  -
  -#if !NETCF
  -		[NonSerialized]
  -#endif
   		private int m_version = 0;
  +
   		#endregion
   	
   		#region Static Wrappers
  -		/// <summary>
  -		/// Creates a synchronized (thread-safe) wrapper for a <c>LevelCollection</c> instance.
  -		/// </summary>
  -		/// <param name="list">list to create a synchronized wrapper arround</param>
  -		/// <returns>
  -		/// A <c>LevelCollection</c> wrapper that is synchronized (thread-safe).
  -		/// </returns>
  -		public static LevelCollection Synchronized(LevelCollection list)
  -		{
  -			if(list==null) throw new ArgumentNullException("list");
  -
  -			return new SyncLevelCollection(list);
  -		}
   
   		/// <summary>
   		/// Creates a read-only wrapper for a <c>LevelCollection</c> instance.
  @@ -102,9 +84,11 @@
   
   			return new ReadOnlyLevelCollection(list);
   		}
  +
   		#endregion
   
  -		#region Construction
  +		#region Constructors
  +
   		/// <summary>
   		/// Initializes a new instance of the <c>LevelCollection</c> class
   		/// that is empty and has the default initial capacity.
  @@ -163,7 +147,7 @@
   		/// Type visible only to our subclasses
   		/// Used to access protected constructor
   		/// </summary>
  -		protected enum Tag 
  +		protected internal enum Tag 
   		{
   			/// <summary>
   			/// A value
  @@ -175,13 +159,14 @@
   		/// Allow subclasses to avoid our default constructors
   		/// </summary>
   		/// <param name="tag"></param>
  -		protected LevelCollection(Tag tag)
  +		protected internal LevelCollection(Tag tag)
   		{
   			m_array = null;
   		}
   		#endregion
   		
   		#region Operations (type-safe ICollection)
  +
   		/// <summary>
   		/// Gets the number of elements actually contained in the <c>LevelCollection</c>.
   		/// </summary>
  @@ -434,6 +419,7 @@
   		{
   			get { return false; }
   		}
  +
   		#endregion
   
   		#region Operations (type-safe IEnumerable)
  @@ -446,6 +432,7 @@
   		{
   			return new Enumerator(this);
   		}
  +
   		#endregion
   
   		#region Public helpers (just to mimic some nice features of ArrayList)
  @@ -539,7 +526,6 @@
   
   			return m_count;
   		}
  -
   		
   		/// <summary>
   		/// Sets the capacity to the actual number of elements.
  @@ -649,6 +635,7 @@
   		#endregion
   
   		#region Nested enumerator class
  +
   		/// <summary>
   		/// Supports simple iteration over a <see cref="LevelCollection"/>.
   		/// </summary>
  @@ -656,7 +643,7 @@
   		{
   			#region Implementation (data)
   			
  -			private LevelCollection m_collection;
  +			private readonly LevelCollection m_collection;
   			private int m_index;
   			private int m_version;
   			
  @@ -705,7 +692,7 @@
   				}
   
   				++m_index;
  -				return (m_index < m_collection.Count) ? true : false;
  +				return (m_index < m_collection.Count);
   			}
   
   			/// <summary>
  @@ -722,7 +709,7 @@
   			
   			object IEnumerator.Current
   			{
  -				get { return (object)(this.Current); }
  +				get { return this.Current; }
   			}
   			
   			#endregion
  @@ -730,214 +717,27 @@
   
   		#endregion
   
  -		#region Nested Synchronized Wrapper class
  +		#region Nested Read Only Wrapper class
   
  -		private sealed class SyncLevelCollection : LevelCollection
  +		private sealed class ReadOnlyLevelCollection : LevelCollection
   		{
   			#region Implementation (data)
  -			private LevelCollection m_collection;
  -			private object m_root;
  -			#endregion
  -
  -			#region Construction
  -			internal SyncLevelCollection(LevelCollection list) : base(Tag.Default)
  -			{
  -				m_root = list.SyncRoot;
  -				m_collection = list;
  -			}
  -			#endregion
  -
  -			#region Type-safe ICollection
  -
  -			public override void CopyTo(Level[] array)
  -			{
  -				lock(this.m_root)
  -				{
  -					m_collection.CopyTo(array);
  -				}
  -			}
  -
  -			public override void CopyTo(Level[] array, int start)
  -			{
  -				lock(this.m_root)
  -				{
  -					m_collection.CopyTo(array,start);
  -				}
  -			}
  -			public override int Count
  -			{
  -				get
  -				{ 
  -					lock(this.m_root)
  -					{
  -						return m_collection.Count;
  -					}
  -				}
  -			}
  -
  -			public override bool IsSynchronized
  -			{
  -				get { return true; }
  -			}
  -
  -			public override object SyncRoot
  -			{
  -				get { return this.m_root; }
  -			}
  -
  -			#endregion
  -
  -			#region Type-safe IList
  -
  -			public override Level this[int i]
  -			{
  -				get
  -				{
  -					lock(this.m_root)
  -					{
  -						return m_collection[i];
  -					}
  -				}
  -				set
  -				{
  -					lock(this.m_root)
  -					{
  -						m_collection[i] = value; 
  -					}
  -				}
  -			}
  -
  -			public override int Add(Level x)
  -			{
  -				lock(this.m_root)
  -				{
  -					return m_collection.Add(x);
  -				}
  -			}
  -
  -			public override void Clear()
  -			{
  -				lock(this.m_root)
  -				{
  -					m_collection.Clear();
  -				}
  -			}
  -
  -			public override bool Contains(Level x)
  -			{
  -				lock(this.m_root)
  -				{
  -					return m_collection.Contains(x);
  -				}
  -			}
  -
  -			public override int IndexOf(Level x)
  -			{
  -				lock(this.m_root)
  -				{
  -					return m_collection.IndexOf(x);
  -				}
  -			}
  -
  -			public override void Insert(int pos, Level x)
  -			{
  -				lock(this.m_root)
  -				{
  -					m_collection.Insert(pos,x);
  -				}
  -			}
  -
  -			public override void Remove(Level x)
  -			{
  -				lock(this.m_root)
  -				{
  -					m_collection.Remove(x);
  -				}
  -			}
  -
  -			public override void RemoveAt(int pos)
  -			{
  -				lock(this.m_root)
  -				{
  -					m_collection.RemoveAt(pos);
  -				}
  -			}
  -
  -			public override bool IsFixedSize
  -			{
  -				get { return m_collection.IsFixedSize; }
  -			}
   
  -			public override bool IsReadOnly
  -			{
  -				get { return m_collection.IsReadOnly; }
  -			}
  -			#endregion
  +			private readonly LevelCollection m_collection;
   
  -			#region Type-safe IEnumerable
  -			public override ILevelCollectionEnumerator GetEnumerator()
  -			{
  -				lock(m_root)
  -				{
  -					return m_collection.GetEnumerator();
  -				}
  -			}
  -			#endregion
  -
  -			#region Public Helpers
  -			// (just to mimic some nice features of ArrayList)
  -			public override int Capacity
  -			{
  -				get
  -				{
  -					lock(this.m_root)
  -					{
  -						return m_collection.Capacity;
  -					}
  -				}
  -				set
  -				{
  -					lock(this.m_root)
  -					{
  -						m_collection.Capacity = value;
  -					}
  -				}
  -			}
  -
  -			public override int AddRange(LevelCollection x)
  -			{
  -				lock(this.m_root)
  -				{
  -					return m_collection.AddRange(x);
  -				}
  -			}
  -
  -			public override int AddRange(Level[] x)
  -			{
  -				lock(this.m_root)
  -				{
  -					return m_collection.AddRange(x);
  -				}
  -			}
  -			#endregion
  -		}
  -		#endregion
  -
  -		#region Nested Read Only Wrapper class
  -		private sealed class ReadOnlyLevelCollection : LevelCollection
  -		{
  -			#region Implementation (data)
  -			private LevelCollection m_collection;
   			#endregion
   
   			#region Construction
  +
   			internal ReadOnlyLevelCollection(LevelCollection list) : base(Tag.Default)
   			{
   				m_collection = list;
   			}
  +
   			#endregion
   
   			#region Type-safe ICollection
  +
   			public override void CopyTo(Level[] array)
   			{
   				m_collection.CopyTo(array);
  @@ -1016,16 +816,20 @@
   			{
   				get { return true; }
   			}
  +
   			#endregion
   
   			#region Type-safe IEnumerable
  +
   			public override ILevelCollectionEnumerator GetEnumerator()
   			{
   				return m_collection.GetEnumerator();
   			}
  +
   			#endregion
   
   			#region Public Helpers
  +
   			// (just to mimic some nice features of ArrayList)
   			public override int Capacity
   			{
  @@ -1042,8 +846,10 @@
   			{
   				throw new NotSupportedException("This is a Read Only Collection and can not be modified");
   			}
  +
   			#endregion
   		}
  +
   		#endregion
   	}