MNE-CPP  beta 1.0
plugininputdata.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef PLUGININPUTDATA_H
36 #define PLUGININPUTDATA_H
37 
38 //*************************************************************************************************************
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../mne_x_global.h"
44 
45 #include "plugininputconnector.h"
46 
47 #include <QSharedPointer>
48 
49 
50 
51 //*************************************************************************************************************
52 //=============================================================================================================
53 // DEFINE NAMESPACE MNEX
54 //=============================================================================================================
55 
56 namespace MNEX
57 {
58 
59 template <class T>
61 {
62 public:
63  typedef void (*callback_function)(QSharedPointer<T>);
65  typedef QSharedPointer<PluginInputData> SPtr;
66  typedef QSharedPointer<const PluginInputData> ConstSPtr;
69  //=========================================================================================================
77  PluginInputData(IPlugin *parent, const QString &name, const QString &descr);
78 
79  //=========================================================================================================
83  virtual ~PluginInputData(){}
84 
85  //=========================================================================================================
95  static inline QSharedPointer< PluginInputData<T> > create(IPlugin *parent, const QString &name, const QString &descr);
96 
97  //=========================================================================================================
105 
106 protected:
107  //=========================================================================================================
114 
115 private:
116  callback_function m_pFunc;
118 };
119 
120 //*************************************************************************************************************
121 //=============================================================================================================
122 // INLINE DEFINITIONS
123 //=============================================================================================================
124 
125 template <class T>
126 inline QSharedPointer< PluginInputData<T> > PluginInputData<T>::create(IPlugin *parent, const QString &name, const QString &descr)
127 {
128  QSharedPointer< PluginInputData<T> > pPluginInputData(new PluginInputData<T>(parent, name, descr));
129  return pPluginInputData;
130 }
131 
132 } // NAMESPACE
133 
134 //Make the template definition visible to compiler in the first point of instantiation
135 #include "plugininputdata.cpp"
136 
137 #endif // PLUGININPUTDATA_H
void setCallbackMethod(callback_function pFunc)
QSharedPointer< const PluginInputData > ConstSPtr
The IPlugin class is the base interface class of all plugins.
Definition: IPlugin.h:92
Contains the declaration of the PluginInputData class.
void(* callback_function)(QSharedPointer< T >)
QSharedPointer< PluginInputData > SPtr
The PluginConnector class provides the base to connect plug-in data.
Definition: arrow.h:75
QSharedPointer< NewMeasurement > SPtr
PluginInputData(IPlugin *parent, const QString &name, const QString &descr)
void notifyCallbackFunction(XMEASLIB::NewMeasurement::SPtr pMeasurement)
static QSharedPointer< PluginInputData< T > > create(IPlugin *parent, const QString &name, const QString &descr)