/*
* Copyright (c) 2008-2010 by Christian Lorenz,
* Zuse Institute Berlin
*
* Licensed under the BSD License, see LICENSE file for details.
*
*/
package de.mxro.thrd.xstreemfs.foundation.checksums;
import java.nio.ByteBuffer;
/**
* An interface which must be implemented by checksum algorithms for XtreemFS.
*
* 19.08.2008
*
* @author clorenz
*/
public interface ChecksumAlgorithm extends Cloneable {
/**
* Returns a string that identifies the algorithm, independent of
* implementation details.
*
* @return name of algorithm
*/
public String getName();
/**
* Returns checksum value (as Hex-String) and resets the Algorithm.
*
* @return checksum
*/
public long getValue();
/**
* Resets checksum to initial value.
*
* @return
*/
public void reset();
/**
* Updates checksum with specified data.
*
* @param data
*/
public void update(ByteBuffer data);
/**
* returns a new instance of the checksum algorithm
*
* @return
*/
public ChecksumAlgorithm clone();
}