diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-09-27 12:49:30 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-09-27 12:49:30 +0000 |
commit | 177e09603080f8842c6b596e30aa05a750b5dbed (patch) | |
tree | 24e646494e4029c03a68febf736761015d6e0102 /Build/source/libs/zlib/zlib-1.2.4/contrib/dotzlib/DotZLib/ChecksumImpl.cs | |
parent | 6fff08d6f5fcdac85369a6f5f481074b83fed347 (diff) |
prepare for zlib 1.2.5
git-svn-id: svn://tug.org/texlive/trunk@19919 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/zlib/zlib-1.2.4/contrib/dotzlib/DotZLib/ChecksumImpl.cs')
-rw-r--r-- | Build/source/libs/zlib/zlib-1.2.4/contrib/dotzlib/DotZLib/ChecksumImpl.cs | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/Build/source/libs/zlib/zlib-1.2.4/contrib/dotzlib/DotZLib/ChecksumImpl.cs b/Build/source/libs/zlib/zlib-1.2.4/contrib/dotzlib/DotZLib/ChecksumImpl.cs deleted file mode 100644 index fe9b23405e2..00000000000 --- a/Build/source/libs/zlib/zlib-1.2.4/contrib/dotzlib/DotZLib/ChecksumImpl.cs +++ /dev/null @@ -1,202 +0,0 @@ -// -// © Copyright Henrik Ravn 2004 -// -// Use, modification and distribution are subject to the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -using System; -using System.Runtime.InteropServices; -using System.Text; - - -namespace DotZLib -{ - #region ChecksumGeneratorBase - /// <summary> - /// Implements the common functionality needed for all <see cref="ChecksumGenerator"/>s - /// </summary> - /// <example></example> - public abstract class ChecksumGeneratorBase : ChecksumGenerator - { - /// <summary> - /// The value of the current checksum - /// </summary> - protected uint _current; - - /// <summary> - /// Initializes a new instance of the checksum generator base - the current checksum is - /// set to zero - /// </summary> - public ChecksumGeneratorBase() - { - _current = 0; - } - - /// <summary> - /// Initializes a new instance of the checksum generator basewith a specified value - /// </summary> - /// <param name="initialValue">The value to set the current checksum to</param> - public ChecksumGeneratorBase(uint initialValue) - { - _current = initialValue; - } - - /// <summary> - /// Resets the current checksum to zero - /// </summary> - public void Reset() { _current = 0; } - - /// <summary> - /// Gets the current checksum value - /// </summary> - public uint Value { get { return _current; } } - - /// <summary> - /// Updates the current checksum with part of an array of bytes - /// </summary> - /// <param name="data">The data to update the checksum with</param> - /// <param name="offset">Where in <c>data</c> to start updating</param> - /// <param name="count">The number of bytes from <c>data</c> to use</param> - /// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception> - /// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception> - /// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception> - /// <remarks>All the other <c>Update</c> methods are implmeneted in terms of this one. - /// This is therefore the only method a derived class has to implement</remarks> - public abstract void Update(byte[] data, int offset, int count); - - /// <summary> - /// Updates the current checksum with an array of bytes. - /// </summary> - /// <param name="data">The data to update the checksum with</param> - public void Update(byte[] data) - { - Update(data, 0, data.Length); - } - - /// <summary> - /// Updates the current checksum with the data from a string - /// </summary> - /// <param name="data">The string to update the checksum with</param> - /// <remarks>The characters in the string are converted by the UTF-8 encoding</remarks> - public void Update(string data) - { - Update(Encoding.UTF8.GetBytes(data)); - } - - /// <summary> - /// Updates the current checksum with the data from a string, using a specific encoding - /// </summary> - /// <param name="data">The string to update the checksum with</param> - /// <param name="encoding">The encoding to use</param> - public void Update(string data, Encoding encoding) - { - Update(encoding.GetBytes(data)); - } - - } - #endregion - - #region CRC32 - /// <summary> - /// Implements a CRC32 checksum generator - /// </summary> - public sealed class CRC32Checksum : ChecksumGeneratorBase - { - #region DLL imports - - [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)] - private static extern uint crc32(uint crc, int data, uint length); - - #endregion - - /// <summary> - /// Initializes a new instance of the CRC32 checksum generator - /// </summary> - public CRC32Checksum() : base() {} - - /// <summary> - /// Initializes a new instance of the CRC32 checksum generator with a specified value - /// </summary> - /// <param name="initialValue">The value to set the current checksum to</param> - public CRC32Checksum(uint initialValue) : base(initialValue) {} - - /// <summary> - /// Updates the current checksum with part of an array of bytes - /// </summary> - /// <param name="data">The data to update the checksum with</param> - /// <param name="offset">Where in <c>data</c> to start updating</param> - /// <param name="count">The number of bytes from <c>data</c> to use</param> - /// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception> - /// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception> - /// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception> - public override void Update(byte[] data, int offset, int count) - { - if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException(); - if ((offset+count) > data.Length) throw new ArgumentException(); - GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned); - try - { - _current = crc32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count); - } - finally - { - hData.Free(); - } - } - - } - #endregion - - #region Adler - /// <summary> - /// Implements a checksum generator that computes the Adler checksum on data - /// </summary> - public sealed class AdlerChecksum : ChecksumGeneratorBase - { - #region DLL imports - - [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)] - private static extern uint adler32(uint adler, int data, uint length); - - #endregion - - /// <summary> - /// Initializes a new instance of the Adler checksum generator - /// </summary> - public AdlerChecksum() : base() {} - - /// <summary> - /// Initializes a new instance of the Adler checksum generator with a specified value - /// </summary> - /// <param name="initialValue">The value to set the current checksum to</param> - public AdlerChecksum(uint initialValue) : base(initialValue) {} - - /// <summary> - /// Updates the current checksum with part of an array of bytes - /// </summary> - /// <param name="data">The data to update the checksum with</param> - /// <param name="offset">Where in <c>data</c> to start updating</param> - /// <param name="count">The number of bytes from <c>data</c> to use</param> - /// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception> - /// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception> - /// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception> - public override void Update(byte[] data, int offset, int count) - { - if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException(); - if ((offset+count) > data.Length) throw new ArgumentException(); - GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned); - try - { - _current = adler32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count); - } - finally - { - hData.Free(); - } - } - - } - #endregion - -} |