/*
 * Copyright (C) 2005-2006 Kouji Sugisawa. All rights reserved.
 */

package jp.sourceforge.livez.imode;

import jp.sourceforge.livez.Browser;

/**
 * iモードブラウザ情報のインターフェースです。
 * 
 * @author 杉澤 浩二
 */
public interface ImodeBrowser extends Browser {

	/**
	 * ブラウザの表示可能な幅をピクセル単位で返します。<p>
	 * HTTP リクエスト情報のみからクラスを構築している場合は常に <code>0</code> を返します。
	 * 
	 * @return 表示可能な幅
	 */
	public int getWidth();

	/**
	 * ブラウザの表示可能な高さをピクセル単位で返します。<p>
	 * HTTP リクエスト情報のみからクラスを構築している場合は常に <code>0</code> を返します。
	 * 
	 * @return 表示可能な高さ
	 */
	public int getHeight();

	/**
	 * 文字の表示可能な桁数(バイト数)を返します。<p>
	 * 古い端末では HTTP リクエスト情報のみからクラスを構築している場合は常に <code>16</code> の値を返します。
	 * 
	 * @return 表示可能な桁数(バイト数)
	 */
	public int getColumn();

	/**
	 * 文字の表示可能な行数を返します。<p>
	 * 古い端末では HTTP リクエスト情報のみからクラスを構築している場合は常に <code>6</code> の値を返します。
	 * 
	 * @return 表示可能行数
	 */
	public int getRow();

	/**
	 * ブラウザが一度に受け取れるデータサイズをバイト単位で返します。<p>
	 * この値は必ず 5120 バイト(5キロバイト)以上になります。
	 * 
	 * @return キャッシュサイズ(バイト)
	 */
	public int getCacheSize();

	/**
	 * 対応しているi-HTML(C-HTMLとも言います)のバージョン情報を返します。<p>
	 * HTTP リクエスト情報のみからクラスを構築している場合は常に "1.0" を返します。
	 * 
	 * @return 対応i-HTMLバージョン情報
	 */
	public float getHtmlVersion();

	/**
	 * 対応している i-XHTML のバージョン情報を返します。<p>
	 * i-XHTML に対応していない場合 <code>null</code> を返します。<br>
	 * また HTTP リクエスト情報のみからクラスを構築している場合は常に <code>null</code> を返します。
	 * 
	 * @return 対応XHTMLバージョン情報
	 */
	public Float getXhtmlVersion();

}
