1 #ifndef ServiceRegistry_connect_but_block_self_h
2 #define ServiceRegistry_connect_but_block_self_h
24 #include "boost/shared_ptr.hpp"
25 #include "sigc++/signal.h"
26 #include "sigc++/connection.h"
27 #include "boost/bind.hpp"
33 namespace serviceregistry {
34 template<
class Func,
class T1=
void*,
class T2=
void*,
class T3=
void*>
81 const sigc::slot<void>*){
84 template<
class T,
class TArg>
86 const sigc::slot<void,TArg>*) {
91 template<
class Func,
class Signal>
94 boost::shared_ptr<boost::shared_ptr<sigc::connection> > holder(
new boost::shared_ptr<sigc::connection>());
95 *holder = boost::shared_ptr<sigc::connection>(
96 new sigc::connection(oSignal.connect(
98 static_cast<const typename Signal::slot_type*>(0)))));
BlockingWrapper< T > make_blockingwrapper(T iT, const sigc::slot< void > *)
BlockingWrapper(Func iFunc)
void operator()(T1 iT1, T2 iT2)
T::value_type deref(T &iT)
Container::value_type value_type
void operator()(T1 iT1, T2 iT2, T3 iT3)
void connect_but_block_self(Signal &oSignal, const Func &iFunc)