MNE-CPP  beta 1.0
IIO.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef IIO_H
37 #define IIO_H
38 
39 
40 //*************************************************************************************************************
41 //=============================================================================================================
42 // INCLUDES
43 //=============================================================================================================
44 
45 #include "IPlugin.h"
46 
48 
49 
50 //*************************************************************************************************************
51 //=============================================================================================================
52 // STL INCLUDES
53 //=============================================================================================================
54 
55 #include <QMap>
56 
57 #include <QSharedPointer>
58 
59 
60 //*************************************************************************************************************
61 //=============================================================================================================
62 // QT INCLUDES
63 //=============================================================================================================
64 
65 #include <QFile>
66 
67 
68 //*************************************************************************************************************
69 //=============================================================================================================
70 // DEFINE NAMESPACE MNEX
71 //=============================================================================================================
72 
73 namespace MNEX
74 {
75 
76 
77 //=============================================================================================================
83 class IIO : public IPlugin
84 {
85 //ToDo virtual methods of IMeasurementSink
86 public:
87  typedef QSharedPointer<IIO> SPtr;
88  typedef QSharedPointer<const IIO> ConstSPtr;
90  //=========================================================================================================
94  virtual ~IIO() {};
95 
96  //=========================================================================================================
100  virtual QSharedPointer<IPlugin> clone() const = 0;
101 
102  //=========================================================================================================
106  virtual void init() = 0;
107 
108  //=========================================================================================================
112  virtual void unload() = 0;
113 
114  //=========================================================================================================
121  virtual bool start() = 0;
122 
123  //=========================================================================================================
130  virtual bool stop() = 0;
131 
132  //=========================================================================================================
139  virtual PluginType getType() const = 0;
140 
141  //=========================================================================================================
148  virtual QString getName() const = 0;
149 
150  //=========================================================================================================
157  virtual QWidget* setupWidget() const = 0; //setup();
158 
159  //=========================================================================================================
165  inline void setRTRecordDirName(const QString& dirName);
166 
167 protected:
168 
169  //=========================================================================================================
175  virtual void run() = 0;
176 
178  typedef QMap<unsigned short, QFile*> t_FileMap;
179  t_FileMap m_mapFiles;
180 };
181 
182 
183 //*************************************************************************************************************
184 //=============================================================================================================
185 // INLINE DEFINITIONS
186 //=============================================================================================================
187 
188 inline void IIO::setRTRecordDirName(const QString& dirName)
189 {
190  m_RTRecordDirName = dirName;
191 }
192 
193 } // NAMESPACE
194 
195 Q_DECLARE_INTERFACE(MNEX::IIO, "mne_x/1.0")
196 
197 #endif // IIO_H
virtual QWidget * setupWidget() const =0
Contains declaration of IPlugin interface class.
virtual bool start()=0
virtual void run()=0
virtual PluginType getType() const =0
virtual bool stop()=0
The IPlugin class is the base interface class of all plugins.
Definition: IPlugin.h:92
virtual QSharedPointer< IPlugin > clone() const =0
QString m_RTRecordDirName
Definition: IIO.h:177
QSharedPointer< const IIO > ConstSPtr
Definition: IIO.h:88
virtual QString getName() const =0
Contains the declaration of the CircularBuffer_old class.
Definition: arrow.h:75
t_FileMap m_mapFiles
Definition: IIO.h:179
The IIO class provides an interface for a real-time record plugin.
Definition: IIO.h:83
virtual void unload()=0
virtual void init()=0
QSharedPointer< IIO > SPtr
Definition: IIO.h:87
virtual ~IIO()
Definition: IIO.h:94
QMap< unsigned short, QFile * > t_FileMap
Definition: IIO.h:178
void setRTRecordDirName(const QString &dirName)
Definition: IIO.h:188