package net.contrapunctus.rngzip.util; import com.colloquial.arithcode.ArithCodeModel; import com.colloquial.arithcode.ArithCodeOutputStream; import com.colloquial.arithcode.PPMModel; import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.List; public class PPMContextOutputStream extends PPMContextModel implements ContextualOutputStream { private DataOutputStream out; private ArithCodeOutputStream aco; public PPMContextOutputStream(OutputStream _out, int len) { super(len); aco = new ArithCodeOutputStream(_out, model); out = new DataOutputStream(aco); } public void writeLong(List<String> cx, long lo) throws IOException { noteContext(cx); out.writeLong(lo); } public void writeUTF(List<String> cx, String st) throws IOException { noteContext(cx); out.writeUTF(st); } public void flush() throws IOException { out.flush(); } public void close() throws IOException { out.close(); aco.close(); } }