CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
Loading...
Searching...
No Matches
ctkPluginTracker.h
Go to the documentation of this file.
1/*=============================================================================
2
3 Library: CTK
4
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics
7
8 Licensed under the Apache License, Version 2.0 (the "License");
9 you may not use this file except in compliance with the License.
10 You may obtain a copy of the License at
11
12 http://www.apache.org/licenses/LICENSE-2.0
13
14 Unless required by applicable law or agreed to in writing, software
15 distributed under the License is distributed on an "AS IS" BASIS,
16 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 See the License for the specific language governing permissions and
18 limitations under the License.
19
20=============================================================================*/
21
22
23#ifndef CTKPLUGINTRACKER_H
24#define CTKPLUGINTRACKER_H
25
26#include <QScopedPointer>
27
28#include "ctkPluginFrameworkExport.h"
29
30#include "ctkPlugin.h"
32
33template<class T> class ctkTrackedPlugin;
34template<class T> class ctkPluginTrackerPrivate;
35
64template<class T = QSharedPointer<ctkPlugin> >
66{
67public:
68
70
94 ctkPluginTracker(ctkPluginContext* context, ctkPlugin::States stateMask,
95 ctkPluginTrackerCustomizer<T>* customizer = 0);
96
109 virtual void open();
110
122 virtual void close();
123
131
141 virtual T getObject(QSharedPointer<ctkPlugin> plugin) const;
142
153 virtual void remove(QSharedPointer<ctkPlugin> plugin);
154
161 virtual int size() const;
162
182 virtual int getTrackingCount() const;
183
193 virtual QMap<QSharedPointer<ctkPlugin>, T> getTracked() const;
194
201 virtual bool isEmpty() const;
202
203protected:
204
229 T addingPlugin(QSharedPointer<ctkPlugin> plugin, const ctkPluginEvent& event);
230
249 void modifiedPlugin(QSharedPointer<ctkPlugin> plugin, const ctkPluginEvent& event, T object);
250
269 void removedPlugin(QSharedPointer<ctkPlugin> plugin, const ctkPluginEvent& event, T object);
270
271private:
272
277
278 friend class ctkTrackedPlugin<T>;
279 friend class ctkPluginTrackerPrivate<T>;
280
281 inline PluginTrackerPrivate* d_func()
282 {
283 return reinterpret_cast<PluginTrackerPrivate*>(qGetPtrHelper(d_ptr));
284 }
285
286 inline const PluginTrackerPrivate* d_func() const
287 {
288 return reinterpret_cast<const PluginTrackerPrivate*>(qGetPtrHelper(d_ptr));
289 }
290
291 const QScopedPointer<PluginTrackerPrivate> d_ptr;
292};
293
294
295#include "ctkPluginTracker.tpp"
296
297#endif // CTKPLUGINTRACKER_H
void modifiedPlugin(QSharedPointer< ctkPlugin > plugin, const ctkPluginEvent &event, T object)
virtual bool isEmpty() const
virtual void open()
virtual int getTrackingCount() const
void removedPlugin(QSharedPointer< ctkPlugin > plugin, const ctkPluginEvent &event, T object)
virtual int size() const
virtual T getObject(QSharedPointer< ctkPlugin > plugin) const
virtual void close()
T addingPlugin(QSharedPointer< ctkPlugin > plugin, const ctkPluginEvent &event)
virtual void remove(QSharedPointer< ctkPlugin > plugin)
virtual QList< QSharedPointer< ctkPlugin > > getPlugins() const
virtual QMap< QSharedPointer< ctkPlugin >, T > getTracked() const
ctkPluginTracker(ctkPluginContext *context, ctkPlugin::States stateMask, ctkPluginTrackerCustomizer< T > *customizer=0)