<?xml version='1.0' encoding='Shift_JIS' ?>
<doc xml:lang='ja'>
	<head>
		<title>モデルコンテナ</title>
	</head>
	<body>
		<p>モデルコンテナには以下の４つの役割があります。</p>
		<section title="モデルの管理">
			<p>モデルコンテナはWorldオブジェクトを持ち、これをシミュレーションを行うモデルとして管理します。</p>
			<p>このWorldオブジェクトは.boxファイルによる入出力、又はWorldクラスのインポートによって更新されます。</p>
		</section>
		<section title="モデルスレッドによるシミュレーションの実行">
			<p>
				シミュレーションの実行をするということはモデルの時間を進めるということですが、この役割はモデルスレッドによって行なわれています。モデルスレッド（ModelThread）は独立に稼動するスレッド
				です。一定時間ごとにモデルのAgentにTimeEventを配信して時刻を進めます。これにより、モデルの時間が経過してモデルが動きます。（進行の詳細は基礎モデルフレームワークを参照してください）</p>
		</section>
		<section title="Typeの管理">
			<p>
				モデルで利用するTypeの管理を行います。Typeの追加・削除・取得を行うことが出来ます。モデルコンテナにこの機能を持たせることによってモデルとモデルで扱われる意味空間を分離させることができ、複数のモデルで意味空間を共有することができるようになります。（Typeの詳細は基礎モデルフレームワークを参照してください）</p>
		</section>
		<section title="PriorityによるTimeEventの配信管理">
			<p>
				TimeEventがAgentに対して配信されることで、モデルの時間が経過していくことは前述しましたが、このTimeEventのAgentへの配信順をPriorityによって変えることができます</p>
			<p>AgentTypeにはPriorityの数値を設定することができ、この数値の高い順にTimeEventが配信されます。</p>
		</section>
	</body>
</doc>
