クラス osl::search::ParallelSearch

#include <parallelSearch.h>

osl::search::ParallelSearchのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

 ParallelSearch ()
 ~ParallelSearch ()
void setVerbose (bool v=true)
void addInLock (Worker *worker)
void add (Worker *worker)
const Job getJob (Worker *w)
const Job getJobInLock (Worker *w)
const Job getJobNonBlock (Worker *w)
const Job getJobNonBlock (Worker *w, uint64_t blocking, uint64_t sibling)
 blocking bitΩäƤСbitjobΤ
WorkergetWorker ()
 ߤΥåɤWorker֤ бΤʤϡallocate롥
void notify_one ()
void makeWorkers ()
void setNumCPUs (int n)
int numCpus () const
void checkStop ()
bool stopping () const
void waitAll ()
void setMasterAlarm (AlarmSwitch alarm)
bool stopMaster ()
void reportWorkers ()
int numActives () const
bool hasWaiting (uint64_t blocking, Worker *&who)

Public 変数

boost::condition shared_condition
boost::mutex shared_mutex

Static Public 変数

static const int MaxCPUs = 16

Private メソッド

void checkTime ()
void incActives ()
void decActives ()
void incWaiting ()
void decWaiting ()

Private 変数

AtomicCounter num_actives
AtomicCounter max_num_actives
AtomicCounter thread_count
AtomicCounter waiting
vector< Worker * > workers
int num_cpus
time_t last_time
AlarmSwitch master_stop_flag
bool verbose
volatile bool stop_all

フレンド

class JobContent
class IncActiveHelper
class DecActiveHelper
class IncWaitingHelper
class DecWaitingHelper


説明

parallelSearch.h315 行で定義されています。


コンストラクタとデストラクタ

osl::search::ParallelSearch::ParallelSearch (  ) 

parallelSearch.cc192 行で定義されています。

参照先 addInLock(), getWorker(), num_cpus, と workers.

osl::search::ParallelSearch::~ParallelSearch (  ) 

parallelSearch.cc207 行で定義されています。

参照先 max_num_actives, verbose, と workers.


関数

void osl::search::ParallelSearch::checkTime (  )  [private]

parallelSearch.cc366 行で定義されています。

参照先 last_time, num_actives, num_cpus, verbose, と waiting.

参照元 decActives(), incActives(), と makeWorkers().

void osl::search::ParallelSearch::setVerbose ( bool  v = true  )  [inline]

parallelSearch.h337 行で定義されています。

参照先 verbose.

void osl::search::ParallelSearch::addInLock ( Worker worker  )  [inline]

parallelSearch.h338 行で定義されています。

参照先 osl::search::Worker::setThreadId(), と workers.

参照元 add(), getWorker(), makeWorkers(), と ParallelSearch().

void osl::search::ParallelSearch::add ( Worker worker  )  [inline]

parallelSearch.h342 行で定義されています。

参照先 addInLock(), と shared_mutex.

const osl::search::Job osl::search::ParallelSearch::getJob ( Worker w  ) 

const osl::search::Job osl::search::ParallelSearch::getJobInLock ( Worker w  ) 

parallelSearch.cc216 行で定義されています。

参照先 osl::search::Job::isNull(), osl::search::JobContent::NotFoundPriority, と workers.

参照元 getJob(), と getJobNonBlock().

const osl::search::Job osl::search::ParallelSearch::getJobNonBlock ( Worker w  ) 

parallelSearch.cc236 行で定義されています。

参照先 osl::search::Worker::checkStop(), getJobInLock(), と shared_mutex.

const osl::search::Job osl::search::ParallelSearch::getJobNonBlock ( Worker w,
uint64_t  blocking,
uint64_t  sibling 
)

osl::search::Worker * osl::search::ParallelSearch::getWorker (  ) 

ߤΥåɤWorker֤ бΤʤϡallocate롥

parallelSearch.cc294 行で定義されています。

参照先 addInLock(), shared_mutex, と workers.

参照元 checkStop(), と ParallelSearch().

