create regress_simple for Java
[liba.git] / java / src / liba / crc8.java
blob23172c034b79e2c43d2b8ee9219ac3613a7ba9a1
1 package liba;
3 import java.nio.ByteBuffer;
5 /** 8-bit Cyclic Redundancy Check */
6 public class crc8 {
7 ByteBuffer ctx;
8 static {
9 System.loadLibrary("a");
10 clinit();
13 static final native void clinit();
15 final native void init(byte poly, boolean reversed);
17 /**
18 * construct a new {@link crc8} object
20 * @param poly polynomial that is CRC's divisor
22 public crc8(byte poly) {
23 init(poly, false);
26 /**
27 * construct a new {@link crc8} object
29 * @param poly polynomial that is CRC's divisor
30 * @param reversed is reversed?
32 public crc8(byte poly, boolean reversed) {
33 init(poly, reversed);
36 /**
37 * get table for 8-bit Cyclic Redundancy Check
39 * @return filter coefficient [0,1]
41 public final native byte[] table();
43 /**
44 * generate for 8-bit Cyclic Redundancy Check
46 * @param poly polynomial that is CRC's divisor
47 * @param reversed is reversed?
48 * @return {@link crc8}
50 public final native crc8 gen(byte poly, boolean reversed);
52 /**
53 * calculate for 8-bit Cyclic Redundancy Check
55 * @param block block to be processed
56 * @param value initial value
57 * @return output value
59 public final native byte eval(byte[] block, byte value);
61 /**
62 * calculate for 8-bit Cyclic Redundancy Check
64 * @param block block to be processed
65 * @return output value
67 public byte eval(byte[] block) {
68 return eval(block, (byte) 0);
71 /**
72 * pack a block and its CRC-8 value
74 * @param block block to be processed
75 * @param value initial value
76 * @return packed block
78 public final native byte[] pack(byte[] block, byte value);
80 /**
81 * pack a block and its CRC-8 value
83 * @param block block to be processed
84 * @return packed block
86 public byte[] pack(byte[] block) {
87 return pack(block, (byte) 0);