27 #ifndef SERVICEMANAGER_H
28 #define SERVICEMANAGER_H
36 class ServiceManagerPrivate;
42 typedef QWeakPointer<ServicePointerData>
Ptr;
54 Q_PROPERTY(
bool inited READ isInited NOTIFY initedChanged)
56 static
bool isInited();
57 static QObject *getByName(const QByteArray &name);
59 static inline T getByName(const QByteArray &name)
61 static QList<QByteArray> names();
71 static bool setImplementation(
const QByteArray &name,
const ExtensionInfo &info);
76 void serviceChanged(
const QByteArray &name, QObject *newObject, QObject *oldObject);
77 void serviceChanged(QObject *newObject, QObject *oldObject);
78 void initedChanged(
bool inited =
true);
92 QScopedPointer<ServiceManagerPrivate> d_ptr;
106 inline QByteArray
name()
const {
return d ? d.data()->name : QByteArray(); }
107 inline T *
data()
const {
return qobject_cast<T*>(d ? d.data()->object : 0); }
110 inline operator bool()
const {
return d && d.data()->object; }
111 inline operator T*()
const {
return data(); }
119 template <
typename T>
122 return getDataHelper<T>(
reinterpret_cast<T*
>(0));
125 template <
typename T>
128 return getData(&T::staticMetaObject);
131 template <
typename T>
134 return getData(qobject_interface_iid<T*>());
139 #endif // SERVICEMANAGER_H
T & operator*() const
Definition: servicemanager.h:109
Definition: servicemanager.h:96
#define LIBQUTIM_EXPORT
Definition: libqutim_global.h:45
Definition: abstractsearchrequest.h:33
Definition: servicemanager.h:38
QByteArray name
Definition: servicemanager.h:45
QWeakPointer< ServicePointerData > Ptr
Definition: servicemanager.h:42
ServicePointer & operator=(const ServicePointer &o)
Definition: servicemanager.h:103
QByteArray name() const
Definition: servicemanager.h:106
QObject * object
Definition: servicemanager.h:46
bool operator!() const
Definition: servicemanager.h:112
Definition: servicemanager.h:49
bool isNull() const
Definition: servicemanager.h:113
T * data() const
Definition: servicemanager.h:107
Definition: extensioninfo.h:39
ServicePointer(const QByteArray &name)
Definition: servicemanager.h:101
static QObject * getByName(const QByteArray &name)
T * operator->() const
Definition: servicemanager.h:108
ServicePointer()
Definition: servicemanager.h:99
QList< ExtensionInfo > ExtensionInfoList
Definition: extensioninfo.h:64
~ServicePointer()
Definition: servicemanager.h:104
ServicePointer(const ServicePointer &o)
Definition: servicemanager.h:102
ServicePointer(Qt::Initialization)
Definition: servicemanager.h:100