Mercurial > repos > SharpZipLib
annotate Checksums/IChecksum.cs @ 4:7516b6315819
* Fix tooling version - we're 2.0 compatible, not 3.5
no-open-ticket
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Wed, 26 Jan 2011 20:04:48 +0000 |
parents | 94e25b786321 |
children |
rev | line source |
---|---|
1
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 // IChecksum.cs - Interface to compute a data checksum |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 // Copyright (C) 2001 Mike Krueger |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
3 // |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 // This file was translated from java, it was part of the GNU Classpath |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
5 // Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 // |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
7 // This program is free software; you can redistribute it and/or |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
8 // modify it under the terms of the GNU General Public License |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 // as published by the Free Software Foundation; either version 2 |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 // of the License, or (at your option) any later version. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
11 // |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
12 // This program is distributed in the hope that it will be useful, |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
15 // GNU General Public License for more details. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
16 // |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
17 // You should have received a copy of the GNU General Public License |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
18 // along with this program; if not, write to the Free Software |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 // |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
21 // Linking this library statically or dynamically with other modules is |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
22 // making a combined work based on this library. Thus, the terms and |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
23 // conditions of the GNU General Public License cover the whole |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
24 // combination. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
25 // |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
26 // As a special exception, the copyright holders of this library give you |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
27 // permission to link this library with independent modules to produce an |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
28 // executable, regardless of the license terms of these independent |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
29 // modules, and to copy and distribute the resulting executable under |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
30 // terms of your choice, provided that you also meet, for each linked |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
31 // independent module, the terms and conditions of the license of that |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
32 // module. An independent module is a module which is not derived from |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
33 // or based on this library. If you modify this library, you may extend |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
34 // this exception to your version of the library, but you are not |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
35 // obligated to do so. If you do not wish to do so, delete this |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
36 // exception statement from your version. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
37 |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
38 namespace ICSharpCode.SharpZipLib.Checksums |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
39 { |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
40 |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
41 /// <summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
42 /// Interface to compute a data checksum used by checked input/output streams. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
43 /// A data checksum can be updated by one byte or with a byte array. After each |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
44 /// update the value of the current checksum can be returned by calling |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
45 /// <code>getValue</code>. The complete checksum object can also be reset |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
46 /// so it can be used again with new data. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
47 /// </summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
48 public interface IChecksum |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
49 { |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
50 /// <summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
51 /// Returns the data checksum computed so far. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
52 /// </summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
53 long Value |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
54 { |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
55 get; |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
56 } |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
57 |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
58 /// <summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
59 /// Resets the data checksum as if no update was ever called. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
60 /// </summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
61 void Reset(); |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
62 |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
63 /// <summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
64 /// Adds one byte to the data checksum. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
65 /// </summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
66 /// <param name = "value"> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
67 /// the data value to add. The high byte of the int is ignored. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
68 /// </param> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
69 void Update(int value); |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
70 |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
71 /// <summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
72 /// Updates the data checksum with the bytes taken from the array. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
73 /// </summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
74 /// <param name="buffer"> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
75 /// buffer an array of bytes |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
76 /// </param> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
77 void Update(byte[] buffer); |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
78 |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
79 /// <summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
80 /// Adds the byte array to the data checksum. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
81 /// </summary> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
82 /// <param name = "buffer"> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
83 /// The buffer which contains the data |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
84 /// </param> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
85 /// <param name = "offset"> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
86 /// The offset in the buffer where the data starts |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
87 /// </param> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
88 /// <param name = "count"> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
89 /// the number of data bytes to add. |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
90 /// </param> |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
91 void Update(byte[] buffer, int offset, int count); |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
92 } |
94e25b786321
Re #311: can't read ZIP file packed by Linux app Archive Manager/File Roller
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
93 } |