12 #ifndef ZYPP_CALLBACK_H 13 #define ZYPP_CALLBACK_H 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>
293 Distributor::instance().noReceiver();
305 Distributor::instance().setReceiver( *
_oldRec );
307 Distributor::instance().noReceiver();
319 #endif // ZYPP_CALLBACK_H ReceiveReport< TReport > Receiver
void setReceiver(Receiver &rec_r)
ReceiveReport< TReport > Receiver
DistributeReport< TReport > Distributor
DistributeReport< TReport > Distributor
TempConnect(Receiver &rec_r)
DistributeReport< TReport > Distributor
ReceiveReport< TReport > Receiver
callback::UserData UserData
ReceiveReport< TReport > Receiver
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.
zypp::callback::UserData UserData
static DistributeReport & instance()
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Receiver * getReceiver() const
void unsetReceiver(Receiver &rec_r)
static Receiver * whoIsConnected()
Typesafe passing of user data via callbacks.
virtual void reportbegin()
DistributeReport< TReport > Distributor
Easy-to use interface to the ZYPP dependency resolver.
ReceiveReport * whoIsConnected() const
UserData::ContentType ContentType
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Mime type like 'type/subtype' classification of content.