package org.jivesoftware.smack.compression;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public abstract class XMPPInputOutputStream {
   protected static XMPPInputOutputStream.FlushMethod flushMethod;
   protected final String compressionMethod;

   public static void setFlushMethod(XMPPInputOutputStream.FlushMethod flushMethod) {
      XMPPInputOutputStream.flushMethod = flushMethod;
   }

   protected XMPPInputOutputStream(String compressionMethod) {
      this.compressionMethod = compressionMethod;
   }

   public String getCompressionMethod() {
      return this.compressionMethod;
   }

   public abstract boolean isSupported();

   public abstract InputStream getInputStream(InputStream var1) throws IOException;

   public abstract OutputStream getOutputStream(OutputStream var1) throws IOException;

   public static enum FlushMethod {
      FULL_FLUSH,
      SYNC_FLUSH;
   }
}
