/*
 * $Id: RSSSubModule.java,v 1.2 2005/06/21 15:28:05 rampil Exp $
 * Copyright (c) 2005 LOGICAL-PARADOX.ORG
 */
package org.logical_paradox.rss;

/**
 * RSSSubModuleIF
 * RSS/1bのモジュールとしてのインターフェース
 * このインターフェースを実装しているモジュールは，デバッグ環境から初期化して実行を開始することが出来る．
 * このインターフェースでは，デバッグに必要なモジュールを定義する
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public interface RSSSubModule {
	/**
	 * モジュールコントロール用インターフェース::
	 * モジュールを開始する
	 * @throws ModuleException モジュールの開始に失敗した
	 */
	public void startModule() throws ModuleException;

	/**
	 * モジュールコントロール用インターフェース::
	 * モジュールを一時停止する
	 * @throws ModuleException モジュールの一時停止に失敗した
	 */
	public void suspendModule() throws ModuleException;

	/**
	 * モジュールコントロール用インターフェース::
	 * 停止しているモジュールの実行を再開する
	 * @throws ModuleException モジュールの再開に失敗した
	 */
	public void continueModule() throws ModuleException;

	/**
	 * モジュールコントロール用インターフェース::
	 * モジュールを停止する
 	 * このメソッドが呼ばれた場合，モジュールは安全な方法で終了する
	 * 終了したモジュールは，新しくインスタンスが生成されないと開始することはできない
	 * @throws ModuleException モジュールの停止に失敗した
	 */
	public void stopModule() throws ModuleException;
}
// end of RSSSubModuleIF.java
