JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / JU / Adler32.js
1 Clazz.declarePackage ("JU");\r
2 Clazz.load (["JU.Checksum"], "JU.Adler32", null, function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.s1 = 1;\r
5 this.s2 = 0;\r
6 this.b1 = null;\r
7 Clazz.instantialize (this, arguments);\r
8 }, JU, "Adler32", null, JU.Checksum);\r
9 Clazz.prepareFields (c$, function () {\r
10 this.b1 =  Clazz.newByteArray (1, 0);\r
11 });\r
12 Clazz.overrideMethod (c$, "resetLong", \r
13 function (init) {\r
14 this.s1 = init & 0xffff;\r
15 this.s2 = (init >> 16) & 0xffff;\r
16 }, "~N");\r
17 Clazz.overrideMethod (c$, "reset", \r
18 function () {\r
19 this.s1 = 1;\r
20 this.s2 = 0;\r
21 });\r
22 Clazz.overrideMethod (c$, "getValue", \r
23 function () {\r
24 return ((this.s2 << 16) | this.s1);\r
25 });\r
26 Clazz.overrideMethod (c$, "update", \r
27 function (buf, index, len) {\r
28 if (len == 1) {\r
29 this.s1 += buf[index++] & 0xff;\r
30 this.s2 += this.s1;\r
31 this.s1 %= 65521;\r
32 this.s2 %= 65521;\r
33 return;\r
34 }var len1 = Clazz.doubleToInt (len / 5552);\r
35 var len2 = len % 5552;\r
36 while (len1-- > 0) {\r
37 var k = 5552;\r
38 len -= k;\r
39 while (k-- > 0) {\r
40 this.s1 += buf[index++] & 0xff;\r
41 this.s2 += this.s1;\r
42 }\r
43 this.s1 %= 65521;\r
44 this.s2 %= 65521;\r
45 }\r
46 var k = len2;\r
47 len -= k;\r
48 while (k-- > 0) {\r
49 this.s1 += buf[index++] & 0xff;\r
50 this.s2 += this.s1;\r
51 }\r
52 this.s1 %= 65521;\r
53 this.s2 %= 65521;\r
54 }, "~A,~N,~N");\r
55 Clazz.overrideMethod (c$, "updateByteAsInt", \r
56 function (b) {\r
57 this.b1[0] = b;\r
58 this.update (this.b1, 0, 1);\r
59 }, "~N");\r
60 Clazz.defineStatics (c$,\r
61 "BASE", 65521,\r
62 "NMAX", 5552);\r
63 });\r