Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

Lamp::Thread Class Reference

スレッド More...

#include <Thread.h>

Inheritance diagram for Lamp::Thread:

Lamp::Runnable Lamp::WaitSet Lamp::LockObject Lamp::BufferedInput Lamp::StreamPlayer List of all members.

Public Types

enum  Priority {
  priorityTimeCritical = THREAD_PRIORITY_TIME_CRITICAL, priorityHighest = THREAD_PRIORITY_HIGHEST, priorityHigh = THREAD_PRIORITY_ABOVE_NORMAL, priorityNormal = THREAD_PRIORITY_NORMAL,
  priorityLow = THREAD_PRIORITY_BELOW_NORMAL, priorityLowest = THREAD_PRIORITY_LOWEST, priorityIdle = THREAD_PRIORITY_IDLE
}
 優先度 More...


Public Member Functions

 Thread ()
 コンストラクタ

 Thread (Runnable *runnable)
 コンストラクタ

 Thread (LockObject *lockObject, bool deleteLockObject)
 コンストラクタ

 Thread (Runnable *runnable, LockObject *lockObject, bool deleteLockObject)
 コンストラクタ

virtual ~Thread ()
 デストラクタ

virtual void start ()
 スレッドを開始する

virtual void setup ()
 スレッドをセットアップする

virtual void run (Thread *thread)
 実行

virtual void requestStop ()
 スレッドの終了を依頼する

virtual void stop ()
 スレッドの終了を依頼し、終了を待つ

virtual bool stop (u_int milliseconds)
 スレッドの終了を依頼し、終了を待つ

virtual void join ()
 スレッドの終了を待つ

virtual bool join (u_int milliseconds)
 スレッドの終了を待つ

virtual void setPriority (Priority priority)
 プライオリティの設定

virtual Priority getPriority ()
 プライオリティの取得

virtual void suspend ()
 サスペンド

virtual void resume ()
 レジューム

virtual HANDLE getThreadHandle () const
 スレッドハンドルの取得

virtual u_int getThreadID () const
 スレッドIDの取得

virtual bool isFinished () const
 スレッドが終了しているか

virtual u_int getStackSize ()
 スタックサイズの取得

virtual u_int executeWrapper ()
 スレッドの実行ラッパ


Static Public Member Functions

void sleep (u_int milliseconds)
 カレントスレッドの休止

void yield ()
 カレントスレッドから制御を譲る


Protected Member Functions

virtual void createThread ()
 スレッドの作成


Friends

class LampCore

Detailed Description

スレッド

スレッドはマルチスレッド版のCランタイムライブラリを必要とします。ビルドできない 場合はランタイムライブラリの設定がマルチスレッドになっているか確認をしてください。

Definition at line 39 of file Thread.h.


Member Enumeration Documentation

enum Lamp::Thread::Priority
 

優先度

Enumeration values:
priorityTimeCritical  タイムクリティカル
priorityHighest  とても高い
priorityHigh  高い
priorityNormal  通常
priorityLow  低い
priorityLowest  とても低い
priorityIdle  アイドル

Definition at line 43 of file Thread.h.

Referenced by getPriority().


Constructor & Destructor Documentation

Lamp::Thread::Thread Runnable runnable  ) 
 

コンストラクタ

Parameters:
runnable 実行対象

Definition at line 72 of file Thread.cpp.

References createThread().

Lamp::Thread::Thread LockObject lockObject,
bool  deleteLockObject
 

コンストラクタ

Parameters:
lockObject ロックオブジェクト
deleteLockObject ロックオブジェクトをThreadが削除するならtrue

Definition at line 79 of file Thread.cpp.

References createThread().

Lamp::Thread::Thread Runnable runnable,
LockObject lockObject,
bool  deleteLockObject
 

コンストラクタ

Parameters:
runnable 実行対象
lockObject ロックオブジェクト
deleteLockObject ロックオブジェクトをThreadが削除するならtrue

Definition at line 87 of file Thread.cpp.

References createThread().


Member Function Documentation

u_int Lamp::Thread::executeWrapper  )  [virtual]
 

スレッドの実行ラッパ

このメソッドはシステムから利用されるので決して呼び出さないで下さい

Definition at line 225 of file Thread.cpp.

References getThreadHandle(), Lamp::Runnable::run(), Lamp::Runnable::setStopRequested(), and u_int.

Referenced by Lamp::threadCallback().

virtual u_int Lamp::Thread::getStackSize  )  [inline, virtual]
 

スタックサイズの取得

Returns:
スタックサイズ
このメソッドをオーバーライドすることによりスタックサイズを変更できます

Definition at line 195 of file Thread.h.

References u_int.

Referenced by createThread().

virtual HANDLE Lamp::Thread::getThreadHandle  )  const [inline, virtual]
 

スレッドハンドルの取得

Returns:
スレッドハンドル

Definition at line 175 of file Thread.h.

Referenced by executeWrapper(), getPriority(), join(), requestStop(), resume(), setPriority(), setup(), start(), suspend(), and Lamp::WaitSet::wait().

virtual u_int Lamp::Thread::getThreadID  )  const [inline, virtual]
 

スレッドIDの取得

Returns:
スレッドID

Definition at line 181 of file Thread.h.

References u_int.

Referenced by getPriority(), join(), requestStop(), setPriority(), setup(), start(), and suspend().

virtual bool Lamp::Thread::isFinished  )  const [inline, virtual]
 

スレッドが終了しているか

Returns:
スレッドが終了していればtrue

Definition at line 187 of file Thread.h.

Referenced by join(), Lamp::FPSController::registerBackgroundThread(), requestStop(), resume(), Lamp::FPSController::sleep(), stop(), and suspend().

bool Lamp::Thread::join u_int  milliseconds  )  [virtual]
 

スレッドの終了を待つ

Parameters:
milliseconds タイムアウトまでのミリ秒を指定する
Returns:
終了していればtrueを返す、falseならタイムアウト

Definition at line 156 of file Thread.cpp.

References Assert, ErrorOut, getThreadHandle(), getThreadID(), isFinished(), and u_int.

virtual void Lamp::Thread::run Thread thread  )  [inline, virtual]
 

実行

Parameters:
thread 実行しているスレッド
isStopRequested()がtrueを返す場合は速やかに処理を終了させる

Implements Lamp::Runnable.

Reimplemented in Lamp::BufferedInput, and Lamp::StreamPlayer.

Definition at line 113 of file Thread.h.

void Lamp::Thread::sleep u_int  milliseconds  )  [inline, static]
 

カレントスレッドの休止

Parameters:
milliseconds 休止時間をミリ秒で指定する

Definition at line 204 of file Thread.h.

bool Lamp::Thread::stop u_int  milliseconds  )  [virtual]
 

スレッドの終了を依頼し、終了を待つ

Parameters:
milliseconds タイムアウトまでのミリ秒を指定する
Returns:
終了していればtrueを返す、falseならタイムアウト

Definition at line 149 of file Thread.cpp.

References isFinished(), join(), and requestStop().

void Lamp::Thread::suspend  )  [virtual]
 

サスペンド

ロックをかけるので自分自身のsuspendは呼べない

Definition at line 202 of file Thread.cpp.

References Assert, ErrorOut, getThreadHandle(), getThreadID(), and isFinished().

Referenced by Lamp::FPSController::sleep().


The documentation for this class was generated from the following files:
Generated on Wed Mar 16 10:29:53 2005 for Lamp by doxygen 1.3.2