#include <connect_but_block_self.h>
Public Member Functions | |
BlockingWrapper (Func iFunc) | |
void | operator() (T1 iT1, T2 iT2, T3 iT3) |
void | operator() (T1 iT1, T2 iT2) |
void | operator() (T1 iT) |
void | operator() () |
Private Member Functions | |
bool | startBlocking () |
void | unblock () |
Private Attributes | |
Func | func_ |
int | numBlocks_ |
Definition at line 35 of file connect_but_block_self.h.
edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::BlockingWrapper | ( | Func | iFunc | ) | [inline] |
Definition at line 39 of file connect_but_block_self.h.
: func_(iFunc), numBlocks_(0) {}
void edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::operator() | ( | ) | [inline] |
Definition at line 43 of file connect_but_block_self.h.
References edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::func_, edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::startBlocking(), and edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::unblock().
{ boost::shared_ptr<void> guard(static_cast<void*>(0), boost::bind(&BlockingWrapper::unblock,this) ); if( startBlocking() ) { func_(); } }
void edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::operator() | ( | T1 | iT | ) | [inline] |
Definition at line 48 of file connect_but_block_self.h.
References edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::func_, edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::startBlocking(), and edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::unblock().
{ boost::shared_ptr<void> guard(static_cast<void*>(0), boost::bind(&BlockingWrapper::unblock,this) ); if( startBlocking() ) { func_(iT); } }
void edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::operator() | ( | T1 | iT1, |
T2 | iT2, | ||
T3 | iT3 | ||
) | [inline] |
Definition at line 58 of file connect_but_block_self.h.
References edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::func_, edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::startBlocking(), and edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::unblock().
{ boost::shared_ptr<void> guard(static_cast<void*>(0), boost::bind(&BlockingWrapper::unblock,this) ); if( startBlocking() ) { func_(iT1,iT2,iT3); } }
void edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::operator() | ( | T1 | iT1, |
T2 | iT2 | ||
) | [inline] |
Definition at line 53 of file connect_but_block_self.h.
References edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::func_, edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::startBlocking(), and edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::unblock().
{ boost::shared_ptr<void> guard(static_cast<void*>(0), boost::bind(&BlockingWrapper::unblock,this) ); if( startBlocking() ) { func_(iT1,iT2); } }
bool edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::startBlocking | ( | ) | [inline, private] |
Definition at line 69 of file connect_but_block_self.h.
References edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::numBlocks_.
Referenced by edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::operator()().
{ return 1 == ++numBlocks_; }
void edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::unblock | ( | ) | [inline, private] |
Definition at line 70 of file connect_but_block_self.h.
References edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::numBlocks_.
Referenced by edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::operator()().
{ --numBlocks_;}
Func edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::func_ [private] |
Definition at line 71 of file connect_but_block_self.h.
Referenced by edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::operator()().
int edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::numBlocks_ [private] |
Definition at line 72 of file connect_but_block_self.h.
Referenced by edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::startBlocking(), and edm::serviceregistry::BlockingWrapper< Func, T1, T2, T3 >::unblock().