12 #ifndef CXSERVICETRACKERLISTENER_H_
13 #define CXSERVICETRACKERLISTENER_H_
15 #include <QSharedDataPointer>
16 #include <boost/function.hpp>
17 #include <boost/shared_ptr.hpp>
18 #undef REGISTERED //Needed on windows to avoid compiler error. Not sure why.
19 #include <ctkServiceEvent.h>
20 #include "ctkServiceTracker.h"
21 #include "ctkServiceTrackerCustomizer.h"
22 #include "ctkPluginContext.h"
23 #include <ctkPluginFramework.h>
58 boost::function<
void (T*)> serviceAdded,
59 boost::function<
void (T*)> serviceModified,
60 boost::function<
void (T*)> serviceRemoved)
63 mServiceTrackerCustomizer = customizer;
64 mServiceTrackerCustomizer->setServiceAddedCallback(serviceAdded);
65 mServiceTrackerCustomizer->setServiceModifiedCallback(serviceModified);
66 mServiceTrackerCustomizer->setServiceRemovedCallback(serviceRemoved);
67 mServiceTracker.reset(
new ctkServiceTracker<T*>(context, mServiceTrackerCustomizer.get()));
79 mServiceTracker->open();
84 QList<T*> services = mServiceTracker->getServices();
85 foreach(T* temp, services)
86 if(temp->getName() == name)
93 return mServiceTracker->getServices();
97 boost::shared_ptr<ServiceTrackerCustomizer<T> > mServiceTrackerCustomizer;
98 boost::shared_ptr<ctkServiceTracker<T*> > mServiceTracker;