22 #ifndef CTKPLUGINCONTEXT_H_
23 #define CTKPLUGINCONTEXT_H_
29 #include <QSharedPointer>
39 #include "ctkPluginFrameworkExport.h"
44 class ctkPluginPrivate;
45 class ctkPluginContextPrivate;
114 QVariant getProperty(
const QString& key)
const;
125 QSharedPointer<ctkPlugin> getPlugin()
const;
134 QSharedPointer<ctkPlugin> getPlugin(
long id)
const;
243 const char* clazz = qobject_interface_iid<S*>();
246 throw ctkServiceException(QString(
"The interface class you are registering your service %1 against has no Q_DECLARE_INTERFACE macro")
247 .arg(service->metaObject()->className()));
249 return registerService(clazz, service, properties);
322 const char* clazz = qobject_interface_iid<S*>();
323 if (clazz == 0)
throw ctkServiceException(
"The service interface class has no Q_DECLARE_INTERFACE macro");
324 return getServiceReferences(QString(clazz), filter);
377 const char* clazz = qobject_interface_iid<S*>();
378 if (clazz == 0)
throw ctkServiceException(
"The service interface class has no Q_DECLARE_INTERFACE macro");
379 return getServiceReference(QString(clazz));
468 return qobject_cast<S*>(getService(reference));
534 QFileInfo getDataFile(
const QString& filename);
594 QSharedPointer<ctkPlugin> installPlugin(
const QUrl& location, QIODevice* input = 0);
613 bool connectPluginListener(
const QObject* receiver,
const char* slot, Qt::ConnectionType
type = Qt::QueuedConnection);
628 void disconnectPluginListener(
const QObject* receiver,
const char* slot = 0);
645 bool connectFrameworkListener(
const QObject* receiver,
const char* slot, Qt::ConnectionType
type = Qt::QueuedConnection);
660 void disconnectFrameworkListener(
const QObject* receiver,
const char* slot = 0);
713 void connectServiceListener(QObject* receiver,
const char* slot,
714 const QString& filter = QString());
724 void disconnectServiceListener(QObject* receiver,
const char* slot);
728 friend class ctkPluginFrameworkPrivate;
730 friend class ctkPluginPrivate;
734 ctkPluginContextPrivate *
const d_ptr;