package jp.cssj.cti.helpers;

import java.io.IOException;

/**
 * 断片化されたデータを受け取るオブジェクトのインターフェースです。
 * 
 * @author <a href="mailto:miyabe at gnn.co.jp">MIYABE Tatsuhiko </a>
 * @version $Id: ContentBuilder.java,v 1.3 2005/08/18 04:51:26 harumanx Exp $
 */
public interface ContentBuilder {
	/**
	 * 断片を追加します。
	 * 
	 * @throws IOException
	 */
	public void addFragment() throws IOException;

	/**
	 * 断片を挿入します。
	 * 
	 * @param anchorId
	 * @throws IOException
	 */
	public void insertFragmentBefore(int anchorId) throws IOException;

	/**
	 * データを送信します。
	 * 
	 * @param id
	 * @param b
	 * @param off
	 * @param len
	 * @throws IOException
	 */
	public void write(int id, byte[] b, int off, int len) throws IOException;

	/**
	 * フラグメントへの書き込みを終了します。 この呼び出しは必須ではありませんが、データの構築を効率化する可能性があります。
	 * 
	 * @param id
	 * @throws IOException
	 */
	public void close(int id) throws IOException;

	/**
	 * データの送信を終了します。
	 * 
	 * @throws IOException
	 */
	public void finish() throws IOException;
}