MNE-CPP  beta 1.0
pluginconnector.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef PLUGINCONNECTOR_H
36 #define PLUGINCONNECTOR_H
37 
38 //*************************************************************************************************************
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../mne_x_global.h"
44 
45 
46 //*************************************************************************************************************
47 //=============================================================================================================
48 // Qt INCLUDES
49 //=============================================================================================================
50 
51 #include <QObject>
52 #include <QString>
53 #include <QMutex>
54 #include <QSet>
55 #include <QSharedPointer>
56 
57 
58 //*************************************************************************************************************
59 //=============================================================================================================
60 // DEFINE NAMESPACE MNEX
61 //=============================================================================================================
62 
63 namespace MNEX
64 {
65 
66 
67 //*************************************************************************************************************
68 //=============================================================================================================
69 // FORWARD DECLARATIONS
70 //=============================================================================================================
71 
72 class IPlugin;
73 
74 
75 //=============================================================================================================
81 class MNE_X_SHARED_EXPORT PluginConnector : public QObject
82 {
83  Q_OBJECT
84 public:
85  typedef QSharedPointer<PluginConnector> SPtr;
86  typedef QSharedPointer<const PluginConnector> ConstSPtr;
88  //=========================================================================================================
96  PluginConnector(IPlugin *parent, const QString &name, const QString &descr);
97 
98  //=========================================================================================================
102  virtual ~PluginConnector(){}
103 
104  //=========================================================================================================
110  virtual bool isInputConnector() const = 0;
111 
112  //=========================================================================================================
118  virtual bool isOutputConnector() const = 0;
119 
120  //=========================================================================================================
126  inline QString getName() const;
127 
128 signals:
129 
130 
131 
132 protected:
135  //actual obeserver pattern - think of an other implementation --> currently similiar to OpenWalnut
136  //figure out how to Qt signal/slot
137  QSet<PluginConnector::SPtr> m_setConnections;
139 private:
140  QString m_sName;
141  QString m_sDescription;
143 };
144 
145 //*************************************************************************************************************
146 //=============================================================================================================
147 // INLINE DEFINITIONS
148 //=============================================================================================================
149 
151 {
152  return m_sName;
153 }
154 
155 } // NAMESPACE
156 
157 #endif // PLUGINCONNECTOR_H
QSharedPointer< const PluginConnector > ConstSPtr
The IPlugin class is the base interface class of all plugins.
Definition: IPlugin.h:92
QString getName() const
#define MNE_X_SHARED_EXPORT
Definition: mne_x_global.h:55
Definition: arrow.h:75
QSet< PluginConnector::SPtr > m_setConnections
The PluginConnector class provides the base to connect plug-in data.
QSharedPointer< PluginConnector > SPtr