12 #ifndef ZYPP_CALLBACK_H 13 #define ZYPP_CALLBACK_H 155 virtual void report(
const UserData & userData_r = UserData() )
163 template<
class TReport>
167 template<
class TReport>
178 {
return Distributor::instance().getReceiver(); }
181 {
return whoIsConnected() ==
this; }
184 { Distributor::instance().setReceiver( *
this ); }
187 { Distributor::instance().unsetReceiver( *
this ); }
196 template<
class TReport>
211 {
return _receiver == &_noReceiver ? 0 : _receiver; }
214 { _receiver = &rec_r; }
217 {
if ( _receiver == &rec_r ) noReceiver(); }
220 { _receiver = &_noReceiver; }
224 {
return _receiver; }
228 : _receiver( &_noReceiver )
235 template<
class TReport>
243 { Distributor::instance()->reportbegin(); }
246 { Distributor::instance()->reportend(); }
249 {
return Distributor::instance().getReceiver(); }
252 {
return whoIsConnected(); }
255 {
return Distributor::instance(); }
283 template<
class TReport>
291 :
_oldRec( Distributor::instance().getReceiver() )
293 Distributor::instance().noReceiver();
297 :
_oldRec( Distributor::instance().getReceiver() )
305 Distributor::instance().setReceiver( *
_oldRec );
307 Distributor::instance().noReceiver();
319 #endif // ZYPP_CALLBACK_H ReceiveReport< TReport > Receiver
ReceiveReport< TReport > Receiver
ReceiveReport< TReport > Receiver
Receiver * getReceiver() const
DistributeReport< TReport > Distributor
TempConnect(Receiver &rec_r)
DistributeReport< TReport > Distributor
ReceiveReport< TReport > Receiver
static DistributeReport & instance()
callback::UserData UserData
Temporarily connect a ReceiveReport then restore the previous one.
Distributor & operator->()
virtual void report(const UserData &userData_r=UserData())
The most generic way of sending/receiving data.
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
DistributeReport< TReport > Distributor
static Receiver * whoIsConnected()
Typesafe passing of user data via callbacks.
virtual void reportbegin()
DistributeReport< TReport > Distributor
void unsetReceiver(Receiver &rec_r)
void setReceiver(Receiver &rec_r)
Easy-to use interface to the ZYPP dependency resolver.
ReceiveReport * whoIsConnected() const
UserData::ContentType ContentType
Mime type like 'type/subtype' classification of content.