<?php
/**
* タスクマネージャを定義するインタフェース
*
* PHP version 5
*
* @package    interfaces
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

interface ITaskManager extends IObject
{
	/*
	 *   タスクマネージャを初期化する
	 */
	public function init( Config $config );

	/*
	 * タスクを取得する
	 */
	public function getTask( String $task_name );

	/*
	 * スナップショットを取得する
	 */
	public function getSnapshot();

	/**
	 *   イベントディスパッチを行う
	 *
	 */
	public function dispatchEvents( IRequest $request );

	/**
	 *   イベント処理を行う
	 *
	 */
	public function processEvents();

	/**
	 *   ステートフルタスクの保存を行う
	 *
	 */
	public function saveStatefulTasks( Session $session );

	/**
	 *   ステートフルタスクの復帰を行う
	 *
	 */
	public function restoreStatefulTasks( Session $session );
}

return __FILE__;