package voldemort.store.compress;
import java.io.IOException;
/**
* Implementations of this interface provide a strategy for compressing and
* uncompressing data.
*/
public interface CompressionStrategy {
/**
* The type of compression performed.
*/
String getType();
/**
* Uncompresses the data. The array received should not be modified, but it
* may be returned unchanged.
*
* @param data compressed data.
* @return uncompressed data.
* @throws IOException if there is an issue during the operation.
*/
byte[] inflate(byte[] data) throws IOException;
/**
* Compresses the data. The array received should not be modified, but it
* may be returned unchanged.
*
* @param data uncompressed data.
* @return compressed data.
* @throws IOException if there is an issue during the operation.
*/
byte[] deflate(byte[] data) throws IOException;
}