クラス osl::search::Worker

#include <parallelSearch.h>

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

Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

 Worker (ParallelSearch *parent, boost::thread *th=0)
void operator() (void)
const Job getJob (Worker *w)
 call with shared_mutex locked
int getPriority () const
int getPriorityMax () const
boost::thread * getThread () const
void push_back (Job job)
 shared_mutex lock
bool pop_back_job ()
 shared_mutex lock
bool pop_back_job (JobContent *)
void checkStop () const
const Job getCurrentJob () const
void setCurrentJob (Job const &job)
void resetCrurrentJob ()
unsigned int threadId () const
void stopMaster ()
bool isWaiting () const
void setWaiting (bool wait)
void setWaitingBlock (uint64_t block, uint64_t sib)
void resetWaitingBlock ()
uint64_t waitingBlock () const
uint64_t waitingSibling () const

Public 変数

boost::mutex block_mutex
boost::condition block_condition

Private メソッド

void setThreadId (unsigned int id)
void clearJobs ()
 shared_mutex lock ֤ǸƤ

Private 変数

ParallelSearchparent
boost::thread * th
boost::shared_ptr< JobPooljob_pool
Job current_job
unsigned int thread_id
volatile bool waiting
volatile uint64_t waiting_block
volatile uint64_t sibling

フレンド

class ParallelSearch


説明

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


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

osl::search::Worker::Worker ( ParallelSearch parent,
boost::thread *  th = 0 
) [inline, explicit]

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


関数

void osl::search::Worker::operator() ( void   ) 

const Job osl::search::Worker::getJob ( Worker w  )  [inline]

call with shared_mutex locked

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

参照先 job_pool.

int osl::search::Worker::getPriority (  )  const [inline]

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

参照先 job_pool.

int osl::search::Worker::getPriorityMax (  )  const [inline]

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

参照先 job_pool.

boost::thread* osl::search::Worker::getThread (  )  const [inline]

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

参照先 th.

void osl::search::Worker::push_back ( Job  job  ) 

shared_mutex lock

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

参照先 job_pool, osl::search::ParallelSearch::makeWorkers(), parent, と osl::search::ParallelSearch::shared_mutex.

bool osl::search::Worker::pop_back_job (  ) 

shared_mutex lock

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

参照先 job_pool, parent, と osl::search::ParallelSearch::shared_mutex.

bool osl::search::Worker::pop_back_job ( JobContent content  ) 

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

参照先 job_pool, parent, と osl::search::ParallelSearch::shared_mutex.

void osl::search::Worker::checkStop (  )  const

const Job osl::search::Worker::getCurrentJob (  )  const [inline]

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

参照先 current_job.

void osl::search::Worker::setCurrentJob ( Job const &  job  )  [inline]

void osl::search::Worker::resetCrurrentJob (  )  [inline]

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

参照先 current_job.

unsigned int osl::search::Worker::threadId (  )  const [inline]

void osl::search::Worker::stopMaster (  ) 

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

参照先 parent, osl::search::ParallelSearch::stopMaster(), と threadId().

参照元 operator()().

bool osl::search::Worker::isWaiting (  )  const [inline]

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

参照先 waiting.

void osl::search::Worker::setWaiting ( bool  wait  )  [inline]

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

参照先 waiting.

参照元 osl::search::ParallelSearch::getJobNonBlock(), と operator()().

void osl::search::Worker::setWaitingBlock ( uint64_t  block,
uint64_t  sib 
) [inline]

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

参照先 sibling, waiting, と waiting_block.

void osl::search::Worker::resetWaitingBlock (  )  [inline]

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

参照先 waiting, と waiting_block.

uint64_t osl::search::Worker::waitingBlock (  )  const [inline]

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

参照先 waiting_block.

参照元 operator()().

uint64_t osl::search::Worker::waitingSibling (  )  const [inline]

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

参照先 sibling.

void osl::search::Worker::setThreadId ( unsigned int  id  )  [inline, private]

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

参照先 thread_id.

参照元 osl::search::ParallelSearch::addInLock().

void osl::search::Worker::clearJobs (  )  [inline, private]

shared_mutex lock ֤ǸƤ

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

参照先 job_pool.


フレンドと関連する関数

friend class ParallelSearch [friend]

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


変数

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

参照元 operator()(), pop_back_job(), push_back(), と stopMaster().

boost::thread* osl::search::Worker::th [private]

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

参照元 getThread(), と operator()().

boost::shared_ptr<JobPool> osl::search::Worker::job_pool [private]

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

参照元 clearJobs(), getJob(), getPriority(), getPriorityMax(), pop_back_job(), と push_back().

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

参照元 checkStop(), getCurrentJob(), resetCrurrentJob(), と setCurrentJob().

unsigned int osl::search::Worker::thread_id [private]

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

参照元 setThreadId(), と threadId().

volatile bool osl::search::Worker::waiting [private]

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

参照元 isWaiting(), resetWaitingBlock(), setWaiting(), と setWaitingBlock().

volatile uint64_t osl::search::Worker::waiting_block [private]

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

参照元 resetWaitingBlock(), setWaitingBlock(), と waitingBlock().

volatile uint64_t osl::search::Worker::sibling [private]

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

参照元 setWaitingBlock(), と waitingSibling().

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

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

参照元 osl::search::JobContent::stopNow().


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

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