33 #ifndef CXSERVICETRACKERLISTENER_H_
34 #define CXSERVICETRACKERLISTENER_H_
36 #include <QSharedDataPointer>
37 #include <boost/function.hpp>
38 #include <boost/shared_ptr.hpp>
39 #undef REGISTERED //Needed on windows to avoid compiler error. Not sure why.
40 #include <ctkServiceEvent.h>
41 #include "ctkServiceTracker.h"
42 #include "ctkServiceTrackerCustomizer.h"
43 #include "ctkPluginContext.h"
44 #include <ctkPluginFramework.h>
79 boost::function<
void (T*)> serviceAdded,
80 boost::function<
void (T*)> serviceModified,
81 boost::function<
void (T*)> serviceRemoved)
84 mServiceTrackerCustomizer = customizer;
85 mServiceTrackerCustomizer->setServiceAddedCallback(serviceAdded);
86 mServiceTrackerCustomizer->setServiceModifiedCallback(serviceModified);
87 mServiceTrackerCustomizer->setServiceRemovedCallback(serviceRemoved);
88 mServiceTracker.reset(
new ctkServiceTracker<T*>(context, mServiceTrackerCustomizer.get()));
100 mServiceTracker->open();
105 QList<T*> services = mServiceTracker->getServices();
106 foreach(T* temp, services)
107 if(temp->getName() == name)
114 return mServiceTracker->getServices();
118 boost::shared_ptr<ServiceTrackerCustomizer<T> > mServiceTrackerCustomizer;
119 boost::shared_ptr<ctkServiceTracker<T*> > mServiceTracker;
ServiceTrackerListener(ctkPluginContext *context, boost::function< void(T *)> serviceAdded, boost::function< void(T *)> serviceModified, boost::function< void(T *)> serviceRemoved)
T * getServiceFromName(QString name)
QList< T * > getServices()
Notify changes in a service lifecycle.
Helper class for listening to services being added, modified and removed.
~ServiceTrackerListener()