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 2005/01/31 23:56:49 UTC
cvs commit: logging-log4net/src/Util AppenderAttachedImpl.cs CompositeProperties.cs ContextPropertiesBase.cs CountingQuietTextWriter.cs CyclicBuffer.cs EmptyCollection.cs EmptyDictionary.cs FormattingInfo.cs GlobalContextProperties.cs LevelMapping.cs LevelMappingEntry.cs LogLog.cs LogicalThreadContextProperties.cs NativeError.cs NullDictionaryEnumerator.cs NullEnumerator.cs NullSecurityContext.cs OnlyOnceErrorHandler.cs OptionConverter.cs PatternConverter.cs PatternParser.cs PatternString.cs
nicko 2005/01/31 14:56:49
Modified: src/Util AppenderAttachedImpl.cs CompositeProperties.cs
ContextPropertiesBase.cs CountingQuietTextWriter.cs
CyclicBuffer.cs EmptyCollection.cs
EmptyDictionary.cs FormattingInfo.cs
GlobalContextProperties.cs LevelMapping.cs
LevelMappingEntry.cs LogLog.cs
LogicalThreadContextProperties.cs NativeError.cs
NullDictionaryEnumerator.cs NullEnumerator.cs
NullSecurityContext.cs OnlyOnceErrorHandler.cs
OptionConverter.cs PatternConverter.cs
PatternParser.cs PatternString.cs
Log:
Tidied up doc comments
Revision Changes Path
1.6 +38 -3 logging-log4net/src/Util/AppenderAttachedImpl.cs
Index: AppenderAttachedImpl.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/AppenderAttachedImpl.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- AppenderAttachedImpl.cs 28 Jan 2005 20:51:06 -0000 1.5
+++ AppenderAttachedImpl.cs 31 Jan 2005 22:56:49 -0000 1.6
@@ -26,6 +26,13 @@
/// <summary>
/// A straightforward implementation of the <see cref="IAppenderAttachable"/> interface.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// This is the default implementation of the <see cref="IAppenderAttachable"/>
+ /// interface. Implementors of the <see cref="IAppenderAttachable"/> interface
+ /// should aggregate an instance of this type.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public class AppenderAttachedImpl : IAppenderAttachable
@@ -33,8 +40,13 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="AppenderAttachedImpl"/> class.
+ /// Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="AppenderAttachedImpl"/> class.
+ /// </para>
+ /// </remarks>
public AppenderAttachedImpl()
{
}
@@ -44,11 +56,16 @@
#region Public Instance Methods
/// <summary>
- /// Calls the <see cref="IAppender.DoAppend" /> method on all
- /// attached appenders.
+ /// Append on on all attached appenders.
/// </summary>
/// <param name="loggingEvent">The event being logged.</param>
/// <returns>The number of appenders called.</returns>
+ /// <remarks>
+ /// <para>
+ /// Calls the <see cref="IAppender.DoAppend" /> method on all
+ /// attached appenders.
+ /// </para>
+ /// </remarks>
public int AppendLoopOnAppenders(LoggingEvent loggingEvent)
{
if (loggingEvent == null)
@@ -90,7 +107,9 @@
/// </summary>
/// <param name="newAppender">The appender to add.</param>
/// <remarks>
+ /// <para>
/// If the appender is already in the list it won't be added again.
+ /// </para>
/// </remarks>
public void AddAppender(IAppender newAppender)
{
@@ -118,6 +137,11 @@
/// A collection of attached appenders, or <c>null</c> if there
/// are no attached appenders.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// The read only collection of all currently attached appenders.
+ /// </para>
+ /// </remarks>
public AppenderCollection Appenders
{
get
@@ -142,6 +166,11 @@
/// The appender with the name specified, or <c>null</c> if no appender with the
/// specified name is found.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Lookup an attached appender by name.
+ /// </para>
+ /// </remarks>
public IAppender GetAppender(string name)
{
if (m_appenderList != null && name != null)
@@ -161,7 +190,9 @@
/// Removes all attached appenders.
/// </summary>
/// <remarks>
+ /// <para>
/// Removes and closes all attached appenders
+ /// </para>
/// </remarks>
public void RemoveAllAppenders()
{
@@ -189,9 +220,11 @@
/// <param name="appender">The appender to remove.</param>
/// <returns>The appender removed from the list</returns>
/// <remarks>
+ /// <para>
/// The appender removed is not closed.
/// If you are discarding the appender you must call
/// <see cref="IAppender.Close"/> on the appender removed.
+ /// </para>
/// </remarks>
public IAppender RemoveAppender(IAppender appender)
{
@@ -213,9 +246,11 @@
/// <param name="name">The name of the appender to remove.</param>
/// <returns>The appender removed from the list</returns>
/// <remarks>
+ /// <para>
/// The appender removed is not closed.
/// If you are discarding the appender you must call
/// <see cref="IAppender.Close"/> on the appender removed.
+ /// </para>
/// </remarks>
public IAppender RemoveAppender(string name)
{
1.3 +31 -1 logging-log4net/src/Util/CompositeProperties.cs
Index: CompositeProperties.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/CompositeProperties.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CompositeProperties.cs 17 Jan 2005 20:18:47 -0000 1.2
+++ CompositeProperties.cs 31 Jan 2005 22:56:49 -0000 1.3
@@ -24,6 +24,12 @@
/// <summary>
/// This class aggregates several PropertiesDictionary collections together.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Provides a dictionary style lookup over an ordered list of
+ /// <see cref="PropertiesDictionary"/> collections.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public sealed class CompositeProperties
{
@@ -37,8 +43,13 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="CompositeProperties" /> class.
+ /// Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="CompositeProperties" /> class.
+ /// </para>
+ /// </remarks>
internal CompositeProperties()
{
}
@@ -53,6 +64,19 @@
/// <value>
/// The value for the property with the specified key
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Looks up the value for the <paramref name="key" /> specified.
+ /// The <see cref="PropertiesDictionary"/> collections are searched
+ /// in the order in which they were added to this collection. The value
+ /// returned is the value held by the first collection that contains
+ /// the specified key.
+ /// </para>
+ /// <para>
+ /// If none of the collections contain the specified key then
+ /// <c>null</c> is returned.
+ /// </para>
+ /// </remarks>
public object this[string key]
{
get
@@ -99,6 +123,12 @@
/// Flatten this composite collection into a single properties dictionary
/// </summary>
/// <returns>the flattened dictionary</returns>
+ /// <remarks>
+ /// <para>
+ /// Reduces the collection of ordered dictionaries to a single dictionary
+ /// containing the resultant values for the keys.
+ /// </para>
+ /// </remarks>
public PropertiesDictionary Flatten()
{
if (m_flattened == null)
1.3 +5 -0 logging-log4net/src/Util/ContextPropertiesBase.cs
Index: ContextPropertiesBase.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/ContextPropertiesBase.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ContextPropertiesBase.cs 17 Jan 2005 20:18:47 -0000 1.2
+++ ContextPropertiesBase.cs 31 Jan 2005 22:56:49 -0000 1.3
@@ -38,6 +38,11 @@
/// <value>
/// The value for the property with the specified key
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the value of a property
+ /// </para>
+ /// </remarks>
public abstract object this[string key] { get; set; }
}
}
1.5 +21 -2 logging-log4net/src/Util/CountingQuietTextWriter.cs
Index: CountingQuietTextWriter.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/CountingQuietTextWriter.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CountingQuietTextWriter.cs 17 Jan 2005 20:18:47 -0000 1.4
+++ CountingQuietTextWriter.cs 31 Jan 2005 22:56:49 -0000 1.5
@@ -27,6 +27,11 @@
/// Subclass of <see cref="QuietTextWriter"/> that maintains a count of
/// the number of bytes written.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// This writer counts the number of bytes written.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public class CountingQuietTextWriter : QuietTextWriter
@@ -34,11 +39,16 @@
#region Public Instance Constructors
/// <summary>
- /// Creates a new instance of the <see cref="CountingQuietTextWriter" /> class
- /// with the specified <see cref="TextWriter" /> and <see cref="IErrorHandler" />.
+ /// Constructor
/// </summary>
/// <param name="writer">The <see cref="TextWriter" /> to actually write to.</param>
/// <param name="errorHandler">The <see cref="IErrorHandler" /> to report errors to.</param>
+ /// <remarks>
+ /// <para>
+ /// Creates a new instance of the <see cref="CountingQuietTextWriter" /> class
+ /// with the specified <see cref="TextWriter" /> and <see cref="IErrorHandler" />.
+ /// </para>
+ /// </remarks>
public CountingQuietTextWriter(TextWriter writer, IErrorHandler errorHandler) : base(writer, errorHandler)
{
m_countBytes = 0;
@@ -52,6 +62,10 @@
/// Writes a string to the output and counts the number of bytes written.
/// </summary>
/// <param name="str">The string data to write to the output.</param>
+ /// <remarks>
+ /// Overrides implementation of <see cref="QuietTextWriter"/>. Counts
+ /// the number of bytes written.
+ /// </remarks>
override public void Write(string str)
{
if (str != null && str.Length > 0)
@@ -81,6 +95,11 @@
/// <value>
/// The total number of bytes written.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the total number of bytes written.
+ /// </para>
+ /// </remarks>
public long Count
{
get { return m_countBytes; }
1.8 +60 -7 logging-log4net/src/Util/CyclicBuffer.cs
Index: CyclicBuffer.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/CyclicBuffer.cs,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- CyclicBuffer.cs 17 Jan 2005 20:18:47 -0000 1.7
+++ CyclicBuffer.cs 31 Jan 2005 22:56:49 -0000 1.8
@@ -25,6 +25,11 @@
/// <summary>
/// A fixed size rolling buffer of logging events.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// An array backed fixed size leaky bucket.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public class CyclicBuffer
@@ -32,17 +37,23 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="CyclicBuffer" /> class with
- /// the specified maximum number of buffered logging events.
+ /// Constructor
/// </summary>
/// <param name="maxSize">The maximum number of logging events in the buffer.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="CyclicBuffer" /> class with
+ /// the specified maximum number of buffered logging events.
+ /// </para>
+ /// </remarks>
/// <exception cref="ArgumentOutOfRangeException">The <paramref name="maxSize"/> argument is not a positive integer.</exception>
public CyclicBuffer(int maxSize)
{
if (maxSize < 1)
{
- throw log4net.Util.SystemInfo.CreateArgumentOutOfRangeException("maxSize", (object)maxSize, "Parameter: maxSize, Value: [" + maxSize + "] out of range. Non zero positive integer required");
+ throw SystemInfo.CreateArgumentOutOfRangeException("maxSize", (object)maxSize, "Parameter: maxSize, Value: [" + maxSize + "] out of range. Non zero positive integer required");
}
+
m_maxSize = maxSize;
m_events = new LoggingEvent[maxSize];
m_first = 0;
@@ -59,6 +70,13 @@
/// </summary>
/// <param name="loggingEvent">The event to append to the buffer.</param>
/// <returns>The event discarded from the buffer, if the buffer is full, otherwise <c>null</c>.</returns>
+ /// <remarks>
+ /// <para>
+ /// Append an event to the buffer. If the buffer still contains free space then
+ /// <c>null</c> is returned. If the buffer is full then an event will be dropped
+ /// to make space for the new event, the event dropped is returned.
+ /// </para>
+ /// </remarks>
public LoggingEvent Append(LoggingEvent loggingEvent)
{
if (loggingEvent == null)
@@ -101,10 +119,15 @@
}
/// <summary>
- /// Gets the oldest (first) logging event in the buffer and removes it
- /// from the buffer.
+ /// Get and remove the oldest event in the buffer.
/// </summary>
/// <returns>The oldest logging event in the buffer</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets the oldest (first) logging event in the buffer and removes it
+ /// from the buffer.
+ /// </para>
+ /// </remarks>
public LoggingEvent PopOldest()
{
lock(this)
@@ -128,6 +151,11 @@
/// Pops all the logging events from the buffer into an array.
/// </summary>
/// <returns>An array of all the logging events in the buffer.</returns>
+ /// <remarks>
+ /// <para>
+ /// Get all the events in the buffer and clear the buffer.
+ /// </para>
+ /// </remarks>
public LoggingEvent[] PopAll()
{
lock(this)
@@ -158,10 +186,19 @@
}
}
+#if RESIZABLE_CYCLIC_BUFFER
/// <summary>
/// Resizes the cyclic buffer to <paramref name="newSize"/>.
/// </summary>
/// <param name="newSize">The new size of the buffer.</param>
+ /// <remarks>
+ /// <para>
+ /// Resize the cyclic buffer. Events in the buffer are copied into
+ /// the newly sized buffer. If the buffer is shrunk and there are
+ /// more events currently in the buffer than the new size of the
+ /// buffer then the newest events will be dropped from the buffer.
+ /// </para>
+ /// </remarks>
/// <exception cref="ArgumentOutOfRangeException">The <paramref name="newSize"/> argument is not a positive integer.</exception>
public void Resize(int newSize)
{
@@ -206,6 +243,7 @@
}
}
}
+#endif
#endregion Public Instance Methods
@@ -216,8 +254,10 @@
/// </summary>
/// <value>The <paramref name="i"/>th oldest event currently in the buffer.</value>
/// <remarks>
+ /// <para>
/// If <paramref name="i"/> is outside the range 0 to the number of events
/// currently in the buffer, then <c>null</c> is returned.
+ /// </para>
/// </remarks>
public LoggingEvent this[int i]
{
@@ -236,9 +276,14 @@
}
/// <summary>
- /// Gets or sets the maximum size of the buffer.
+ /// Gets the maximum size of the buffer.
/// </summary>
/// <value>The maximum size of the buffer.</value>
+ /// <remarks>
+ /// <para>
+ /// Gets the maximum size of the buffer
+ /// </para>
+ /// </remarks>
public int MaxSize
{
get
@@ -248,7 +293,13 @@
return m_maxSize;
}
}
- set { Resize(value); }
+#if RESIZABLE_CYCLIC_BUFFER
+ set
+ {
+ /// Setting the MaxSize will cause the buffer to resize.
+ Resize(value);
+ }
+#endif
}
/// <summary>
@@ -256,8 +307,10 @@
/// </summary>
/// <value>The number of logging events in the buffer.</value>
/// <remarks>
+ /// <para>
/// This number is guaranteed to be in the range 0 to <see cref="MaxSize"/>
/// (inclusive).
+ /// </para>
/// </remarks>
public int Length
{
1.5 +36 -0 logging-log4net/src/Util/EmptyCollection.cs
Index: EmptyCollection.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/EmptyCollection.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- EmptyCollection.cs 17 Jan 2005 20:18:47 -0000 1.4
+++ EmptyCollection.cs 31 Jan 2005 22:56:49 -0000 1.5
@@ -24,6 +24,12 @@
/// <summary>
/// An always empty <see cref="ICollection"/>.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// A singleton implementation of the <see cref="ICollection"/>
+ /// interface that always represents an empty collection.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
#if !NETCF
@@ -37,7 +43,9 @@
/// Initializes a new instance of the <see cref="EmptyCollection" /> class.
/// </summary>
/// <remarks>
+ /// <para>
/// Uses a private access modifier to enforce the singleton pattern.
+ /// </para>
/// </remarks>
private EmptyCollection()
{
@@ -51,6 +59,11 @@
/// Gets the singleton instance of the empty collection.
/// </summary>
/// <returns>The singleton instance of the empty collection.</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets the singleton instance of the empty collection.
+ /// </para>
+ /// </remarks>
public static EmptyCollection Instance
{
get { return s_instance; }
@@ -70,6 +83,11 @@
/// indexing.</param>
/// <param name="index">The zero-based index in array at which
/// copying begins.</param>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty no values are copied into the array.
+ /// </para>
+ /// </remarks>
public void CopyTo(System.Array array, int index)
{
// copy nothing
@@ -82,7 +100,9 @@
/// <b>true</b> if access to the <see cref="ICollection"/> is synchronized (thread-safe); otherwise, <b>false</b>.
/// </value>
/// <remarks>
+ /// <para>
/// For the <see cref="EmptyCollection"/> this property is always <c>true</c>.
+ /// </para>
/// </remarks>
public bool IsSynchronized
{
@@ -95,6 +115,11 @@
/// <value>
/// The number of elements contained in the <see cref="ICollection"/>.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty the <see cref="Count"/> is always <c>0</c>.
+ /// </para>
+ /// </remarks>
public int Count
{
get { return 0; }
@@ -106,6 +131,12 @@
/// <value>
/// An object that can be used to synchronize access to the <see cref="ICollection"/>.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty and thread safe and synchronized this instance is also
+ /// the <see cref="SyncRoot"/> object.
+ /// </para>
+ /// </remarks>
public object SyncRoot
{
get { return this; }
@@ -122,6 +153,11 @@
/// An <see cref="IEnumerator"/> that can be used to
/// iterate through the collection.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty a <see cref="NullEnumerator"/> is returned.
+ /// </para>
+ /// </remarks>
public IEnumerator GetEnumerator()
{
return NullEnumerator.Instance;
1.4 +96 -1 logging-log4net/src/Util/EmptyDictionary.cs
Index: EmptyDictionary.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/EmptyDictionary.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- EmptyDictionary.cs 17 Jan 2005 20:18:47 -0000 1.3
+++ EmptyDictionary.cs 31 Jan 2005 22:56:49 -0000 1.4
@@ -24,6 +24,12 @@
/// <summary>
/// An always empty <see cref="IDictionary"/>.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// A singleton implementation of the <see cref="IDictionary"/>
+ /// interface that always represents an empty collection.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
#if !NETCF
@@ -37,7 +43,9 @@
/// Initializes a new instance of the <see cref="EmptyDictionary" /> class.
/// </summary>
/// <remarks>
+ /// <para>
/// Uses a private access modifier to enforce the singleton pattern.
+ /// </para>
/// </remarks>
private EmptyDictionary()
{
@@ -51,6 +59,11 @@
/// Gets the singleton instance of the <see cref="EmptyDictionary" />.
/// </summary>
/// <returns>The singleton instance of the <see cref="EmptyDictionary" />.</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets the singleton instance of the <see cref="EmptyDictionary" />.
+ /// </para>
+ /// </remarks>
public static EmptyDictionary Instance
{
get { return s_instance; }
@@ -70,6 +83,11 @@
/// indexing.</param>
/// <param name="index">The zero-based index in array at which
/// copying begins.</param>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty no values are copied into the array.
+ /// </para>
+ /// </remarks>
public void CopyTo(System.Array array, int index)
{
// copy nothing
@@ -82,7 +100,9 @@
/// <b>true</b> if access to the <see cref="ICollection"/> is synchronized (thread-safe); otherwise, <b>false</b>.
/// </value>
/// <remarks>
+ /// <para>
/// For the <see cref="EmptyCollection"/> this property is always <b>true</b>.
+ /// </para>
/// </remarks>
public bool IsSynchronized
{
@@ -95,6 +115,11 @@
/// <value>
/// The number of elements contained in the <see cref="ICollection"/>.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty the <see cref="Count"/> is always <c>0</c>.
+ /// </para>
+ /// </remarks>
public int Count
{
get { return 0; }
@@ -106,6 +131,12 @@
/// <value>
/// An object that can be used to synchronize access to the <see cref="ICollection"/>.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty and thread safe and synchronized this instance is also
+ /// the <see cref="SyncRoot"/> object.
+ /// </para>
+ /// </remarks>
public object SyncRoot
{
get { return this; }
@@ -122,6 +153,11 @@
/// An <see cref="IEnumerator"/> that can be used to
/// iterate through the collection.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty a <see cref="NullEnumerator"/> is returned.
+ /// </para>
+ /// </remarks>
IEnumerator IEnumerable.GetEnumerator()
{
return NullEnumerator.Instance;
@@ -137,6 +173,13 @@
/// </summary>
/// <param name="key">The <see cref="object" /> to use as the key of the element to add.</param>
/// <param name="value">The <see cref="object" /> to use as the value of the element to add.</param>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty no new values can be added. A <see cref="InvalidOperationException"/>
+ /// is thrown if this method is called.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
public void Add(object key, object value)
{
throw new InvalidOperationException();
@@ -145,6 +188,13 @@
/// <summary>
/// Removes all elements from the <see cref="EmptyDictionary" />.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty no values can be removed. A <see cref="InvalidOperationException"/>
+ /// is thrown if this method is called.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
public void Clear()
{
throw new InvalidOperationException();
@@ -156,6 +206,11 @@
/// </summary>
/// <param name="key">The key to locate in the <see cref="EmptyDictionary" />.</param>
/// <returns><c>false</c></returns>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty the <see cref="Contains"/> method always returns <c>false</c>.
+ /// </para>
+ /// </remarks>
public bool Contains(object key)
{
return false;
@@ -168,6 +223,11 @@
/// An <see cref="IEnumerator"/> that can be used to
/// iterate through the collection.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty a <see cref="NullEnumerator"/> is returned.
+ /// </para>
+ /// </remarks>
public IDictionaryEnumerator GetEnumerator()
{
return NullDictionaryEnumerator.Instance;
@@ -177,6 +237,13 @@
/// Removes the element with the specified key from the <see cref="EmptyDictionary" />.
/// </summary>
/// <param name="key">The key of the element to remove.</param>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty no values can be removed. A <see cref="InvalidOperationException"/>
+ /// is thrown if this method is called.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
public void Remove(object key)
{
throw new InvalidOperationException();
@@ -186,6 +253,11 @@
/// Gets a value indicating whether the <see cref="EmptyDictionary" /> has a fixed size.
/// </summary>
/// <value><c>true</c></value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty <see cref="IsFixedSize"/> always returns <c>true</c>.
+ /// </para>
+ /// </remarks>
public bool IsFixedSize
{
get { return true; }
@@ -195,6 +267,11 @@
/// Gets a value indicating whether the <see cref="EmptyDictionary" /> is read-only.
/// </summary>
/// <value><c>true</c></value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty <see cref="IsReadOnly"/> always returns <c>true</c>.
+ /// </para>
+ /// </remarks>
public bool IsReadOnly
{
get { return true; }
@@ -204,6 +281,11 @@
/// Gets an <see cref="ICollection" /> containing the keys of the <see cref="EmptyDictionary" />.
/// </summary>
/// <value>An <see cref="ICollection" /> containing the keys of the <see cref="EmptyDictionary" />.</value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty a <see cref="EmptyCollection"/> is returned.
+ /// </para>
+ /// </remarks>
public System.Collections.ICollection Keys
{
get { return EmptyCollection.Instance; }
@@ -213,6 +295,11 @@
/// Gets an <see cref="ICollection" /> containing the values of the <see cref="EmptyDictionary" />.
/// </summary>
/// <value>An <see cref="ICollection" /> containing the values of the <see cref="EmptyDictionary" />.</value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty a <see cref="EmptyCollection"/> is returned.
+ /// </para>
+ /// </remarks>
public System.Collections.ICollection Values
{
get { return EmptyCollection.Instance; }
@@ -223,10 +310,18 @@
/// </summary>
/// <param name="key">The key of the element to get or set.</param>
/// <value><c>null</c></value>
+ /// <remarks>
+ /// <para>
+ /// As the collection is empty no values can be looked up or stored.
+ /// If the index getter is called then <c>null</c> is returned.
+ /// A <see cref="InvalidOperationException"/> is thrown if the setter is called.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">This dictionary is always empty and cannot be modified.</exception>
public object this[object key]
{
get { return null; }
- set { }
+ set { throw new InvalidOperationException(); }
}
#endregion Implementation of IDictionary
1.4 +44 -27 logging-log4net/src/Util/FormattingInfo.cs
Index: FormattingInfo.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/FormattingInfo.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- FormattingInfo.cs 17 Jan 2005 20:18:47 -0000 1.3
+++ FormattingInfo.cs 31 Jan 2005 22:56:49 -0000 1.4
@@ -25,6 +25,13 @@
/// Contain the information obtained when parsing formatting modifiers
/// in conversion modifiers.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Holds the formatting information extracted from the format string by
+ /// the <see cref="PatternParser"/>. This is used by the <see cref="PatternConverter"/>
+ /// objects when rendering the output.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public class FormattingInfo
@@ -32,15 +39,26 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="FormattingInfo" /> class.
+ /// Defaut Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="FormattingInfo" /> class.
+ /// </para>
+ /// </remarks>
public FormattingInfo()
{
}
/// <summary>
- /// Initializes a new instance of the <see cref="FormattingInfo" /> class.
+ /// Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="FormattingInfo" /> class
+ /// with the specified parameters.
+ /// </para>
+ /// </remarks>
public FormattingInfo(int min, int max, bool leftAlign)
{
m_min = min;
@@ -55,7 +73,14 @@
/// <summary>
/// Gets or sets the minimum value.
/// </summary>
- /// <value>The minimum value.</value>
+ /// <value>
+ /// The minimum value.
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the minimum value.
+ /// </para>
+ /// </remarks>
public int Min
{
get { return m_min; }
@@ -65,7 +90,14 @@
/// <summary>
/// Gets or sets the maximum value.
/// </summary>
- /// <value>The maximum value.</value>
+ /// <value>
+ /// The maximum value.
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the maximum value.
+ /// </para>
+ /// </remarks>
public int Max
{
get { return m_max; }
@@ -76,7 +108,14 @@
/// Gets or sets a flag indicating whether left align is enabled
/// or not.
/// </summary>
- /// <value>A flag indicating whether left align is enabled or not.</value>
+ /// <value>
+ /// A flag indicating whether left align is enabled or not.
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets a flag indicating whether left align is enabled or not.
+ /// </para>
+ /// </remarks>
public bool LeftAlign
{
get { return m_leftAlign; }
@@ -85,28 +124,6 @@
#endregion Public Instance Properties
- #region Public Instance Methods
-
- /// <summary>
- /// Resets all properties to their default values.
- /// </summary>
- public void Reset()
- {
- m_min = -1;
- m_max = int.MaxValue;
- m_leftAlign = false;
- }
-
- /// <summary>
- /// Dump debug info
- /// </summary>
- public void Dump()
- {
- LogLog.Debug("FormattingInfo: min [" + m_min + "], max [" + m_max + "], leftAlign [" + m_leftAlign + "]");
- }
-
- #endregion Public Instance Methods
-
#region Private Instance Fields
private int m_min = -1;
1.6 +6 -1 logging-log4net/src/Util/GlobalContextProperties.cs
Index: GlobalContextProperties.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/GlobalContextProperties.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- GlobalContextProperties.cs 17 Jan 2005 20:18:47 -0000 1.5
+++ GlobalContextProperties.cs 31 Jan 2005 22:56:49 -0000 1.6
@@ -64,8 +64,13 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="GlobalContextProperties" /> class.
+ /// Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="GlobalContextProperties" /> class.
+ /// </para>
+ /// </remarks>
internal GlobalContextProperties()
{
}
1.5 +21 -0 logging-log4net/src/Util/LevelMapping.cs
Index: LevelMapping.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/LevelMapping.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- LevelMapping.cs 17 Jan 2005 20:18:47 -0000 1.4
+++ LevelMapping.cs 31 Jan 2005 22:56:49 -0000 1.5
@@ -26,6 +26,12 @@
/// <summary>
/// Manages a mapping from levels to <see cref="LevelMappingEntry"/>
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Manages an ordered mapping from <see cref="Level"/> instances
+ /// to <see cref="LevelMappingEntry"/> subclasses.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public sealed class LevelMapping : IOptionHandler
{
@@ -34,6 +40,11 @@
/// <summary>
/// Default constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initialise a new instance of <see cref="LevelMapping"/>.
+ /// </para>
+ /// </remarks>
public LevelMapping()
{
}
@@ -67,6 +78,16 @@
/// </summary>
/// <param name="level">the level to lookup</param>
/// <returns>the <see cref="LevelMappingEntry"/> for the level or <c>null</c> if no mapping found</returns>
+ /// <remarks>
+ /// <para>
+ /// Lookup the value for the specified level. Finds the nearest
+ /// mapping value for the level that is equal to or less than the
+ /// <paramref name="level"/> specified.
+ /// </para>
+ /// <para>
+ /// If no mapping could be found then <c>null</c> is returned.
+ /// </para>
+ /// </remarks>
public LevelMappingEntry Lookup(Level level)
{
if (m_entries != null)
1.3 +14 -0 logging-log4net/src/Util/LevelMappingEntry.cs
Index: LevelMappingEntry.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/LevelMappingEntry.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LevelMappingEntry.cs 17 Jan 2005 20:18:47 -0000 1.2
+++ LevelMappingEntry.cs 31 Jan 2005 22:56:49 -0000 1.3
@@ -40,6 +40,11 @@
/// <summary>
/// Default protected constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Default protected constructor
+ /// </para>
+ /// </remarks>
protected LevelMappingEntry()
{
}
@@ -51,6 +56,15 @@
/// <summary>
/// The level that is the key for this mapping
/// </summary>
+ /// <value>
+ /// The <see cref="Level"/> that is the key for this mapping
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Get or set the <see cref="Level"/> that is the key for this
+ /// mapping subclass.
+ /// </para>
+ /// </remarks>
public Level Level
{
get { return m_level; }
1.6 +6 -0 logging-log4net/src/Util/LogLog.cs
Index: LogLog.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/LogLog.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LogLog.cs 17 Jan 2005 20:18:47 -0000 1.5
+++ LogLog.cs 31 Jan 2005 22:56:49 -0000 1.6
@@ -47,7 +47,9 @@
/// Initializes a new instance of the <see cref="LogLog" /> class.
/// </summary>
/// <remarks>
+ /// <para>
/// Uses a private access modifier to prevent instantiation of this class.
+ /// </para>
/// </remarks>
private LogLog()
{
@@ -367,8 +369,10 @@
/// </summary>
/// <param name="message">The message to log.</param>
/// <remarks>
+ /// <para>
/// Uses Console.Out for console output,
/// and Trace for OutputDebugString output.
+ /// </para>
/// </remarks>
private static void EmitOutLine(string message)
{
@@ -386,8 +390,10 @@
/// </summary>
/// <param name="message">The message to log.</param>
/// <remarks>
+ /// <para>
/// Use Console.Error for console output,
/// and Trace for OutputDebugString output.
+ /// </para>
/// </remarks>
private static void EmitErrorLine(string message)
{
1.3 +24 -2 logging-log4net/src/Util/LogicalThreadContextProperties.cs
Index: LogicalThreadContextProperties.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/LogicalThreadContextProperties.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LogicalThreadContextProperties.cs 17 Jan 2005 20:18:47 -0000 1.2
+++ LogicalThreadContextProperties.cs 31 Jan 2005 22:56:49 -0000 1.3
@@ -41,8 +41,13 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="LogicalThreadContextProperties" /> class.
+ /// Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LogicalThreadContextProperties" /> class.
+ /// </para>
+ /// </remarks>
internal LogicalThreadContextProperties()
{
}
@@ -57,10 +62,16 @@
/// <value>
/// The value for the property with the specified key
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Get or set the property value for the <paramref name="key"/> specified.
+ /// </para>
+ /// </remarks>
override public object this[string key]
{
get
{
+ // Don't create the dictionary if it does not already exist
PropertiesDictionary dictionary = GetProperties(false);
if (dictionary != null)
{
@@ -70,6 +81,7 @@
}
set
{
+ // Force the dictionary to be created
GetProperties(true)[key] = value;
}
}
@@ -82,6 +94,11 @@
/// Remove a property
/// </summary>
/// <param name="key">the key for the entry to remove</param>
+ /// <remarks>
+ /// <para>
+ /// Remove the value for the specified <paramref name="key"/> from the context.
+ /// </para>
+ /// </remarks>
public void Remove(string key)
{
PropertiesDictionary dictionary = GetProperties(false);
@@ -92,8 +109,13 @@
}
/// <summary>
- /// Clear the global context properties
+ /// Clear all the context properties
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Clear all the context properties
+ /// </para>
+ /// </remarks>
public void Clear()
{
PropertiesDictionary dictionary = GetProperties(false);
1.9 +31 -3 logging-log4net/src/Util/NativeError.cs
Index: NativeError.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/NativeError.cs,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- NativeError.cs 17 Jan 2005 20:18:47 -0000 1.8
+++ NativeError.cs 31 Jan 2005 22:56:49 -0000 1.9
@@ -33,6 +33,11 @@
/// <summary>
/// Represents a native error code and message.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Represents a Win32 platform native error.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public sealed class NativeError
@@ -45,6 +50,12 @@
/// </summary>
/// <param name="number">The number of the native error.</param>
/// <param name="message">The message of the native error.</param>
+ /// <remarks>
+ /// <para>
+ /// Create an instance of the <see cref="NativeError" /> class with the specified
+ /// error number and message.
+ /// </para>
+ /// </remarks>
private NativeError(int number, string message)
{
m_number = number;
@@ -61,6 +72,11 @@
/// <value>
/// The number of the native error.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the number of the native error.
+ /// </para>
+ /// </remarks>
public int Number
{
get { return m_number; }
@@ -72,6 +88,11 @@
/// <value>
/// The message of the native error.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// </para>
+ /// Gets the message of the native error.
+ /// </remarks>
public string Message
{
get { return m_message; }
@@ -122,13 +143,15 @@
/// Retrieves the message corresponding with a Win32 message identifier.
/// </summary>
/// <param name="messageId">Message identifier for the requested message.</param>
+ /// <returns>
+ /// The message corresponding with the specified message identifier.
+ /// </returns>
/// <remarks>
+ /// <para>
/// The message will be searched for in system message-table resource(s)
/// using the native <c>FormatMessage</c> function.
+ /// </para>
/// </remarks>
- /// <returns>
- /// The message corresponding with the specified message identifier.
- /// </returns>
public static string GetErrorMessage(int messageId)
{
// Win32 constants
@@ -179,6 +202,11 @@
/// Return error information string
/// </summary>
/// <returns>error information string</returns>
+ /// <remarks>
+ /// <para>
+ /// Return error information string
+ /// </para>
+ /// </remarks>
public override string ToString()
{
return string.Format(CultureInfo.InvariantCulture, "0x{0:x8}", this.Number) + (this.Message != null ? ": " + this.Message : "");
1.4 +61 -0 logging-log4net/src/Util/NullDictionaryEnumerator.cs
Index: NullDictionaryEnumerator.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/NullDictionaryEnumerator.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- NullDictionaryEnumerator.cs 17 Jan 2005 20:18:47 -0000 1.3
+++ NullDictionaryEnumerator.cs 31 Jan 2005 22:56:49 -0000 1.4
@@ -24,6 +24,12 @@
/// <summary>
/// An always empty <see cref="IDictionaryEnumerator"/>.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// A singleton implementation of the <see cref="IDictionaryEnumerator"/> over a collection
+ /// that is empty and not modifiable.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public sealed class NullDictionaryEnumerator : IDictionaryEnumerator
@@ -34,7 +40,9 @@
/// Initializes a new instance of the <see cref="NullDictionaryEnumerator" /> class.
/// </summary>
/// <remarks>
+ /// <para>
/// Uses a private access modifier to enforce the singleton pattern.
+ /// </para>
/// </remarks>
private NullDictionaryEnumerator()
{
@@ -48,6 +56,11 @@
/// Gets the singleton instance of the <see cref="NullDictionaryEnumerator" />.
/// </summary>
/// <returns>The singleton instance of the <see cref="NullDictionaryEnumerator" />.</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets the singleton instance of the <see cref="NullDictionaryEnumerator" />.
+ /// </para>
+ /// </remarks>
public static NullDictionaryEnumerator Instance
{
get { return s_instance; }
@@ -64,6 +77,15 @@
/// Throws an <see cref="InvalidOperationException" /> because the
/// <see cref="NullDictionaryEnumerator" /> never has a current value.
/// </remarks>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection its <see cref="Current"/>
+ /// value cannot be moved over a valid position, therefore <see cref="Current"/>
+ /// will throw an <see cref="InvalidOperationException"/>.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
+ /// cannot be positioned over a valid location.</exception>
public object Current
{
get { throw new InvalidOperationException(); }
@@ -73,6 +95,13 @@
/// Test if the enumerator can advance, if so advance.
/// </summary>
/// <returns><c>false</c> as the <see cref="NullDictionaryEnumerator" /> cannot advance.</returns>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection its <see cref="Current"/>
+ /// value cannot be moved over a valid position, therefore <see cref="MoveNext"/>
+ /// will always return <c>false</c>.
+ /// </para>
+ /// </remarks>
public bool MoveNext()
{
return false;
@@ -81,6 +110,11 @@
/// <summary>
/// Resets the enumerator back to the start.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection <see cref="Reset"/> does nothing.
+ /// </para>
+ /// </remarks>
public void Reset()
{
}
@@ -96,6 +130,15 @@
/// Throws an exception because the <see cref="NullDictionaryEnumerator" />
/// never has a current value.
/// </remarks>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection its <see cref="Current"/>
+ /// value cannot be moved over a valid position, therefore <see cref="Key"/>
+ /// will throw an <see cref="InvalidOperationException"/>.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
+ /// cannot be positioned over a valid location.</exception>
public object Key
{
get { throw new InvalidOperationException(); }
@@ -109,6 +152,15 @@
/// Throws an <see cref="InvalidOperationException" /> because the
/// <see cref="NullDictionaryEnumerator" /> never has a current value.
/// </remarks>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection its <see cref="Current"/>
+ /// value cannot be moved over a valid position, therefore <see cref="Value"/>
+ /// will throw an <see cref="InvalidOperationException"/>.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
+ /// cannot be positioned over a valid location.</exception>
public object Value
{
get { throw new InvalidOperationException(); }
@@ -121,6 +173,15 @@
/// Throws an <see cref="InvalidOperationException" /> because the
/// <see cref="NullDictionaryEnumerator" /> never has a current entry.
/// </remarks>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection its <see cref="Current"/>
+ /// value cannot be moved over a valid position, therefore <see cref="Entry"/>
+ /// will throw an <see cref="InvalidOperationException"/>.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
+ /// cannot be positioned over a valid location.</exception>
public DictionaryEntry Entry
{
get { throw new InvalidOperationException(); }
1.4 +34 -0 logging-log4net/src/Util/NullEnumerator.cs
Index: NullEnumerator.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/NullEnumerator.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- NullEnumerator.cs 17 Jan 2005 20:18:47 -0000 1.3
+++ NullEnumerator.cs 31 Jan 2005 22:56:49 -0000 1.4
@@ -24,6 +24,12 @@
/// <summary>
/// An always empty <see cref="IEnumerator"/>.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// A singleton implementation of the <see cref="IEnumerator"/> over a collection
+ /// that is empty and not modifiable.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public sealed class NullEnumerator : IEnumerator
@@ -34,7 +40,9 @@
/// Initializes a new instance of the <see cref="NullEnumerator" /> class.
/// </summary>
/// <remarks>
+ /// <para>
/// Uses a private access modifier to enforce the singleton pattern.
+ /// </para>
/// </remarks>
private NullEnumerator()
{
@@ -48,6 +56,11 @@
/// Get the singleton instance of the <see cref="NullEnumerator" />.
/// </summary>
/// <returns>The singleton instance of the <see cref="NullEnumerator" />.</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets the singleton instance of the <see cref="NullEnumerator" />.
+ /// </para>
+ /// </remarks>
public static NullEnumerator Instance
{
get { return s_instance; }
@@ -64,6 +77,15 @@
/// Throws an <see cref="InvalidOperationException" /> because the
/// <see cref="NullDictionaryEnumerator" /> never has a current value.
/// </remarks>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection its <see cref="Current"/>
+ /// value cannot be moved over a valid position, therefore <see cref="Current"/>
+ /// will throw an <see cref="InvalidOperationException"/>.
+ /// </para>
+ /// </remarks>
+ /// <exception cref="InvalidOperationException">The collection is empty and <see cref="Current"/>
+ /// cannot be positioned over a valid location.</exception>
public object Current
{
get { throw new InvalidOperationException(); }
@@ -73,6 +95,13 @@
/// Test if the enumerator can advance, if so advance
/// </summary>
/// <returns><c>false</c> as the <see cref="NullEnumerator" /> cannot advance.</returns>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection its <see cref="Current"/>
+ /// value cannot be moved over a valid position, therefore <see cref="MoveNext"/>
+ /// will always return <c>false</c>.
+ /// </para>
+ /// </remarks>
public bool MoveNext()
{
return false;
@@ -81,6 +110,11 @@
/// <summary>
/// Resets the enumerator back to the start.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// As the enumerator is over an empty collection <see cref="Reset"/> does nothing.
+ /// </para>
+ /// </remarks>
public void Reset()
{
}
1.3 +23 -1 logging-log4net/src/Util/NullSecurityContext.cs
Index: NullSecurityContext.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/NullSecurityContext.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NullSecurityContext.cs 17 Jan 2005 20:18:47 -0000 1.2
+++ NullSecurityContext.cs 31 Jan 2005 22:56:49 -0000 1.3
@@ -25,17 +25,34 @@
/// <summary>
/// A SecurityContext used when a SecurityContext is not required
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// The <see cref="NullSecurityContext"/> is a no-op implementation of the
+ /// <see cref="SecurityContext"/> base class. It is used where a <see cref="SecurityContext"/>
+ /// is required but one has not been provided.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public sealed class NullSecurityContext : SecurityContext
{
/// <summary>
- /// Singleton instance of NullSecurityContext
+ /// Singleton instance of <see cref="NullSecurityContext"/>
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Singleton instance of <see cref="NullSecurityContext"/>
+ /// </para>
+ /// </remarks>
public static readonly NullSecurityContext Instance = new NullSecurityContext();
/// <summary>
/// Private constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Private constructor for singleton pattern.
+ /// </para>
+ /// </remarks>
private NullSecurityContext()
{
}
@@ -45,6 +62,11 @@
/// </summary>
/// <param name="state">State supplied by the caller</param>
/// <returns><c>null</c></returns>
+ /// <remarks>
+ /// <para>
+ /// No impersonation is done and <c>null</c> is always returned.
+ /// </para>
+ /// </remarks>
public override IDisposable Impersonate(object state)
{
return null;
1.6 +40 -9 logging-log4net/src/Util/OnlyOnceErrorHandler.cs
Index: OnlyOnceErrorHandler.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/OnlyOnceErrorHandler.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- OnlyOnceErrorHandler.cs 17 Jan 2005 20:18:47 -0000 1.5
+++ OnlyOnceErrorHandler.cs 31 Jan 2005 22:56:49 -0000 1.6
@@ -43,18 +43,28 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="OnlyOnceErrorHandler" /> class.
+ /// Default Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="OnlyOnceErrorHandler" /> class.
+ /// </para>
+ /// </remarks>
public OnlyOnceErrorHandler()
{
m_prefix = "";
}
/// <summary>
- /// Initializes a new instance of the <see cref="OnlyOnceErrorHandler" /> class
- /// with the specified prefix.
+ /// Constructor
/// </summary>
/// <param name="prefix">The prefix to use for each message.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="OnlyOnceErrorHandler" /> class
+ /// with the specified prefix.
+ /// </para>
+ /// </remarks>
public OnlyOnceErrorHandler(string prefix)
{
m_prefix = prefix;
@@ -65,12 +75,17 @@
#region Implementation of IErrorHandler
/// <summary>
- /// Prints the message and the stack trace of the exception on the standard
- /// error output stream.
+ /// Log an Error
/// </summary>
/// <param name="message">The error message.</param>
/// <param name="e">The exception.</param>
/// <param name="errorCode">The internal error code.</param>
+ /// <remarks>
+ /// <para>
+ /// Prints the message and the stack trace of the exception on the standard
+ /// error output stream.
+ /// </para>
+ /// </remarks>
public void Error(string message, Exception e, ErrorCode errorCode)
{
if (IsEnabled)
@@ -80,11 +95,16 @@
}
/// <summary>
- /// Prints the message and the stack trace of the exception on the standard
- /// error output stream.
+ /// Log an Error
/// </summary>
/// <param name="message">The error message.</param>
/// <param name="e">The exception.</param>
+ /// <remarks>
+ /// <para>
+ /// Prints the message and the stack trace of the exception on the standard
+ /// error output stream.
+ /// </para>
+ /// </remarks>
public void Error(string message, Exception e)
{
if (IsEnabled)
@@ -94,10 +114,15 @@
}
/// <summary>
- /// Print a the error message passed as parameter on the standard
- /// error output stream.
+ /// Log an error
/// </summary>
/// <param name="message">The error message.</param>
+ /// <remarks>
+ /// <para>
+ /// Print a the error message passed as parameter on the standard
+ /// error output stream.
+ /// </para>
+ /// </remarks>
public void Error(string message)
{
if (IsEnabled)
@@ -111,6 +136,12 @@
/// <summary>
/// Is error logging enabled
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Is error logging enabled. Logging is only enabled for the
+ /// first error delivered to the <see cref="OnlyOnceErrorHandler"/>.
+ /// </para>
+ /// </remarks>
private bool IsEnabled
{
get
1.11 +37 -8 logging-log4net/src/Util/OptionConverter.cs
Index: OptionConverter.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/OptionConverter.cs,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- OptionConverter.cs 17 Jan 2005 20:18:47 -0000 1.10
+++ OptionConverter.cs 31 Jan 2005 22:56:49 -0000 1.11
@@ -30,6 +30,11 @@
/// <summary>
/// A convenience class to convert property values to specific types.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Utility functions for converting types and parsing values.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public sealed class OptionConverter
@@ -40,7 +45,9 @@
/// Initializes a new instance of the <see cref="OptionConverter" /> class.
/// </summary>
/// <remarks>
+ /// <para>
/// Uses a private access modifier to prevent instantiation of this class.
+ /// </para>
/// </remarks>
private OptionConverter()
{
@@ -128,12 +135,14 @@
/// </summary>
/// <param name="argValue">String to convert.</param>
/// <param name="defaultValue">The default value.</param>
+ /// <returns>The <see cref="bool" /> value of <paramref name="argValue" />.</returns>
/// <remarks>
+ /// <para>
/// If <paramref name="argValue"/> is "true", then <c>true</c> is returned.
/// If <paramref name="argValue"/> is "false", then <c>false</c> is returned.
/// Otherwise, <paramref name="defaultValue"/> is returned.
+ /// </para>
/// </remarks>
- /// <returns>The <see cref="bool" /> value of <paramref name="argValue" />.</returns>
public static bool ToBoolean(string argValue, bool defaultValue)
{
if (argValue != null && argValue.Length > 0)
@@ -155,11 +164,13 @@
// /// </summary>
// /// <param name="argValue">String to convert.</param>
// /// <param name="defaultValue">The default value.</param>
+// /// <returns>The <see cref="int" /> value of <paramref name="argValue" />.</returns>
// /// <remarks>
+// /// <para>
// /// <paramref name="defaultValue"/> is returned when <paramref name="argValue"/>
// /// cannot be converted to a <see cref="int" /> value.
+// /// </para>
// /// </remarks>
-// /// <returns>The <see cref="int" /> value of <paramref name="argValue" />.</returns>
// public static int ToInt(string argValue, int defaultValue)
// {
// if (argValue != null)
@@ -182,6 +193,7 @@
/// </summary>
/// <param name="argValue">String to parse.</param>
/// <param name="defaultValue">The default value.</param>
+ /// <returns>The <see cref="long" /> value of <paramref name="argValue" />.</returns>
/// <remarks>
/// <para>
/// Parses a file size of the form: number[KB|MB|GB] into a
@@ -192,7 +204,6 @@
/// cannot be converted to a <see cref="long" /> value.
/// </para>
/// </remarks>
- /// <returns>The <see cref="long" /> value of <paramref name="argValue" />.</returns>
public static long ToFileSize(string argValue, long defaultValue)
{
if (argValue == null)
@@ -245,6 +256,12 @@
/// The object converted from a string or <c>null</c> when the
/// conversion failed.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Converts a string to an object. Uses the converter registry to try
+ /// to convert the string value into the specified target type.
+ /// </para>
+ /// </remarks>
public static object ConvertStringTo(Type target, string txt)
{
if (target == null)
@@ -314,6 +331,11 @@
/// <param name="sourceType">The type to convert from.</param>
/// <param name="targetType">The type to convert to.</param>
/// <returns><c>true</c> if there is a conversion from the source type to the target type.</returns>
+ /// <remarks>
+ /// Checks if there is an appropriate type conversion from the source type to the target type.
+ /// <para>
+ /// </para>
+ /// </remarks>
public static bool CanConvertTypeTo(Type sourceType, Type targetType)
{
if (sourceType == null || targetType == null)
@@ -356,6 +378,11 @@
/// <param name="sourceInstance">The object to convert to the target type.</param>
/// <param name="targetType">The type to convert to.</param>
/// <returns>The converted object.</returns>
+ /// <remarks>
+ /// <para>
+ /// Converts an object to the target type.
+ /// </para>
+ /// </remarks>
public static object ConvertTypeTo(object sourceInstance, Type targetType)
{
Type sourceType = sourceInstance.GetType();
@@ -427,15 +454,17 @@
/// <param name="className">The fully qualified class name of the object to instantiate.</param>
/// <param name="superClass">The class to which the new object should belong.</param>
/// <param name="defaultValue">The object to return in case of non-fulfillment.</param>
+ /// <returns>
+ /// An instance of the <paramref name="className"/> or <paramref name="defaultValue"/>
+ /// if the object could not be instantiated.
+ /// </returns>
/// <remarks>
+ /// <para>
/// Checks that the <paramref name="className"/> is a subclass of
/// <paramref name="superClass"/>. If that test fails or the object could
/// not be instantiated, then <paramref name="defaultValue"/> is returned.
+ /// </para>
/// </remarks>
- /// <returns>
- /// An instance of the <paramref name="className"/> or <paramref name="defaultValue"/>
- /// if the object could not be instantiated.
- /// </returns>
public static object InstantiateByClassName(string className, Type superClass, object defaultValue)
{
if (className != null)
@@ -464,6 +493,7 @@
/// </summary>
/// <param name="value">The string on which variable substitution is performed.</param>
/// <param name="props">The dictionary to use to lookup variables.</param>
+ /// <returns>The result of the substitutions.</returns>
/// <remarks>
/// <para>
/// The variable substitution delimiters are <b>${</b> and <b>}</b>.
@@ -500,7 +530,6 @@
/// delimiter "${" which is not balanced by a stop delimiter "}".
/// </para>
/// </remarks>
- /// <returns>The result of the substitutions.</returns>
public static string SubstituteVariables(string value, System.Collections.IDictionary props)
{
StringBuilder buf = new StringBuilder();
1.7 +57 -6 logging-log4net/src/Util/PatternConverter.cs
Index: PatternConverter.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/PatternConverter.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- PatternConverter.cs 17 Jan 2005 20:18:47 -0000 1.6
+++ PatternConverter.cs 31 Jan 2005 22:56:49 -0000 1.7
@@ -32,9 +32,11 @@
/// derived classes need.
/// </summary>
/// <remarks>
+ /// <para>
/// Conversion specifiers in a conversion patterns are parsed to
/// individual PatternConverters. Each of which is responsible for
/// converting a logging event in a converter specific manner.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
@@ -43,8 +45,13 @@
#region Protected Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="PatternConverter" /> class.
+ /// Protected constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="PatternConverter" /> class.
+ /// </para>
+ /// </remarks>
protected PatternConverter()
{
}
@@ -54,16 +61,32 @@
#region Public Instance Properties
/// <summary>
- /// the next patter converter in the chain
+ /// Get the next pattern converter in the chain
/// </summary>
+ /// <value>
+ /// the next pattern converter in the chain
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Get the next pattern converter in the chain
+ /// </para>
+ /// </remarks>
public virtual PatternConverter Next
{
get { return m_next; }
}
/// <summary>
- /// The formatting info for this converter
+ /// Gets or sets the formatting info for this converter
/// </summary>
+ /// <value>
+ /// The formatting info for this converter
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the formatting info for this converter
+ /// </para>
+ /// </remarks>
public virtual FormattingInfo FormattingInfo
{
get { return new FormattingInfo(m_min, m_max, m_leftAlign); }
@@ -76,8 +99,16 @@
}
/// <summary>
+ /// Gets or sets the option value for this converter
+ /// </summary>
+ /// <summary>
/// The option for this converter
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the option value for this converter
+ /// </para>
+ /// </remarks>
public virtual string Option
{
get { return m_option; }
@@ -89,11 +120,16 @@
#region Protected Abstract Methods
/// <summary>
- /// Derived pattern converters must override this method in order to
- /// convert conversion specifiers in the correct way.
+ /// Evaluate this pattern converter and write the output to a writer.
/// </summary>
/// <param name="writer"><see cref="TextWriter" /> that will receive the formatted result.</param>
/// <param name="state">The state object on which the pattern converter should be executed.</param>
+ /// <remarks>
+ /// <para>
+ /// Derived pattern converters must override this method in order to
+ /// convert conversion specifiers in the appropriate way.
+ /// </para>
+ /// </remarks>
abstract protected void Convert(TextWriter writer, object state);
#endregion Protected Abstract Methods
@@ -106,8 +142,10 @@
/// <param name="patternConverter">the pattern converter that should follow this converter in the chain</param>
/// <returns>the next converter</returns>
/// <remarks>
+ /// <para>
/// The PatternConverter can merge with its neighbor during this method (or a sub class).
/// Therefore the return value may or may not be the value of the argument passed in.
+ /// </para>
/// </remarks>
public virtual PatternConverter SetNext(PatternConverter patternConverter)
{
@@ -116,10 +154,18 @@
}
/// <summary>
- /// A template method for formatting in a converter specific way.
+ /// Write the pattern converter to the writer with appropriate formatting
/// </summary>
/// <param name="writer"><see cref="TextWriter" /> that will receive the formatted result.</param>
/// <param name="state">The state object on which the pattern converter should be executed.</param>
+ /// <remarks>
+ /// <para>
+ /// This method calls <see cref="Convert"/> to allow the subclass to perform
+ /// appropriate conversion of the pattern converter. If formatting options have
+ /// been specified via the <see cref="FormattingInfo"/> then this method will
+ /// apply those formattings before writing the output.
+ /// </para>
+ /// </remarks>
virtual public void Format(TextWriter writer, object state)
{
if (m_min < 0 && m_max == int.MaxValue)
@@ -169,6 +215,11 @@
/// </summary>
/// <param name="writer"><see cref="TextWriter" /> to which the spaces will be appended.</param>
/// <param name="length">The number of spaces to be padded.</param>
+ /// <remarks>
+ /// <para>
+ /// Fast space padding method.
+ /// </para>
+ /// </remarks>
protected static void SpacePad(TextWriter writer, int length)
{
while(length >= 32)
1.8 +45 -7 logging-log4net/src/Util/PatternParser.cs
Index: PatternParser.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/PatternParser.cs,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PatternParser.cs 17 Jan 2005 20:18:47 -0000 1.7
+++ PatternParser.cs 31 Jan 2005 22:56:49 -0000 1.8
@@ -35,8 +35,10 @@
/// is delegated to the PatternParser class.
/// </summary>
/// <remarks>
+ /// <para>
/// The <c>PatternParser</c> processes a pattern string and
/// returns a chain of <see cref="PatternConverter"/> objects.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
@@ -45,10 +47,15 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="PatternParser" /> class
- /// with the specified pattern string.
+ /// Constructor
/// </summary>
/// <param name="pattern">The pattern to parse.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="PatternParser" /> class
+ /// with the specified pattern string.
+ /// </para>
+ /// </remarks>
public PatternParser(string pattern)
{
m_pattern = pattern;
@@ -62,6 +69,11 @@
/// Parses the pattern into a chain of pattern converters.
/// </summary>
/// <returns>The head of a chain of pattern converters.</returns>
+ /// <remarks>
+ /// <para>
+ /// Parses the pattern into a chain of pattern converters.
+ /// </para>
+ /// </remarks>
public PatternConverter Parse()
{
string[] converterNamesCache = BuildCache();
@@ -76,8 +88,16 @@
#region Public Instance Properties
/// <summary>
- /// The converter registry used by this parser
+ /// Get the converter registry used by this parser
/// </summary>
+ /// <value>
+ /// The converter registry used by this parser
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Get the converter registry used by this parser
+ /// </para>
+ /// </remarks>
public Hashtable PatternConverters
{
get { return m_patternConverters; }
@@ -91,6 +111,11 @@
/// Build the unified cache of converters from the static and instance maps
/// </summary>
/// <returns>the list of all the converter names</returns>
+ /// <remarks>
+ /// <para>
+ /// Build the unified cache of converters from the static and instance maps
+ /// </para>
+ /// </remarks>
private string[] BuildCache()
{
string[] converterNamesCache = new string[m_patternConverters.Keys.Count];
@@ -102,10 +127,17 @@
return converterNamesCache;
}
+ #region StringLengthComparer
+
/// <summary>
- /// IComparer that orders strings by string length.
- /// The longest strings are placed first
+ /// Sort strings by length
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// <see cref="IComparer" /> that orders strings by string length.
+ /// The longest strings are placed first
+ /// </para>
+ /// </remarks>
private sealed class StringLengthComparer : IComparer
{
public static readonly StringLengthComparer Instance = new StringLengthComparer();
@@ -140,13 +172,17 @@
#endregion
}
+ #endregion // StringLengthComparer
+
/// <summary>
/// Internal method to parse the specified pattern to find specified matches
/// </summary>
/// <param name="pattern">the pattern to parse</param>
/// <param name="matches">the converter names to match in the pattern</param>
/// <remarks>
+ /// <para>
/// The matches param must be sorted such that longer strings come before shorter ones.
+ /// </para>
/// </remarks>
private void ParseInternal(string pattern, string[] matches)
{
@@ -369,10 +405,12 @@
private string m_pattern;
/// <summary>
- /// Internal map of converter identifiers to converter types.
+ /// Internal map of converter identifiers to converter types
/// </summary>
/// <remarks>
- /// This map overrides the static s_globalRulesRegistry map
+ /// <para>
+ /// This map overrides the static s_globalRulesRegistry map.
+ /// </para>
/// </remarks>
private Hashtable m_patternConverters = new Hashtable();
1.12 +66 -5 logging-log4net/src/Util/PatternString.cs
Index: PatternString.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/PatternString.cs,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- PatternString.cs 31 Jan 2005 02:32:10 -0000 1.11
+++ PatternString.cs 31 Jan 2005 22:56:49 -0000 1.12
@@ -306,8 +306,13 @@
#region Constructors
/// <summary>
- /// Constructs a PatternString
+ /// Default constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initialize a new instance of <see cref="PatternString"/>
+ /// </para>
+ /// </remarks>
public PatternString()
{
}
@@ -316,6 +321,11 @@
/// Constructs a PatternString
/// </summary>
/// <param name="pattern">The pattern to use with this PatternString</param>
+ /// <remarks>
+ /// <para>
+ /// Initialize a new instance of <see cref="PatternString"/> with the pattern specified.
+ /// </para>
+ /// </remarks>
public PatternString(string pattern)
{
m_pattern = pattern;
@@ -325,10 +335,18 @@
#endregion
/// <summary>
+ /// Gets or sets the pattern formatting string
+ /// </summary>
+ /// <value>
+ /// The pattern formatting string
+ /// </value>
+ /// <remarks>
+ /// <para>
/// The <b>ConversionPattern</b> option. This is the string which
/// controls formatting and consists of a mix of literal content and
/// conversion specifiers.
- /// </summary>
+ /// </para>
+ /// </remarks>
public string ConversionPattern
{
get { return m_pattern; }
@@ -361,12 +379,17 @@
#endregion
/// <summary>
+ /// Create the <see cref="PatternParser"/> used to parse the pattern
+ /// </summary>
+ /// <param name="pattern">the pattern to parse</param>
+ /// <returns>The <see cref="PatternParser"/></returns>
+ /// <remarks>
+ /// <para>
/// Returns PatternParser used to parse the conversion string. Subclasses
/// may override this to return a subclass of PatternParser which recognize
/// custom conversion characters.
- /// </summary>
- /// <param name="pattern">the pattern to parse</param>
- /// <returns></returns>
+ /// </para>
+ /// </remarks>
private PatternParser CreatePatternParser(string pattern)
{
PatternParser patternParser = new PatternParser(pattern);
@@ -389,6 +412,11 @@
/// Produces a formatted string as specified by the conversion pattern.
/// </summary>
/// <param name="writer">The TextWriter to write the formatted event to</param>
+ /// <remarks>
+ /// <para>
+ /// Format the pattern to the <paramref name="writer"/>.
+ /// </para>
+ /// </remarks>
public void Format(TextWriter writer)
{
if (writer == null)
@@ -410,6 +438,11 @@
/// Format the pattern as a string
/// </summary>
/// <returns>the pattern formatted as a string</returns>
+ /// <remarks>
+ /// <para>
+ /// Format the pattern to a string.
+ /// </para>
+ /// </remarks>
public string Format()
{
StringWriter writer = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
@@ -422,8 +455,10 @@
/// </summary>
/// <param name="converterInfo">the converter info</param>
/// <remarks>
+ /// <para>
/// This version of the method is used by the configurator.
/// Programmatic users should use the alternative <see cref="AddConverter(string,Type)"/> method.
+ /// </para>
/// </remarks>
public void AddConverter(ConverterInfo converterInfo)
{
@@ -435,6 +470,11 @@
/// </summary>
/// <param name="name">the name of the conversion pattern for this converter</param>
/// <param name="type">the type of the converter</param>
+ /// <remarks>
+ /// <para>
+ /// Add a converter to this PatternString
+ /// </para>
+ /// </remarks>
public void AddConverter(string name, Type type)
{
if (name == null) throw new ArgumentNullException("name");
@@ -450,6 +490,11 @@
/// <summary>
/// Wrapper class used to map converter names to converter types
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Wrapper class used to map converter names to converter types
+ /// </para>
+ /// </remarks>
public sealed class ConverterInfo
{
private string m_name;
@@ -465,6 +510,14 @@
/// <summary>
/// Gets or sets the name of the conversion pattern
/// </summary>
+ /// <value>
+ /// The name of the conversion pattern
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the name of the conversion pattern
+ /// </para>
+ /// </remarks>
public string Name
{
get { return m_name; }
@@ -474,6 +527,14 @@
/// <summary>
/// Gets or sets the type of the converter
/// </summary>
+ /// <value>
+ /// The type of the converter
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets or sets the type of the converter
+ /// </para>
+ /// </remarks>
public Type Type
{
get { return m_type; }