void osl::search::ParallelSearch::notify_one (  )  [inline]

parallelSearch.h356 行で定義されています。

参照先 shared_condition.

参照元 makeWorkers().

void osl::search::ParallelSearch::makeWorkers (  ) 

void osl::search::ParallelSearch::setNumCPUs ( int  n  )  [inline]

parallelSearch.h360 行で定義されています。

参照先 MaxCPUs, と num_cpus.

参照元 main().

int osl::search::ParallelSearch::numCpus (  )  const [inline]

void osl::search::ParallelSearch::checkStop (  ) 

bool osl::search::ParallelSearch::stopping (  )  const [inline]

parallelSearch.h366 行で定義されています。

参照先 master_stop_flag, と stop_all.

参照元 osl::search::Worker::checkStop(), と osl::search::JobContent::checkStop().

void osl::search::ParallelSearch::waitAll (  ) 

void osl::search::ParallelSearch::setMasterAlarm ( AlarmSwitch  alarm  )  [inline]

bool osl::search::ParallelSearch::stopMaster (  ) 

parallelSearch.cc427 行で定義されています。

参照先 master_stop_flag.

参照元 osl::search::Worker::stopMaster().

void osl::search::ParallelSearch::reportWorkers (  ) 

parallelSearch.cc462 行で定義されています。

参照先 shared_mutex, と workers.

int osl::search::ParallelSearch::numActives (  )  const [inline]

parallelSearch.h377 行で定義されています。

参照先 num_actives.

参照元 hasWaiting().

bool osl::search::ParallelSearch::hasWaiting ( uint64_t  blocking,
Worker *&  who 
)

parallelSearch.cc439 行で定義されています。

参照先 numActives(), numCpus(), shared_mutex, waiting, と workers.

void osl::search::ParallelSearch::incActives (  )  [private]

void osl::search::ParallelSearch::decActives (  )  [private]

void osl::search::ParallelSearch::incWaiting (  )  [private]

void osl::search::ParallelSearch::decWaiting (  )  [private]


フレンドと関連する関数

friend class JobContent [friend]

parallelSearch.h383 行で定義されています。

friend class IncActiveHelper [friend]

parallelSearch.h384 行で定義されています。

friend class DecActiveHelper [friend]

parallelSearch.h385 行で定義されています。

friend class IncWaitingHelper [friend]

parallelSearch.h386 行で定義されています。

friend class DecWaitingHelper [friend]

parallelSearch.h387 行で定義されています。


変数

parallelSearch.h317 行で定義されています。

参照元 checkTime(), decActives(), incActives(), makeWorkers(), numActives(), と waitAll().

parallelSearch.h318 行で定義されています。

参照元 incActives(), と ~ParallelSearch().

parallelSearch.h319 行で定義されています。

参照元 makeWorkers(), と waitAll().

AtomicCounter osl::search::ParallelSearch::waiting [private]

parallelSearch.h320 行で定義されています。

参照元 checkTime(), decWaiting(), hasWaiting(), incWaiting(), makeWorkers(), と waitAll().

parallelSearch.h322 行で定義されています。

参照元 checkTime(), makeWorkers(), numCpus(), ParallelSearch(), と setNumCPUs().

parallelSearch.h323 行で定義されています。

参照元 checkTime().

parallelSearch.h324 行で定義されています。

参照元 setMasterAlarm(), stopMaster(), stopping(), と waitAll().

parallelSearch.h325 行で定義されています。

参照元 checkTime(), setVerbose(), waitAll(), と ~ParallelSearch().

volatile bool osl::search::ParallelSearch::stop_all [private]

parallelSearch.h326 行で定義されています。

参照元 stopping(), と waitAll().

const int osl::search::ParallelSearch::MaxCPUs = 16 [static]

parallelSearch.h329 行で定義されています。

参照元 setNumCPUs().

parallelSearch.h331 行で定義されています。

参照元 getJob(), makeWorkers(), と notify_one().


このクラスの説明は次のファイルから生成されました:

Thu Oct 8 05:01:18 2009に生成されました。  doxygen 1.5.6