<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Gemstone.IO</name>
    </assembly>
    <members>
        <member name="T:Gemstone.IO.CachedFileStream">
            <summary>
            Represents a file stream that caches recently used blocks in memory.
            </summary>
            <remarks>
            <para>
            This class was developed as a wrapper around <see cref="T:System.IO.FileStream"/> with the same
            basic functionality. This stream treats the file as a collection of contiguous blocks which can
            be loaded into an in-memory lookup table to greatly improve seek times. This class generally
            performs significantly better than the standard FileStream class when maintaining multiple
            file pointers and frequently seeking back and forth between them. For an example of a good
            use-case, consider copying a list of serialized objects from one location in the file to another
            without loading the whole list into memory.
            </para>
            
            <para>
            This class likely will not perform significantly better or worse than the standard FileStream
            when performing strictly sequential reads or writes. For an example of a bad use-case, consider
            reading a list of objects into memory or simply appending new data to the end of the file. In
            both of these cases, it may be better to use the standard FileStream for less memory overhead
            and more predictable flush behavior.
            </para>
            
            <para>
            Blocks are loaded into memory as they are used (for read/write operations) and will be kept in
            memory for as long as possible. Blocks can only be flushed from the cache by decreasing the
            cache size or by accessing a non-cached block when the cache is already full. In these cases,
            a least recently used algorithm is executed to determine which blocks should be removed from
            the cache either to decrease the size of the cache or to make room for a new block.
            </para>
            
            <para>
            Write operations are also cached such that they will not be committed to the file until the
            block is removed from the cache or a call to <see cref="M:Gemstone.IO.CachedFileStream.Flush"/> has been made. This can
            have some additional implications as compared to the standard FileStream. For instance,
            write operations may not be committed to the file in the order in which they were executed.
            Users of this class will need to be judicious about when and how often they call Flush.
            </para>
            </remarks>
        </member>
        <member name="F:Gemstone.IO.CachedFileStream.DefaultBlockSize">
            <summary>
            Default value for the <see cref="P:Gemstone.IO.CachedFileStream.BlockSize"/> property.
            </summary>
        </member>
        <member name="F:Gemstone.IO.CachedFileStream.DefaultCacheSize">
            <summary>
            Default value for the <see cref="P:Gemstone.IO.CachedFileStream.CacheSize"/> property.
            </summary>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> contains an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> or <paramref name="access"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <param name="useAsync">Specifies whether to use asynchronous I/O or synchronous I/O. However, note that the underlying operating system might not support asynchronous I/O, so when specifying true, the handle might be opened synchronously depending on the platform. When opened asynchronously, the <see cref="M:System.IO.FileStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)"/> and <see cref="M:System.IO.FileStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)"/> methods perform better on large reads or writes, but they might be much slower for small reads or writes. If the application is designed to take advantage of asynchronous I/O, set the <paramref name="useAsync"/> parameter to true. Using asynchronous I/O correctly can speed up applications by as much as a factor of 10, but using it without redesigning the application for asynchronous I/O can decrease performance by as much as a factor of 10.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <param name="options">A value that specifies additional file options.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access. -or-<see cref="F:System.IO.FileOptions.Encrypted"/> is specified for <paramref name="options"/>, but file encryption is not supported on the current platform.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="P:Gemstone.IO.CachedFileStream.BlockSize">
            <summary>
            Gets the size of the cached blocks.
            </summary>
        </member>
        <member name="P:Gemstone.IO.CachedFileStream.CacheSize">
            <summary>
            Gets or sets the maximum size of the cache.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Cache size is set to a value less than zero.</exception>
        </member>
        <member name="P:Gemstone.IO.CachedFileStream.CanRead">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports reading.
            </summary>
            <returns>
            true if the stream supports reading; otherwise, false.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Gemstone.IO.CachedFileStream.CanWrite">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports writing.
            </summary>
            <returns>
            true if the stream supports writing; otherwise, false.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Gemstone.IO.CachedFileStream.CanSeek">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports seeking.
            </summary>
            <returns>
            true if the stream supports seeking; otherwise, false.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Gemstone.IO.CachedFileStream.Position">
            <summary>
            When overridden in a derived class, gets or sets the position within the current stream.
            </summary>
            <returns>
            The current position within the stream.
            </returns>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:Gemstone.IO.CachedFileStream.Length">
            <summary>
            When overridden in a derived class, gets the length in bytes of the stream.
            </summary>
            <returns>
            A long value representing the length of the stream in bytes.
            </returns>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            When overridden in a derived class, sets the position within the current stream.
            </summary>
            <returns>
            The new position within the current stream.
            </returns>
            <param name="offset">A byte offset relative to the <paramref name="origin"/> parameter.</param>
            <param name="origin">A value of type <see cref="T:System.IO.SeekOrigin"/> indicating the reference point used to obtain the new position.</param>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
            </summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified byte array with the values between <paramref name="offset"/> and (<paramref name="offset"/> + <paramref name="count"/> - 1) replaced by the bytes read from the current source. </param><param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin storing the data read from the current stream. </param><param name="count">The maximum number of bytes to be read from the current stream. </param>
            <returns>
            The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="offset"/> and <paramref name="count"/> describe an invalid range in <paramref name="buffer"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> or <paramref name="count"/> is negative.</exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <exception cref="T:System.NotSupportedException">The stream does not support reading.</exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
            </summary>
            <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from <paramref name="buffer"/> to the current stream. </param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin copying bytes to the current stream. </param>
            <param name="count">The number of bytes to be written to the current stream. </param>
            <exception cref="T:System.ArgumentException"><paramref name="offset"/> and <paramref name="count"/> describe an invalid range in <paramref name="buffer"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> or <paramref name="count"/> is negative.</exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <exception cref="T:System.NotSupportedException">The stream does not support writing.</exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.Flush">
            <summary>
            Clears buffers for this stream and causes any buffered data to be written to the file.
            </summary>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.Flush(System.Boolean)">
            <summary>
            Clears buffers for this stream and causes any buffered data to be written to the file,
            and also clears all intermediate file buffers.
            </summary>
            <param name="flushToDisk">true to flush all intermediate file buffers; otherwise, false.</param>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.SetLength(System.Int64)">
            <summary>
            When overridden in a derived class, sets the length of the current stream.
            </summary>
            <param name="value">The desired length of the current stream in bytes.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Attempted to set the <paramref name="value"/> parameter to less than 0.</exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <exception cref="T:System.NotSupportedException">The stream does not support both writing and seeking.</exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Gemstone.IO.CachedFileStream.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:System.IO.Stream"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="T:Gemstone.IO.Checksums.Adler32">
            <summary>
            Generates an Adler-32 checksum calculation.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Adler32.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Checksums.Adler32"/> class.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Checksums.Adler32.Value">
            <summary>
            Returns the Adler-32 data checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Adler32.Reset">
            <summary>
            Resets the Adler-32 data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Adler32.Update(System.Byte)">
            <summary>
            Updates the checksum with the byte value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Adler32.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Adler32.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name="buffer">The buffer which contains the data</param>
            <param name="offset">The offset in the buffer where the data starts</param>
            <param name="count">The number of data bytes to update the checksum with.</param>
        </member>
        <member name="T:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions">
            <summary>Defines extension functions related to computing checksums.</summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.Adler32Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the Adler-32 checksum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform checksum on.</param>
            <param name="startIndex">Starts index in data buffer to begin checksum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform checksum over.</param>
            <returns>Computed Adler-32 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.Crc16Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC16 check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC16 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.CrcCCITTChecksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC-CCITT check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC-CCITT checksum over the specified portion of the buffer.</returns>
            <remarks>
            The CRC-CCITT is a table based 16-bit CRC popular for modem protocols defined for use by the
            Consultative Committee on International Telegraphy and Telephony (CCITT) 
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.ModBusCrcChecksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC-ModBus check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC-ModBus checksum over the specified portion of the buffer.</returns>		
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.Crc32Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC32 check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC32 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.Xor8Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates byte length (8-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum over.</param>
            <returns>Byte length XOR check-sum.</returns>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.Xor16Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates word length (16-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum overs</param>
            <returns>Word length XOR check-sum.</returns>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.Xor32Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates double-word length (32-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum over.</param>
            <returns>Double-word length XOR check-sum.</returns>
        </member>
        <member name="M:Gemstone.IO.Checksums.ChecksumExtensions.ChecksumExtensions.Xor64Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates quad-word length (64-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum over.</param>
            <returns>Quad-word length XOR check-sum.</returns>
        </member>
        <member name="T:Gemstone.IO.Checksums.ChecksumType">
            <summary>
            Indicates type of CRC-16 calculation performed.
            </summary>
        </member>
        <member name="F:Gemstone.IO.Checksums.ChecksumType.Crc16">
            <summary>
            Regular CRC-16 calculation.
            </summary>
        </member>
        <member name="F:Gemstone.IO.Checksums.ChecksumType.ModBus">
            <summary>
            ModBus CRC-16 calculation.
            </summary>
        </member>
        <member name="T:Gemstone.IO.Checksums.Crc16">
            <summary>
            Generates a byte-wise 16-bit CRC calculation.
            </summary>
            <remarks>
            <para>2-byte (16-bit) CRC: The generating polynomial is</para>
            <para>        16   15   2    1</para>
            <para>G(X) = X  + X  + X  + X</para>
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc16.#ctor">
            <summary>
            Creates a new instance of the Crc16 class.
            The checksum starts off with a value of 0x0000.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc16.#ctor(Gemstone.IO.Checksums.ChecksumType)">
            <summary>
            Creates a new instance of the Crc16 class.
            </summary>
            <param name="checksumType">
            Type of calculation to perform, CRC-16 or ModBus.
            </param>
        </member>
        <member name="P:Gemstone.IO.Checksums.Crc16.Value">
            <summary>
            Returns the CRC-16 data checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc16.Reset">
            <summary>
            Resets the CRC-16 data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc16.Reset(Gemstone.IO.Checksums.ChecksumType)">
            <summary>
            Resets the CRC-16 data checksum as if no update was ever called.
            </summary>
            <param name="checksumType">Type of CRC calculation. CRC-16 resets to 0x0000, ModBus resets to 0xFFFF</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc16.Update(System.Byte)">
            <summary>
            Updates the checksum with the byte value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc16.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc16.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name="buffer">The buffer which contains the data</param>
            <param name="offset">The offset in the buffer where the data starts</param>
            <param name="count">The number of data bytes to update the CRC with.</param>
        </member>
        <member name="T:Gemstone.IO.Checksums.Crc32">
            <summary>
            Generates a byte-wise 32-bit CRC calculation.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Checksums.Crc32.Value">
            <summary>
            Returns the CRC-32 data checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc32.Reset">
            <summary>
            Resets the CRC-32 data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc32.Update(System.Int32)">
            <summary>
            Updates the checksum with the integer value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc32.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc32.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name="buffer">The buffer which contains the data</param>
            <param name="offset">The offset in the buffer where the data starts</param>
            <param name="count">The number of data bytes to update the CRC with.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Crc32.Compute(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC32 check-sum on specified portion of a buffer.</summary>
            <param name="buffer">Data buffer to perform check-sum on.</param>
            <param name="offset">Starts index in data buffer to begin check-sum.</param>
            <param name="count">Total number of bytes from <paramref name="offset">offset</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC32 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="T:Gemstone.IO.Checksums.CrcCCITT">
            <summary>Generates a 16-bit CRC-CCITT checksum.</summary>
            <remarks>
            This is a table based 16-bit CRC popular for modem protocols defined for use by the
            Consultative Committee on International Telegraphy and Telephony (CCITT) 
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Checksums.CrcCCITT.#ctor">
            <summary>
            Creates a new instance of the CrcCCITT class.
            The checksum starts off with a value of 0xFFFF.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Checksums.CrcCCITT.Value">
            <summary>
            Returns the CRCCCITT data checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.CrcCCITT.Reset">
            <summary>
            Resets the CRC-CCITT data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.CrcCCITT.Update(System.Byte)">
            <summary>
            Updates the checksum with the byte value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.CrcCCITT.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.CrcCCITT.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name = "buffer">The buffer which contains the data</param>
            <param name = "offset">The offset in the buffer where the data starts</param>
            <param name = "count">The number of data bytes to update the CRC with.</param>
        </member>
        <member name="T:Gemstone.IO.Checksums.NamespaceDoc">
            <summary>
            Contains classes and extension functions used to calculate standard checksums and CRC’s.
            </summary>
        </member>
        <member name="T:Gemstone.IO.Checksums.Xor16">
            <summary>Calculates word length (16-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor16.#ctor">
            <summary>
            Creates a new instance of the Xor16Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Checksums.Xor16.Value">
            <summary>
            Returns the Xor 16-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor16.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor16.Update(System.UInt16)">
            <summary>
            Updates the checksum with a ushort value.
            </summary>
            <param name="value">The <see cref="T:System.UInt16"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor16.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor16.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:Gemstone.IO.Checksums.Xor32">
            <summary>Calculates double-word length (32-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor32.#ctor">
            <summary>
            Creates a new instance of the Xor32Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Checksums.Xor32.Value">
            <summary>
            Returns the Xor 32-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor32.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor32.Update(System.UInt32)">
            <summary>
            Updates the checksum with a uint value.
            </summary>
            <param name="value">The <see cref="T:System.UInt32"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor32.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor32.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:Gemstone.IO.Checksums.Xor64">
            <summary>Calculates quad-word length (64-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor64.#ctor">
            <summary>
            Creates a new instance of the Xor64Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Checksums.Xor64.Value">
            <summary>
            Returns the Xor 64-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor64.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor64.Update(System.UInt64)">
            <summary>
            Updates the checksum with a ulong value.
            </summary>
            <param name="value">The <see cref="T:System.UInt64"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor64.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor64.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:Gemstone.IO.Checksums.Xor8">
            <summary>Calculates byte length (8-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor8.#ctor">
            <summary>
            Creates a new instance of the Xor8Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Checksums.Xor8.Value">
            <summary>
            Returns the Xor 8-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor8.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor8.Update(System.Byte)">
            <summary>
            Updates the checksum with a byte value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor8.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:Gemstone.IO.Checksums.Xor8.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:Gemstone.IO.Collections.FileBackedDictionary`2">
            <summary>
            Represents a lookup table of key/value pairs backed by a file, with very little memory overhead.
            </summary>
            <typeparam name="TKey">The type of the keys in the lookup table.</typeparam>
            <typeparam name="TValue">The type of the values in the lookup table.</typeparam>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor(System.String,System.Collections.Generic.IDictionary{`0,`1})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor(System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`2.#ctor(System.String,System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="T:Gemstone.IO.Collections.FileBackedDictionary`4">
            <summary>
            Represents a lookup table of key/value pairs backed by a file, with very little memory overhead.
            </summary>
            <typeparam name="TKey">The type of the keys in the lookup table.</typeparam>
            <typeparam name="TValue">The type of the values in the lookup table.</typeparam>
            <typeparam name="TKeyElem">The element type of <typeparamref name="TKey"/> when it is a <see cref="T:System.Collections.IList"/> type; otherwise, <see cref="T:System.Object"/>.</typeparam>
            <typeparam name="TValueElem">The element type of <typeparamref name="TValue"/> when it is a <see cref="T:System.Collections.IList"/> type; otherwise, <see cref="T:System.Object"/>.</typeparam>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor(System.String,System.Collections.Generic.IDictionary{`0,`1})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor(System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.#ctor(System.String,System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.FilePath">
            <summary>
            Gets or sets the path to the file backing this dictionary.
            </summary>
            <exception cref="T:System.ArgumentException">FilePath is set and is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            Changes to this property will cause the file to close if the file is already opened.
            Data will not be automatically written from the old file to the new file.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only.
            </summary>
            <returns>
            true if the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.DefaultSignature">
            <summary>
            Gets the default signature used by the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>
            if no user-defined signature is supplied.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.Signature">
            <summary>
            Gets or sets the signature of the file backing the lookup table.
            </summary>
            <exception cref="T:System.ArgumentNullException">Attempt is made to set Signature to a null value.</exception>
            <exception cref="T:System.ArgumentException">Attempt is made to set Signature to a value larger than the maximum allowed size.</exception>
            <exception cref="T:System.NotSupportedException">Attempt is made to modify Signature of a read-only lookup table.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.Item(`0)">
            <summary>
            Gets or sets the element with the specified key.
            </summary>
            <returns>
            The element with the specified key.
            </returns>
            <param name="key">The key of the element to get or set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/> is not found.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.Keys">
            <summary>
            Gets an <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> containing the keys of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            An <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> containing the keys of the object that implements <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.Values">
            <summary>
            Gets an <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> containing the values in the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            An <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> containing the values in the object that implements <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.CacheSize">
            <summary>
            Gets or sets the size of the cache used
            to store data from the file in memory.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedDictionary`4.FragmentationCount">
            <summary>
            Gets the number of operations that fragment the
            lookup table that have occurred since the last
            time the lookup table was compacted.
            </summary>
            <remarks>
            This value is not stored in the file and may therefore
            be inaccurate if the lookup table has not been compacted
            since the last time it was opened.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Open">
            <summary>
            Opens the file backing this dictionary.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.OpenRead">
            <summary>
            Opens the file backing this hash set in read-only mode.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Add(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Adds an item to the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            true if the element is successfully removed; otherwise, false.
            This method also returns false if <paramref name="key"/> was not
            found in the original <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </returns>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>;
            otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </returns>
            <param name="item">The object to remove from the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.ContainsKey(`0)">
            <summary>
            Determines whether the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> contains an element with the specified key.
            </summary>
            <returns>
            true if the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> contains an element with the key; otherwise, false.
            </returns>
            <param name="key">The key to locate in the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Determines whether the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> contains a specific value.
            </summary>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.</param>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <returns>
            true if the object that implements <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> contains an element with the specified key; otherwise, false.
            </returns>
            <param name="key">The key whose value to get.</param>
            <param name="value">When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Clear">
            <summary>
            Removes all items from the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is read-only. </exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.GetKeys">
            <summary>
            Gets an enumerable used to iterate only the keys in the dictionary.
            </summary>
            <returns>An enumerable used to iterate only the keys in the dictionary.</returns>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.GetValues">
            <summary>
            Gets an enumerable used to iterate only the values in the dictionary.
            </summary>
            <returns>An enumerable used to iterate only the values in the dictionary.</returns>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Compact">
            <summary>
            Defragments the item section of the dictionary,
            which gets fragmented after removing keys or updating values.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Close">
            <summary>
            Closes the file backing this dictionary.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:Gemstone.IO.Collections.FileBackedDictionary`2"/> object.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedDictionary`4.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:Gemstone.IO.Collections.FileBackedHashSet`1">
            <summary>
            Represents a lookup table backed by a file, with very little memory overhead.
            </summary>
            <typeparam name="T">The type of the items in the lookup table.</typeparam>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor(System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor(System.String,System.Collections.Generic.IEnumerable{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`1.#ctor(System.String,System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <inheritdoc />
        </member>
        <member name="T:Gemstone.IO.Collections.FileBackedHashSet`2">
            <summary>
            Represents a lookup table backed by a file, with very little memory overhead.
            </summary>
            <typeparam name="T">The type of the items in the lookup table.</typeparam>
            <typeparam name="TElem">The element type of <typeparamref name="T"/> when it is a <see cref="T:System.Collections.IList"/> type; otherwise, <see cref="T:System.Object"/>.</typeparam>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor(System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor(System.String,System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.#ctor(System.String,System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedHashSet`2.FilePath">
            <summary>
            Gets or sets the path to the file backing this hash set.
            </summary>
            <exception cref="T:System.ArgumentException">FilePath is set and is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            Changes to this property will cause the file to close if the file is already opened.
            Data will not be automatically written from the old file to the new file.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedHashSet`2.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedHashSet`2.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.
            </summary>
            <returns>
            true if the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedHashSet`2.DefaultSignature">
            <summary>
            Gets the default signature used by the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>
            if no user-defined signature is supplied.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedHashSet`2.Signature">
            <summary>
            Gets or sets the signature of the file backing the lookup table.
            </summary>
            <exception cref="T:System.ArgumentNullException">Attempt is made to set Signature to a null value.</exception>
            <exception cref="T:System.ArgumentException">Attempt is made to set Signature to a value larger than the maximum allowed size.</exception>
            <exception cref="T:System.NotSupportedException">Attempt is made to modify Signature of a read-only lookup table.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedHashSet`2.CacheSize">
            <summary>
            Gets or sets the size of the cache used
            to store data from the file in memory.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedHashSet`2.FragmentationCount">
            <summary>
            Gets the number of operations that fragment the
            lookup table that have occurred since the last
            time the lookup table was compacted.
            </summary>
            <remarks>
            This value is not stored in the file and may therefore
            be inaccurate if the lookup table has not been compacted
            since the last time it was opened.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Open">
            <summary>
            Opens the file backing this hash set.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.OpenRead">
            <summary>
            Opens the file backing this hash set in read-only mode.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Add(`0)">
            <summary>
            Adds an element to the current set and returns a value to indicate if the element was successfully added. 
            </summary>
            <param name="item">The element to add to the set.</param>
            <returns>
            true if the element is added to the set; false if the element is already in the set.
            </returns>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.</param>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.
            </returns>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.RemoveWhere(System.Predicate{`0})">
            <summary>
            Removes all elements that match the conditions defined by the specified predicate from a <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> collection.
            </summary>
            <param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions of the elements to remove.</param>
            <returns>The number of elements that were removed from the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> collection.</returns>
            <exception cref="T:System.ArgumentNullException">match is null</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Contains(`0)">
            <summary>
            Determines whether the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> contains a specific value.
            </summary>
            <param name="item">The object to locate in the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.</param>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>; otherwise, false.
            </returns>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.UnionWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Modifies the current set so that it contains all elements that are present in either the current set or the specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Modifies the current set so that it contains only elements that are also in a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Removes all elements in the specified collection from the current set.
            </summary>
            <param name="other">The collection of items to remove from the set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Modifies the current set so that it contains only elements that are present
            either in the current set or in the specified collection, but not both. 
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether a set is a subset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is a subset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set is a superset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is a superset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set is a proper (strict) superset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set. </param>
            <returns>
            true if the current set is a proper superset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set is a proper (strict) subset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is a proper subset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Overlaps(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set overlaps with the specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.SetEquals(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set and the specified collection contain the same elements.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is equal to <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Clear">
            <summary>
            Removes all items from the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Compact">
            <summary>
            Defragments the item section of the hash set,
            which gets fragmented after removing items.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Close">
            <summary>
            Closes the file backing this hash set.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> object.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.System#Collections#Generic#ICollection{T}#Add(`0)">
            <summary>
            Adds an item to the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedHashSet`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="F:Gemstone.IO.Collections.LookupTableType.Dictionary">
            <summary>
            Dictionary with keys and values in the item nodes.
            </summary>
        </member>
        <member name="F:Gemstone.IO.Collections.LookupTableType.HashSet">
            <summary>
            HashSet with lookup node markers for set operations.
            </summary>
        </member>
        <member name="F:Gemstone.IO.Collections.FileBackedLookupTable`4.DictionarySignature">
            <summary>
            Defines signature for dictionaries.
            </summary>
        </member>
        <member name="F:Gemstone.IO.Collections.FileBackedLookupTable`4.HashSetSignature">
            <summary>
            Defines signature for hash sets.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.#ctor(Gemstone.IO.Collections.LookupTableType)">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.#ctor(Gemstone.IO.Collections.LookupTableType,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.#ctor(Gemstone.IO.Collections.LookupTableType,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the lookup table.</param>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.#ctor(Gemstone.IO.Collections.LookupTableType,System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedLookupTable`4.FilePath">
            <summary>
            Gets or sets the path to the file backing this lookup table.
            </summary>
            <exception cref="T:System.ArgumentException">FilePath contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            Changes to this property will cause the file to close if the file is already opened.
            Data will not be automatically written from the old file to the new file.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedLookupTable`4.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedLookupTable`4.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.
            </summary>
            <returns>
            true if the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedLookupTable`4.Signature">
            <summary>
            Gets or sets the signature of the file backing the lookup table.
            </summary>
            <exception cref="T:System.ArgumentNullException">Attempt is made to set Signature to a null value.</exception>
            <exception cref="T:System.ArgumentException">Attempt is made to set Signature to a value larger than the maximum allowed size.</exception>
            <exception cref="T:System.NotSupportedException">Attempt is made to modify Signature of a read-only lookup table.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedLookupTable`4.Item(`0)">
            <summary>
            Gets or sets the element with the specified key.
            </summary>
            <returns>
            The element with the specified key.
            </returns>
            <param name="key">The key of the element to get or set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/> is not found.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedLookupTable`4.CacheSize">
            <summary>
            Gets or sets the size of the cache used
            to store data from the file in memory.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.FileBackedLookupTable`4.FragmentationCount">
            <summary>
            Gets the number of operations that fragment the
            lookup table that have occurred since the last
            time the lookup table was compacted.
            </summary>
            <remarks>
            This value is not stored in the file and may therefore
            be inaccurate if the lookup table has not been compacted
            since the last time it was opened.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.Open">
            <summary>
            Opens the file backing this lookup table.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.OpenRead">
            <summary>
            Opens the file backing this lookup table in read-only mode.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open or the file has a pending transaction that could not be completed.</exception>
            <exception cref="T:System.FormatException">The format of the file is invalid.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.Add(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.TryAdd(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <returns>True if the item was successfully added; false otherwise.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.
            </summary>
            <returns>
            true if the element is successfully removed; otherwise, false.
            This method also returns false if <paramref name="key"/> was not
            found in the original <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.
            </returns>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.TryMark(`0)">
            <summary>
            Attempts to find the lookup node for the corresponding
            key and, if found, marks the lookup node.
            </summary>
            <param name="key">The key used to find the lookup node to be marked.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.AllMarked">
            <summary>
            Determines whether all occupied lookup nodes are marked.
            </summary>
            <returns>True if all occupied lookup nodes are marked; false otherwise.</returns>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.RemoveMarked">
            <summary>
            Removes all unmarked nodes from the hash set.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.RemoveUnmarked">
            <summary>
            Removes all unmarked nodes from the hash set.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.UnmarkAll">
            <summary>
            Unmarks all lookup nodes in the hash set.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.ContainsKey(`0)">
            <summary>
            Determines whether the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> contains an element with the specified key.
            </summary>
            <returns>
            true if the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> contains an element with the key; otherwise, false.
            </returns>
            <param name="key">The key to locate in the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <returns>
            true if the object that implements <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> contains an element with the specified key; otherwise, false.
            </returns>
            <param name="key">The key whose value to get.</param>
            <param name="value">When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.Clear">
            <summary>
            Removes all items from the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> is read-only. </exception>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.GetKeys">
            <summary>
            Gets an enumerable used to iterate only the keys in the lookup table.
            </summary>
            <returns>An enumerable used to iterate only the keys in the lookup table.</returns>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.Compact">
            <summary>
            Defragments the item section of the lookup table,
            which gets fragmented after removing keys or updating values.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.Close">
            <summary>
            Closes the file backing this lookup table.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:Gemstone.IO.Collections.FileBackedLookupTable`4"/> object.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.FileBackedLookupTable`4.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:Gemstone.IO.Collections.RollingWindow`1">
            <summary>
            Represents a rolling window of data with FIFO semantics that will
            automatically truncate the data when the window size is exceeded.
            </summary>
            <typeparam name="T">The type of objects to be stored in the rolling window.</typeparam>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.#ctor(System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/> class.
            </summary>
            <param name="windowSize">The size of the window maintained by the collection.</param>
        </member>
        <member name="P:Gemstone.IO.Collections.RollingWindow`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.RollingWindow`1.WindowSize">
            <summary>
            Gets the size of the window maintained by the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.RollingWindow`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/> is read-only.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Collections.RollingWindow`1.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <returns>
            The element at the specified index.
            </returns>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.Add(`0)">
            <summary>
            Adds an item to the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.</param>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an item to the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
            <param name="item">The object to insert into the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.</exception>
            <exception cref="T:System.InvalidOperationException">Rolling window is full (<see cref="P:Gemstone.IO.Collections.RollingWindow`1.Count"/> = <see cref="P:Gemstone.IO.Collections.RollingWindow`1.WindowSize"/>.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.
            </summary>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>; otherwise, false.
            This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.
            </returns>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.RemoveAt(System.Int32)">
            <summary>
            Removes the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/> item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.IndexOf(`0)">
            <summary>
            Determines the index of a specific item in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.
            </summary>
            <returns>
            The index of <paramref name="item"/> if found in the list; otherwise, -1.
            </returns>
            <param name="item">The object to locate in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.</param>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.Contains(`0)">
            <summary>
            Determines whether the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/> contains a specific value.
            </summary>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.</param>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.Clear">
            <summary>
            Removes all items from the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:Gemstone.IO.Collections.RollingWindow`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Gemstone.IO.Collections.RollingWindow`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:Gemstone.IO.ExportDestination">
            <summary>
            Represents a destination location when exporting data using <see cref="T:Gemstone.IO.MultipleDestinationExporter"/>.
            </summary>
            <seealso cref="T:Gemstone.IO.MultipleDestinationExporter"/>
        </member>
        <member name="M:Gemstone.IO.ExportDestination.#ctor">
            <summary>
            Constructs a new <see cref="T:Gemstone.IO.ExportDestination"/>.
            </summary>
        </member>
        <member name="M:Gemstone.IO.ExportDestination.#ctor(System.String,System.Boolean,System.String,System.String,System.String)">
            <summary>
            Constructs a new <see cref="T:Gemstone.IO.ExportDestination"/> given the specified parameters.
            </summary>
            <param name="destinationFile">Path and file name of export destination.</param>
            <param name="connectToShare">Determines whether to attempt network connection to share specified in <paramref name="destinationFile"/>.</param>
            <param name="domain">Domain used to authenticate network connection if <paramref name="connectToShare"/> is true.</param>
            <param name="userName">Username used to authenticate network connection if <paramref name="connectToShare"/> is true.</param>
            <param name="password">Password used to authenticate network connection if <paramref name="connectToShare"/> is true.</param>
        </member>
        <member name="P:Gemstone.IO.ExportDestination.DestinationFile">
            <summary>
            Path and file name of export destination.
            </summary>
        </member>
        <member name="P:Gemstone.IO.ExportDestination.ConnectToShare">
            <summary>
            Determines whether to attempt network connection to share specified in <see cref="P:Gemstone.IO.ExportDestination.DestinationFile"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.ExportDestination.Domain">
            <summary>
            Domain used to authenticate network connection if <see cref="P:Gemstone.IO.ExportDestination.ConnectToShare"/> is true.
            </summary>
        </member>
        <member name="P:Gemstone.IO.ExportDestination.UserName">
            <summary>
            Username used to authenticate network connection if <see cref="P:Gemstone.IO.ExportDestination.ConnectToShare"/> is true.
            </summary>
        </member>
        <member name="P:Gemstone.IO.ExportDestination.Password">
            <summary>
            Password used to authenticate network connection if <see cref="P:Gemstone.IO.ExportDestination.ConnectToShare"/> is true.
            </summary>
        </member>
        <member name="P:Gemstone.IO.ExportDestination.Share">
            <summary>
            Path root of <see cref="P:Gemstone.IO.ExportDestination.DestinationFile"/> (e.g., E:\ or \\server\share).
            </summary>
        </member>
        <member name="P:Gemstone.IO.ExportDestination.FileName">
            <summary>
            Path and filename of <see cref="P:Gemstone.IO.ExportDestination.DestinationFile"/> without drive or server share prefix.
            </summary>
        </member>
        <member name="M:Gemstone.IO.ExportDestination.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:Gemstone.IO.ExportDestination"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:Gemstone.IO.ExportDestination"/>.</returns>
        </member>
        <member name="T:Gemstone.IO.MultipleDestinationExporter">
             <summary>
             Handles the exporting of a file to multiple destinations that are defined in the config file.
             </summary>
             <remarks>
             This class is useful for updating the same file on multiple servers (e.g., load balanced web server).
             </remarks>
             <example>
             This example shows the use <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> for exporting data to multiple locations:
             <code>
             using System;
             using Gemstone.IO;
            
             class Program
             {
                 static MultipleDestinationExporter s_exporter;
            
                 static void Main(string[] args)
                 {
                     s_exporter = new MultipleDestinationExporter();
                     s_exporter.Initialized += s_exporter_Initialized;
                     ExportDestination[] defaultDestinations = new ExportDestination[] 
                     {
                         new ExportDestination(@"\\server1\share\exportFile.txt", false, "domain", "user1", "password1"), 
                         new ExportDestination(@"\\server2\share\exportFile.txt", false, "domain", "user2", "password2")
                     };
                     // Initialize with the destinations where data is to be exported.
                     s_exporter.Initialize(defaultDestinations);
            
                     Console.ReadLine();
                 }
            
                 static void s_exporter_Initialized(object sender, EventArgs e)
                 {
                     // Export data to all defined locations after initialization.
                     s_exporter.ExportData("TEST DATA");
                 }
             }
             </code>
             This example shows the config file entry that can be used to specify the <see cref="T:Gemstone.IO.ExportDestination"/> 
             used by the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> when exporting data:
             <code>
             <![CDATA[
             [ExportDestinations]
             ; Total allowed time for each export to execute, in milliseconds. Set to -1 for no specific timeout.
             ExportTimeout=-1
            
             ; Maximum number of retries that will be attempted during an export if the export fails. Set to zero to only attempt export once.
             MaximumRetryAttempts=4
            
             ; Interval to wait, in milliseconds, before retrying an export if the export fails.
             RetryDelayInterval=1000
             
             ; Total number of export files to produce.
             ExportCount=2
            
             ; Root path for export destination, e.g., drive letter or UNC share name. Use UNC path (\\server\share) with no trailing slash for network shares.
             ExportDestination1=C:\
            
             ; Boolean flag that determines whether to attempt network connection to share.
             ExportDestination1_ConnectToShare=false
            
             ; Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt).
             ExportDestination1_FileName=Path\\FileName.txt
            
             ; Root path for export destination, e.g., drive letter or UNC share name. Use UNC path (\\server\share) with no trailing slash for network shares.
             ExportDestination2=\\server2\share
            
             ; Boolean flag that determines whether to attempt network connection to share.
             ExportDestination2_ConnectToShare=True
             
             ; Domain used for authentication to network share (computer name for local accounts).
             ExportDestination2_Domain=domain
             
             ; User name used for authentication to network share.
             ExportDestination2_UserName=user2
             
             ; Password used for authentication to network share. Value supports encryption in the format of "KeyName:EncodedValue".
             ExportDestination2_Password=config-cipher:l2qlAwAPihJjoThH+G53BYT6BXHQr13D6Asdibl0rDmlrgRXvJmCwcP8uvkFRHr9
            
             ; Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt).
             ExportDestination2_FileName=\\Path\FileName.txt
             ]]>
             </code>
             </example>
             <seealso cref="T:Gemstone.IO.ExportDestination"/>
        </member>
        <member name="T:Gemstone.IO.MultipleDestinationExporter.ExportState">
            <summary>
            Defines state information for an export.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.ExportState.#ctor">
            <summary>
            Creates a new <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.ExportState.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.ExportState.SourceFileName">
            <summary>
            Gets or sets the source file name for the <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.ExportState.DestinationFileName">
            <summary>
            Gets or sets the destination file name for the <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.ExportState.WaitHandle">
            <summary>
            Gets or sets the event wait handle for the <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.ExportState.Timeout">
            <summary>
            Gets or sets a flag that is used to determine if export process has timed out.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.ExportState.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/> object.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.ExportState.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="F:Gemstone.IO.MultipleDestinationExporter.DefaultExportTimeout">
            <summary>
            Specifies the default value for the <see cref="P:Gemstone.IO.MultipleDestinationExporter.ExportTimeout"/> property.
            </summary>
        </member>
        <member name="F:Gemstone.IO.MultipleDestinationExporter.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:Gemstone.IO.MultipleDestinationExporter.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:Gemstone.IO.MultipleDestinationExporter.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:Gemstone.IO.MultipleDestinationExporter.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="F:Gemstone.IO.MultipleDestinationExporter.DefaultMaximumRetryAttempts">
            <summary>
            Specifies the default value for the <see cref="P:Gemstone.IO.MultipleDestinationExporter.MaximumRetryAttempts"/> property.
            </summary>
        </member>
        <member name="F:Gemstone.IO.MultipleDestinationExporter.DefaultRetryDelayInterval">
            <summary>
            Specifies the default value for the <see cref="P:Gemstone.IO.MultipleDestinationExporter.RetryDelayInterval"/> property.
            </summary>
        </member>
        <member name="E:Gemstone.IO.MultipleDestinationExporter.Initialized">
            <summary>
            Occurs when the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object has been initialized.
            </summary>
        </member>
        <member name="E:Gemstone.IO.MultipleDestinationExporter.StatusMessage">
            <summary>
            Occurs when status information for the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object is being reported.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`1.Argument"/> is the status message being reported by the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/>.
            </remarks>
        </member>
        <member name="E:Gemstone.IO.MultipleDestinationExporter.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:Gemstone.IO.MultipleDestinationExporter.Disposed">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> class.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.#ctor(System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> class.
            </summary>
            <param name="settingsCategory">The config file settings category under which the export destinations are defined.</param>
            <param name="exportTimeout">The total allowed time in milliseconds for each export to execute.</param>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.ExportTimeout">
            <summary>
            Gets or sets the total allowed time in milliseconds for each export to execute.
            </summary>
            <remarks>
            Set to Timeout.Infinite (-1) for no timeout.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.MaximumRetryAttempts">
            <summary>
            Gets or sets the maximum number of retries that will be attempted during an export if the export fails.
            </summary>
            <remarks>
            Total file export attempts = 1 + <see cref="P:Gemstone.IO.MultipleDestinationExporter.MaximumRetryAttempts"/>. Set to zero to only attempt export once.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.RetryDelayInterval">
            <summary>
            Gets or sets the interval to wait, in milliseconds, before retrying an export if the export fails.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether the settings of <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object are 
            to be saved to the config file.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.SettingsCategory">
            <summary>
            Gets or sets the category under which the settings of <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object are to be saved
            to the config file if the <see cref="P:Gemstone.IO.MultipleDestinationExporter.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.TextEncoding">
            <summary>
            Gets or sets the <see cref="T:System.Text.Encoding"/> to be used to encode text data being exported.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object is currently enabled.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.IsDisposed">
            <inheritdoc />
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.TotalExports">
            <summary>
            Gets the total number exports performed successfully.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.ExportDestinations">
            <summary>
            Gets a list of currently defined <see cref="T:Gemstone.IO.ExportDestination"/>.
            </summary>
            <remarks>
            Use the <see cref="M:Gemstone.IO.MultipleDestinationExporter.Initialize(System.Collections.Generic.IEnumerable{Gemstone.IO.ExportDestination})"/> method to change the export destination collection.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.Name">
            <summary>
            Gets the unique identifier of the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object.
            </summary>
        </member>
        <member name="P:Gemstone.IO.MultipleDestinationExporter.Status">
            <summary>
            Gets the descriptive status of the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:Gemstone.IO.MultipleDestinationExporter.ExportState"/> object.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.Initialize">
            <summary>
            Initializes (or re-initializes) <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> from configuration settings.
            </summary>
            <remarks>
            If not being used as a component (i.e., user creates their own instance of this class), this method
            must be called in order to initialize exports.  Event if used as a component this method can be
            called at anytime to reinitialize the exports with new configuration information.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.Initialize(System.Collections.Generic.IEnumerable{Gemstone.IO.ExportDestination})">
            <summary>
            Initializes (or re-initializes) <see cref="T:Gemstone.IO.MultipleDestinationExporter"/> from configuration settings.
            </summary>
            <param name="defaultDestinations">Provides a default set of export destinations if none exist in configuration settings.</param>
            <remarks>
            If not being used as a component (i.e., user creates their own instance of this class), this method
            must be called in order to initialize exports.  Even if used as a component this method can be
            called at anytime to reinitialize the exports with new configuration information.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.OnInitialized">
            <summary>
            Raises the <see cref="E:Gemstone.IO.MultipleDestinationExporter.Initialized"/> event.
            </summary>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:Gemstone.IO.MultipleDestinationExporter.StatusMessage"/> event.
            </summary>
            <param name="status">Status message to report.</param>
            <param name="args"><see cref="M:System.String.Format(System.String,System.Object[])"/> parameters used for status message.</param>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:Gemstone.IO.MultipleDestinationExporter.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.ExportData(System.String)">
            <summary>
            Start multiple file export.
            </summary>
            <param name="fileData">Text based data to export to each destination.</param>
            <remarks>
            This is assumed to be the full content of the file to export. This class does not queue data since
            the export is not intended to append to an existing file but rather replace an existing one.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.ExportData(System.Byte[])">
            <summary>
            Start multiple file export.
            </summary>
            <param name="fileData">Binary data to export to each destination.</param>
            <remarks>
            This is assumed to be the full content of the file to export. This class does not queue data since
            the export is not intended to append to an existing file but rather replace an existing one.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.SaveSettings">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.LoadSettings">
            <inheritdoc />
        </member>
        <member name="M:Gemstone.IO.MultipleDestinationExporter.DefineSettings(Gemstone.Configuration.Settings,System.String)">
            <inheritdoc cref="M:Gemstone.Configuration.IDefineSettings.DefineSettings(Gemstone.Configuration.Settings,System.String)" />
        </member>
        <member name="T:Gemstone.IO.NamespaceDoc">
            <summary>
            The <see cref="N:Gemstone.IO"/> namespace organizes all Gemstone library functionality
            related to Input and Output (IO). The root namespace also includes common IO related classes,
            e.g., <see cref="T:Gemstone.IO.SafeFileWatcher"/>.
            </summary>
        </member>
        <member name="T:Gemstone.IO.Parsing.CommonHeaderBase`1">
            <summary>
            Represents the base class for a common binary image header implementation.
            </summary>
            <remarks>
            Here is an example of a possible derived class constructor that has an integer TypeID as the
            first 4 bytes in the image:
            <code>
            public CommonHeader(object state, byte[] binaryImage, int startIndex, int length)
            {
                if (length > 3)
                {
                    TypeID = LittleEndian.ToInt32(binaryImage, startIndex);
                    State = state;
                }
                else
                    throw new InvalidOperationException("Malformed image");
            }
            </code>
            </remarks>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
        </member>
        <member name="P:Gemstone.IO.Parsing.CommonHeaderBase`1.TypeID">
            <summary>
            Gets or sets the identifier used for identifying the <see cref="T:System.Type"/> to be parsed.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.CommonHeaderBase`1.State">
            <summary>
            Gets or sets any additional state information that might be needed for parsing.
            </summary>
        </member>
        <member name="T:Gemstone.IO.Parsing.FrameImageParserBase`2">
            <summary>
            This class defines a basic implementation of parsing functionality suitable for automating the parsing of
            a binary data stream represented as frames with common headers and returning the parsed data via an event.
            </summary>
            <remarks>
            <para>
            This parser is designed as a write-only stream such that data can come from any source.
            </para>
            <para>
            This class is more specific than the <see cref="T:Gemstone.IO.Parsing.BinaryImageParserBase"/> in that it can automate the parsing of
            a particular protocol that is formatted as a series of frames that have a common method of identification.
            Automation of type creation occurs by loading implementations of common types that implement the
            <see cref="T:Gemstone.IO.Parsing.ISupportFrameImage`1"/> interface. The common method of identification is handled by
            creating a class derived from the <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/> which primarily includes a
            TypeID property, but also should include any state information needed to parse a particular frame if
            necessary. Derived classes simply override the <see cref="M:Gemstone.IO.Parsing.FrameImageParserBase`2.ParseCommonHeader(System.Byte[],System.Int32,System.Int32)"/> function in order to parse
            the <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/> from a provided binary image.
            </para>
            </remarks>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
            <typeparam name="TOutputType">Type of the interface or class used to represent outputs.</typeparam>
        </member>
        <member name="E:Gemstone.IO.Parsing.FrameImageParserBase`2.DataParsed">
            <summary>
            Occurs when a data image is deserialized successfully to one of the output types that the data
            image represents.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`1.Argument"/> is the object that was deserialized from the binary image.
            </remarks>
        </member>
        <member name="E:Gemstone.IO.Parsing.FrameImageParserBase`2.OutputTypeNotFound">
            <summary>
            Occurs when matching an output type for deserializing the data image could not be found.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`1.Argument"/> is the ID of the output type that could not be found.
            </remarks>
        </member>
        <member name="E:Gemstone.IO.Parsing.FrameImageParserBase`2.DuplicateTypeHandlerEncountered">
            <summary>
            Occurs when more than one type has been defined that can deserialize the specified output type.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`2.Argument1"/> is the <see cref="T:System.Type"/> that defines a type ID that has already been defined.<br/>
            <see cref="F:Gemstone.EventArgs`2.Argument2"/> is the ID of the output type that was defined more than once.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Parsing.FrameImageParserBase`2"/> class.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.FrameImageParserBase`2.QueuedOutputs">
            <summary>
            Gets the total number of parsed outputs that are currently queued for publication, if any.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.FrameImageParserBase`2.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the frame image parser is currently enabled.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.FrameImageParserBase`2.Status">
            <summary>
            Gets current status of <see cref="T:Gemstone.IO.Parsing.FrameImageParserBase`2"/>.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Gemstone.IO.Parsing.FrameImageParserBase`2"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.Start">
            <summary>
            Start the data parser.
            </summary>
            <remarks>
            This overload loads public types from assemblies in the application binaries directory that implement the parser's output type.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.Start(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Starts the data parser given the specified type implementations.
            </summary>
            <param name="implementations">Output type implementations to establish for the parser.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.ParseFrame(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Output type specific frame parsing algorithm.
            </summary>
            <param name="buffer">Buffer containing data to parse.</param>
            <param name="offset">Offset index into buffer that represents where to start parsing.</param>
            <param name="length">Maximum length of valid data from offset.</param>
            <returns>The length of the data that was parsed.</returns>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.ParseCommonHeader(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Parses a common header instance that implements <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/> for the output type represented
            in the binary image.
            </summary>
            <param name="buffer">Buffer containing data to parse.</param>
            <param name="offset">Offset index into buffer that represents where to start parsing.</param>
            <param name="length">Maximum length of valid data from offset.</param>
            <returns>The <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/> which includes a type ID for the <see cref="T:System.Type"/> to be parsed.</returns>
            <remarks>
            <para>
            Derived classes need to provide a common header instance (i.e., class that implements <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/>)
            for the output types; this will primarily include an ID of the <see cref="T:System.Type"/> that the data image represents.  This parsing is
            only for common header information, actual parsing will be handled by output type via its <see cref="M:Gemstone.IO.Parsing.ISupportBinaryImage.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)"/>
            method. This header image should also be used to add needed complex state information about the output type being parsed if needed.
            </para>
            <para>
            If there is not enough buffer available to parse common header (as determined by <paramref name="length"/>), return null.  Also, if
            the protocol allows frame length to be determined at the time common header is being parsed and there is not enough buffer to parse
            the entire frame, it will be optimal to prevent further parsing by returning null.
            </para>
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.OnDataParsed(`1)">
            <summary>
            Raises the <see cref="E:Gemstone.IO.Parsing.FrameImageParserBase`2.DataParsed"/> event.
            </summary>
            <param name="output">The object that was deserialized from binary image.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.PublishParsedOutput(Gemstone.EventArgs{`1})">
            <summary>
            <see cref="T:Gemstone.Threading.Collections.AsyncQueue`1"/> handler used to publish queued outputs.
            </summary>
            <param name="outputArgs">Event args containing new output to publish.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.OnOutputTypeNotFound(`0)">
            <summary>
            Raises the <see cref="E:Gemstone.IO.Parsing.FrameImageParserBase`2.OutputTypeNotFound"/> event.
            </summary>
            <param name="id">The ID of the output type that was not found.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.FrameImageParserBase`2.OnDuplicateTypeHandlerEncountered(System.Type,`0)">
            <summary>
            Raises the <see cref="E:Gemstone.IO.Parsing.FrameImageParserBase`2.DuplicateTypeHandlerEncountered"/> event.
            </summary>
            <param name="duplicateType">The <see cref="T:System.Type"/> that defines a type ID that has already been defined.</param>
            <param name="id">The ID of the output type that was defined more than once.</param>
        </member>
        <member name="T:Gemstone.IO.Parsing.ICommonHeader`1">
            <summary>
            Defines the common header of a frame image for a set of parsed types, consisting at least of a type ID.
            </summary>
            <remarks>
            Header implementations can extend this interface as necessary to accommodate protocol specific header images.
            </remarks>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
        </member>
        <member name="P:Gemstone.IO.Parsing.ICommonHeader`1.TypeID">
            <summary>
            Gets or sets the identifier used for identifying the <see cref="T:System.Type"/> to be parsed.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.ICommonHeader`1.State">
            <summary>
            Gets or sets any additional state information that might be needed for parsing.
            </summary>
        </member>
        <member name="T:Gemstone.IO.Parsing.IFrameImageParser`2">
            <summary>
            This interface represents a basic implementation of parsing functionality suitable for automating the parsing of
            a binary data stream represented as frames with common headers and returning the parsed data via an event.
            </summary>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
            <typeparam name="TOutputType">Type of the interface or class used to represent outputs.</typeparam>
        </member>
        <member name="E:Gemstone.IO.Parsing.IFrameImageParser`2.DataParsed">
            <summary>
            Occurs when a data image is deserialized successfully to one of the output types that the data
            image represents.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`1.Argument"/> is the object that was deserialized from the binary image.
            </remarks>
        </member>
        <member name="E:Gemstone.IO.Parsing.IFrameImageParser`2.OutputTypeNotFound">
            <summary>
            Occurs when matching a output type for deserializing the data image could not be found.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`1.Argument"/> is the ID of the output type that could not be found.
            </remarks>
        </member>
        <member name="T:Gemstone.IO.Parsing.ISupportFrameImage`1">
            <summary>
            Specifies that this <see cref="T:System.Type"/> can produce or consume a frame of data represented as a binary image.
            </summary>
            <remarks>
            Related types of protocol data that occur as frames in a stream can implement this interface for automated parsing
            via the <see cref="T:Gemstone.IO.Parsing.FrameImageParserBase`2"/> class.
            </remarks>
            <typeparam name="TTypeIdentifier">Type of the frame identifier.</typeparam>
        </member>
        <member name="P:Gemstone.IO.Parsing.ISupportFrameImage`1.CommonHeader">
            <summary>
            Gets or sets current <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/>.
            </summary>
            <remarks>
            If used, this will need to be set before call to <see cref="M:Gemstone.IO.Parsing.ISupportBinaryImage.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)"/>.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.Parsing.ISupportFrameImage`1.TypeID">
            <summary>
            Gets the identifier that can be used for identifying the <see cref="T:System.Type"/>.
            </summary>
            <remarks>
            <para>
            <see cref="P:Gemstone.IO.Parsing.ISupportFrameImage`1.TypeID"/> must be unique across all siblings implementing a common <see cref="T:System.Type"/> or interface.
            </para>
            <para>
            Output types implement this class so they have a consistently addressable identification property.
            </para>
            </remarks>
        </member>
        <member name="P:Gemstone.IO.Parsing.ISupportFrameImage`1.AllowQueuedPublication">
            <summary>
            Gets flag that determines if frame image can queued for publication or should be processed immediately.
            </summary>
            <remarks>
            Some frames, e.g., a configuration or key frame, may be critical to processing of other frames. In this
            case, these types of frames should be published immediately so that subsequent frame parsing can have
            access to needed critical information.
            </remarks>
        </member>
        <member name="T:Gemstone.IO.Parsing.ISupportSourceIdentifiableFrameImage`2">
            <summary>
            Specifies that this <see cref="T:System.Type"/> can produce or consume a frame of data represented as a binary image
            that can be identified by its data source.
            </summary>
            <remarks>
            Related types of protocol data that occur as frames in a stream can implement this interface for automated parsing
            via the <see cref="T:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3"/> class.
            </remarks>
            <typeparam name="TSourceIdentifier">Type of identifier for the data source.</typeparam>
            <typeparam name="TTypeIdentifier">Type of the frame identifier.</typeparam>
        </member>
        <member name="P:Gemstone.IO.Parsing.ISupportSourceIdentifiableFrameImage`2.Source">
            <summary>
            Gets or sets the data source identifier of the frame image.
            </summary>
        </member>
        <member name="T:Gemstone.IO.Parsing.ISupportStreamSerialization">
            <summary>
            Specifies that an object supports serialization via static <see cref="T:System.IO.Stream"/> operations
            using object-typed <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization.ReadFrom(System.IO.Stream)"/> and <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization.WriteTo(System.IO.Stream,System.Object)"/> methods.
            </summary>
            <remarks>
            This interface exists to allow classes to properly define the needed method signatures for using
            <see cref="T:Gemstone.IO.Parsing.StreamSerialization`1"/> operations. However, as long as the <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization.ReadFrom(System.IO.Stream)"/>
            and <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization.WriteTo(System.IO.Stream,System.Object)"/> methods exist on a class with the proper signature, actual implementation
            of this interface is optional.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.Parsing.ISupportStreamSerialization.UseCustomListSerialization">
            <summary>
            Gets flag that determines if type implementing <see cref="T:Gemstone.IO.Parsing.ISupportStreamSerialization"/> is a list-type and
            supports its own list serialization handling, i.e., if automated list count and items serialization should
            be skipped by <see cref="T:Gemstone.IO.Parsing.StreamSerialization`1"/> operations.
            </summary>
            <remarks>
            More commonly, if a type is assignable from an <see cref="T:System.Collections.IList"/>, it would be its element type that would
            implement <see cref="T:Gemstone.IO.Parsing.ISupportStreamSerialization"/> and the list serialization would be handled automatically by
            <see cref="T:Gemstone.IO.Parsing.StreamSerialization`1"/> operations. However, if a type is assignable from an <see cref="T:System.Collections.IList"/> and
            implements <see cref="T:Gemstone.IO.Parsing.ISupportStreamSerialization"/> directly, then setting this property to <c>true</c> allows
            the list type to override default behavior and handle its own list serialization using the <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization.ReadFrom(System.IO.Stream)"/>
            and <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization.WriteTo(System.IO.Stream,System.Object)"/> methods.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.ISupportStreamSerialization.ReadFrom(System.IO.Stream)">
            <summary>
            Deserializes an object from a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="stream">Source stream.</param>
            <returns>New deserialized instance.</returns>
        </member>
        <member name="M:Gemstone.IO.Parsing.ISupportStreamSerialization.WriteTo(System.IO.Stream,System.Object)">
            <summary>
            Serializes an object to a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="stream">Target stream.</param>
            <param name="instance">Instance to serialize.</param>
        </member>
        <member name="T:Gemstone.IO.Parsing.ISupportStreamSerialization`1">
            <summary>
            Specifies that an object supports serialization via static <see cref="T:System.IO.Stream"/> operations
            using strongly-typed <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization`1.ReadFrom(System.IO.Stream)"/> and <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization`1.WriteTo(System.IO.Stream,`0)"/> methods.
            </summary>
            <typeparam name="T">Type that implements stream serialization.</typeparam>
            <remarks>
            This interface exists to allow classes to properly define the needed method signatures for using
            <see cref="T:Gemstone.IO.Parsing.StreamSerialization`1"/> operations. However, as long as the <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization`1.ReadFrom(System.IO.Stream)"/>
            and <see cref="M:Gemstone.IO.Parsing.ISupportStreamSerialization`1.WriteTo(System.IO.Stream,`0)"/> methods exist on a class with the proper signature, actual implementation
            of this interface is optional.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.ISupportStreamSerialization`1.ReadFrom(System.IO.Stream)">
            <summary>
            Deserializes an instance of type <typeparamref name="T"/> from a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="stream">Source stream.</param>
            <returns>New deserialized instance.</returns>
        </member>
        <member name="M:Gemstone.IO.Parsing.ISupportStreamSerialization`1.WriteTo(System.IO.Stream,`0)">
            <summary>
            Serializes an <paramref name="instance"/> of type <typeparamref name="T"/> to a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="stream">Target stream.</param>
            <param name="instance">Instance to serialize.</param>
        </member>
        <member name="T:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3">
            <summary>
            This class defines a basic implementation of parsing functionality suitable for automating the parsing of multiple
            binary data streams, each represented as frames with common headers and returning the parsed data via an event.
            </summary>
            <remarks>
            <para>
            This parser is designed as a write-only stream such that data can come from any source.
            </para>
            <para>
            This class is more specific than the <see cref="T:Gemstone.IO.Parsing.BinaryImageParserBase"/> in that it can automate the parsing of a
            particular protocol that is formatted as a series of frames that have a common method of identification.
            Automation of type creation occurs by loading implementations of common types that implement the
            <see cref="T:Gemstone.IO.Parsing.ISupportSourceIdentifiableFrameImage`2"/> interface. The common method of
            identification is handled by creating a class derived from the <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/> which primarily
            includes a TypeID property, but also should include any state information needed to parse a particular frame if necessary.
            Derived classes override the <see cref="M:Gemstone.IO.Parsing.FrameImageParserBase`2.ParseCommonHeader(System.Byte[],System.Int32,System.Int32)"/>
            method in order to parse the <see cref="T:Gemstone.IO.Parsing.ICommonHeader`1"/> from a provided binary image.
            </para>
            </remarks>
            <typeparam name="TSourceIdentifier">Type of identifier for the data source.</typeparam>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
            <typeparam name="TOutputType">Type of the interface or class used to represent outputs.</typeparam>
        </member>
        <member name="T:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer">
            <summary>
            Represents a source identifiable buffer.
            </summary>
            <remarks>
            This class implements <see cref="T:Gemstone.ISupportLifecycle"/> such that it will support
            automatic object pool handling, e.g., returning object to pool when disposed.
            </remarks>
        </member>
        <member name="F:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Source">
            <summary>
            Defines the source identifier of the <see cref="F:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Buffer"/>.
            </summary>
        </member>
        <member name="F:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Buffer">
            <summary>
            Defines the buffer which is identifiable by its associated <see cref="F:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Source"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Enabled">
            <summary>
            Gets or sets enabled state of <see cref="T:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer"/>.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Count">
            <summary>
            Gets or sets valid number of bytes within the <see cref="F:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Buffer"/>.
            </summary>
            <remarks>   
            This property will automatically initialize buffer. Set to zero to release buffer. 
            </remarks>
        </member>
        <member name="E:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceDataParsed">
            <summary>
            Occurs when a data image is deserialized successfully to one or more of the output types that the data image represents.
            </summary>
            <remarks>
            <see cref="F:Gemstone.EventArgs`2.Argument1"/> is the ID of the source for the data image.<br/>
            <see cref="F:Gemstone.EventArgs`2.Argument2"/> is a list of objects deserialized from the data image.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3"/> class.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.QueuedBuffers">
            <summary>
            Gets the total number of buffers that are currently queued for processing, if any.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Start">
            <summary>
            Start the streaming data parser.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Start(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Starts the data parser given the specified type implementations.
            </summary>
            <param name="implementations">Output type implementations to establish for the parser.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,System.Byte[])">
            <summary>
            Queues a sequence of bytes, from the specified data source, onto the stream for parsing.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <param name="buffer">An array of bytes to queue for parsing</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Queues a sequence of bytes, from the specified data source, onto the stream for parsing.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <param name="buffer">An array of bytes. This method copies count bytes from buffer to the queue.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
            <remarks>
            This method associates a buffer with its data source identifier.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,Gemstone.IO.Parsing.ISupportBinaryImage)">
            <summary>
            Queues the object implementing the <see cref="T:Gemstone.IO.Parsing.ISupportBinaryImage"/> interface, from the specified data source, onto the stream for parsing.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <param name="image">Object to be parsed that implements the <see cref="T:Gemstone.IO.Parsing.ISupportBinaryImage"/> interface.</param>
            <remarks>
            This method takes the binary image from <see cref="T:Gemstone.IO.Parsing.ISupportBinaryImage"/> and writes the buffer to the <see cref="T:Gemstone.IO.Parsing.BinaryImageParserBase"/> stream for parsing.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.PurgeBuffer(`0)">
            <summary>
            Clears the internal buffer of unparsed data received from the specified <paramref name="source"/>.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <remarks>
            This method can be used to ensure that partial data received from the <paramref name="source"/> is not kept in memory indefinitely.
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Parse(Gemstone.IO.Parsing.ISupportBinaryImage)">
            <summary>
            Not implemented. Consumers should call the <see cref="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,Gemstone.IO.Parsing.ISupportBinaryImage)"/> method instead to make sure data source ID gets tracked with data buffer.
            </summary>
            <exception cref="T:System.NotImplementedException">This method should not be called directly.</exception>
            <param name="image">A <see cref="T:Gemstone.IO.Parsing.ISupportBinaryImage"/>.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Not implemented. Consumers should call the <see cref="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,System.Byte[],System.Int32,System.Int32)"/> method instead to make sure data source ID gets tracked with data buffer.
            </summary>
            <exception cref="T:System.NotImplementedException">This method should not be called directly.</exception>
            <param name="buffer">A <see cref="T:System.Byte"/> array.</param>
            <param name="count">An <see cref="T:System.Int32"/> for the offset.</param>
            <param name="offset">An <see cref="T:System.Int32"/> for the count.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.OnDataParsed(`2)">
            <summary>
            Raises the <see cref="E:Gemstone.IO.Parsing.FrameImageParserBase`2.DataParsed"/> event.
            </summary>
            <param name="output">The object that was deserialized from binary image.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.OnSourceDataParsed(`0,System.Collections.Generic.IList{`2})">
            <summary>
            Raises the <see cref="E:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.SourceDataParsed"/> event.
            </summary>
            <param name="source">Identifier for the data source.</param>
            <param name="output">The objects that were deserialized from binary images from the <paramref name="source"/> data stream.</param>
        </member>
        <member name="M:Gemstone.IO.Parsing.MultiSourceFrameImageParserBase`3.OnDataDiscarded(System.Byte[])">
            <summary>
            Raises the <see cref="E:Gemstone.IO.Parsing.BinaryImageParserBase.DataDiscarded"/> event.
            </summary>
            <param name="buffer">Source buffer that contains output that failed to parse.</param>
        </member>
        <member name="T:Gemstone.IO.Parsing.NamespaceDoc">
            <summary>
            Contains classes used to simplify, standardize and automate any kind of IO based parsing operation.
            </summary>
        </member>
        <member name="T:Gemstone.IO.Parsing.StreamSerialization`1">
            <summary>
            Defines stream serialization operations for natives types or classes that expose <c>ReadFrom</c> and
            <c>WriteTo</c> methods. Instance and static options available. Arrays and lists of types are also
            supported, so long as base type is a native type or supports required serialization methods.
            </summary>
            <typeparam name="T">Target type for stream serialization.</typeparam>
            <remarks>
            <para>
            Deserialization Method Implementation Options:<br/>
            <c>ReadFrom</c> Instance signature: <c>void ReadFrom(Stream)</c><br/>
            <c>ReadFrom</c> Static object-based signature: <c>static object ReadFrom(Stream)</c><br/>
            <c>ReadFrom</c> Static strongly-typed signature: <c>static T ReadFrom(Stream)</c><br/>
            Note that deserialization of type also supports a constructor that accepts a standalone
            <see cref="T:System.IO.Stream"/> parameter.
            </para>
            <para>
            Serialization Method Implementation Options:<br/>
            <c>WriteTo</c> Instance signature: <c>void WriteTo(Stream)</c><br/>
            <c>WriteTo</c> Static object-based signature: <c>static void WriteTo(Stream, object)</c><br/>
            <c>WriteTo</c> Static strongly-typed signature: <c>static void WriteTo(Stream, T)</c><br/>
            </para>
            <para>
            Note that proper static method signatures can be defined for a class by implementing the
            <see cref="T:Gemstone.IO.Parsing.ISupportStreamSerialization"/> or <see cref="T:Gemstone.IO.Parsing.ISupportStreamSerialization`1"/>
            interface, implicitly or explicitly.
            </para>
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.StreamSerialization`1.GetReadMethod(System.Type,System.Nullable{System.Boolean})">
            <summary>
            Gets read deserialization method for type <typeparamref name="T"/>.
            </summary>
            <param name="elementType">
            Provides a type representing the encompassed elements when type <typeparamref name="T"/> is a list or array type, and element type cannot otherwise
            be ascertained, e.g., when element type is an <see cref="T:System.Object"/>.
            </param>
            <param name="skipAutoListHandling">Set to <c>true</c> to skip automatic handling of list types.</param>
            <returns>Read deserialization method.</returns>
        </member>
        <member name="M:Gemstone.IO.Parsing.StreamSerialization`1.GetWriteMethod(System.Type,System.Nullable{System.Boolean})">
            <summary>
            Gets write serialization method for type <typeparamref name="T"/>.
            </summary>
            <param name="elementType">
            Provides a type representing the encompassed elements when type <typeparamref name="T"/> is a list or array type, and element type cannot otherwise
            be ascertained, e.g., when element type is an <see cref="T:System.Object"/>.
            </param>
            <param name="skipAutoListHandling">Set to <c>true</c> to skip automatic handling of list types.</param>
            <returns>Write serialization method.</returns>
        </member>
        <member name="T:Gemstone.IO.Parsing.TemplatedExpressionParser">
            <summary>
            Represents a template based token substitution parser that supports binary and advanced expressions.
            </summary>
            <remarks>
            <para>
            As an example, this parser can use a templated expression of the form:
            <code>
            {CompanyAcronym}_{DeviceAcronym}[?{SignalType.Source}=Phasor[-{SignalType.Suffix}{SignalIndex}]]:{Signal.Acronym}
            </code>
            then replace the tokens with actual values and properly evaluate the expressions.
            Example results could look like: GPA_SHELBY-PA1:IPHA and GPA_SHELBY:FREQ
            </para>
            <para>
            Parser also supports more complex C# style expressions using the "eval{}" function, e.g.:
            <code>
            eval{'{CompanyAcronym}'.Substring(0,3)}_{DeviceAcronym}eval{'[?{SignalType.Source}=Phasor[-{SignalType.Suffix}]]'.Length}
            </code>
            </para>
            </remarks>
        </member>
        <member name="M:Gemstone.IO.Parsing.TemplatedExpressionParser.#ctor">
            <summary>
            Creates a new <see cref="T:Gemstone.IO.Parsing.TemplatedExpressionParser"/>.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Parsing.TemplatedExpressionParser.#ctor(System.Char,System.Char,System.Char,System.Char)">
            <summary>
            Creates a new <see cref="T:Gemstone.IO.Parsing.TemplatedExpressionParser"/> with desired delimiters.
            </summary>
            <param name="startTokenDelimiter">Character that identifies the beginning of a token.</param>
            <param name="endTokenDelimiter">Character that identifies the end of a token.</param>
            <param name="startExpressionDelimiter">Character that identifies the beginning of an expression.</param>
            <param name="endExpressionDelimiter">Character that identifies the beginning of an expression.</param>
            <exception cref="T:System.ArgumentException">
            All delimiters must be unique -- or -- the symbol <c>'u'</c> is reserved for encoding and cannot be used as a delimiter.
            </exception>
        </member>
        <member name="P:Gemstone.IO.Parsing.TemplatedExpressionParser.TemplatedExpression">
            <summary>
            Gets or sets the templated expression to use.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.TemplatedExpressionParser.ReservedSymbols">
            <summary>
            Gets the reserved symbols - this includes all delimiters and expression operators.
            </summary>
            <remarks>
            The default reserved symbol list is: <c>'\', '&lt;', '&gt;', '=', '!', '{', '}', '[', ']'</c>.
            </remarks>
        </member>
        <member name="P:Gemstone.IO.Parsing.TemplatedExpressionParser.StartTokenDelimiter">
            <summary>
            Gets the character that identifies the beginning of a token.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.TemplatedExpressionParser.EndTokenDelimiter">
            <summary>
            Gets the character that identifies the end of a token.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.TemplatedExpressionParser.StartExpressionDelimiter">
            <summary>
            Gets the character that identifies the start of an expression.
            </summary>
        </member>
        <member name="P:Gemstone.IO.Parsing.TemplatedExpressionParser.EndExpressionDelimiter">
            <summary>
            Gets the character that identifies the end of an expression.
            </summary>
        </member>
        <member name="M:Gemstone.IO.Parsing.TemplatedExpressionParser.Execute(System.Collections.Generic.IDictionary{System.String,System.String},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Executes replacements using provided <paramref name="substitutions"/> dictionary on the currently defined
            <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.TemplatedExpression"/> value and optionally evaluates any expressions.
            </summary>
            <param name="substitutions">Dictionary of substitutions. Dictionary keys are tokens to be replaced by the values.</param>
            <param name="ignoreCase">Determines if substitutions should be case-insensitive. Defaults to <c>true</c>.</param>
            <param name="evaluateExpressions">Determines if expressions should be evaluated. Defaults to <c>true</c>.</param>
            <param name="escapeSubstitutionValues">Determines if reserved symbols in substitution values should be automatically escaped. Defaults to <c>true</c>.</param>
            <returns>A string that was based on <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.TemplatedExpression"/> with tokens replaced and expressions evaluated.</returns>
            <remarks>
            <para>
            The default token start and end delimiters are { and } but can be overridden in <see cref="T:Gemstone.IO.Parsing.TemplatedExpressionParser"/> constructor.
            All substitution tokens surrounded by <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.StartTokenDelimiter"/> and <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.EndTokenDelimiter"/> (e.g., {token})
            will be immediately replaced with their string equivalents before further expression evaluation. As a result of the expression
            syntax &lt;, &gt;, =, and ! are reserved expressions symbols; <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.StartTokenDelimiter"/>, <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.EndTokenDelimiter"/>,
            <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.StartExpressionDelimiter"/> and <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.EndExpressionDelimiter"/> are reserved delimiter symbols. To embed any reserved
            symbol into the <see cref="P:Gemstone.IO.Parsing.TemplatedExpressionParser.TemplatedExpression"/> so that it appears in the evaluated result, escape the symbol by prefixing it
            with a backslash, e.g., \{.
            </para>
            <para>
            The default expression start and end delimiters are [ and ] but can be overridden in <see cref="T:Gemstone.IO.Parsing.TemplatedExpressionParser"/> constructor.
            Expressions are represented in the form of [?expression[result]] and can be nested, e.g. ([?expression1[?expression2[result]]]).
            Expressions should not contain extraneous white space for proper evaluation. Only simple boolean comparison operations are allowed
            in expressions, e.g., A=B (or A==B), A!=B (or A&lt;&gt;B), A&gt;B, A&gt;=B, A&lt;B and A&lt;=B - nothing more. Any expression that
            fails to evaluate will be evaluated as FALSE. Note that if both left (A) and right (B) operands can be parsed as a numeric value then
            the expression will be numerically evaluated otherwise expression will be a culture-invariant string comparison. Nested expressions
            are evaluated as cumulative AND operators. There is no defined nesting limit.
            </para>
            <para>
            Advanced expressions can be parsed using the eval function, e.g., eval{1 + 2}. Eval function expression is delimited by the currently
            defined token delimiters, { and } by default. The evaluation engine deals with numbers and strings. The typing of numeric literals
            follow C# standards, suffixes such as d, f and m may be used to explicitly specify the numeric type. If no numeric suffix is provided,
            the default type of numeric literal is assumed to be <see cref="T:System.Int32"/>. String literals should be specified using single quotes
            instead of double quotes, this includes substitution parameters, e.g., <c>eval{'{DeviceAcronym}'.Length + 1}</c>. Advanced evaluation
            expressions using the eval function are always parsed after common expressions. Eval functions cannot be nested.
            </para>
            <para>
            When <paramref name="evaluateExpressions"/> is <c>true</c> and values in <paramref name="substitutions"/> intentionally contain
            expressions to be evaluated, then <paramref name="escapeSubstitutionValues"/> should be set to <c>false</c> so that the reserved
            symbols in the values are not automatically escaped.
            </para>
            </remarks>
        </member>
    </members>
</doc>
