package beast.core;
import java.io.PrintStream;
/**
* @author Andrew Rambaut
* @version $Id$
*/
/**
* interface for items that can be logged through a Logger *
*/
public interface Loggable {
/**
* write header information, e.g. labels of a parameter,
* or Nexus tree preamble
*
* @param out log stream
*/
void init(PrintStream out);
/**
* log this sample for current state to PrintStream,
* e.g. value of a parameter, list of parameters or Newick tree
*
* @param sample chain sample number
* @param out log stream
*/
void log(int sample, PrintStream out);
/**
* close log. An end of log message can be left (as in End; for Nexus trees)
*
* @param out log stream
*/
void close(PrintStream out);
}