3 #include <boost/signal.hpp>
4 #include <boost/bind.hpp>
6 #include <zypp/base/LogTools.h>
7 #include <zypp/base/Easy.h>
15 std::ostream & operator<<( std::ostream & str, const signal<Tp> & obj )
17 return str << "Connected slots: " << obj.num_slots();
22 std::ostream & operator<<( std::ostream & str, const connection & obj )
24 return str << "Connection: "
25 << ( obj.connected() ? '*' : '_' )
26 << ( obj.blocked() ? 'B' : '_' )
35 using boost::signals::connection;
36 using boost::signals::trackable;
41 HelloWorld(const HelloWorld &) {++i;}
44 void operator()(unsigned) const
46 USR << "Hello, World! " << i << std::endl;
52 int HelloWorld::i = 0;
58 static unsigned i = 0;
62 typedef signal<void(unsigned)> SigA;
64 SigA & siga() const { return _sigA; }
69 struct X : public trackable
76 void pong( unsigned i ) const
78 DBG << s << ' ' << i << endl;
84 /******************************************************************
86 ** FUNCTION NAME : main
87 ** FUNCTION TYPE : int
89 int main( int argc, const char * argv[] )
91 --argc; ++argv; // skip arg 0
95 m.siga().connect( boost::bind( &X::pong, &xx, _1 ) );
100 m.siga().connect( boost::bind( &X::pong, &x, _1 ) );
106 ///////////////////////////////////////////
108 INT << "---STOP" << endl;