MNE-CPP  beta 1.0
fiffstreamserver.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef FIFFSTREAMSERVER_H
37 #define FIFFSTREAMSERVER_H
38 
39 //*************************************************************************************************************
40 //=============================================================================================================
41 // MNE INCLUDES
42 //=============================================================================================================
43 
44 #include <fiff/fiff_info.h>
45 #include <rtCommand/commandmanager.h>
46 
47 
48 //*************************************************************************************************************
49 //=============================================================================================================
50 // QT INCLUDES
51 //=============================================================================================================
52 
53 #include <QStringList>
54 #include <QTcpServer>
55 
56 
57 //*************************************************************************************************************
58 //=============================================================================================================
59 // DEFINE NAMESPACE RTSERVER
60 //=============================================================================================================
61 
62 namespace RTSERVER
63 {
64 
65 //*************************************************************************************************************
66 //=============================================================================================================
67 // USED NAMESPACES
68 //=============================================================================================================
69 
70 using namespace FIFFLIB;
71 using namespace RTCOMMANDLIB;
72 
73 
74 //*************************************************************************************************************
75 //=============================================================================================================
76 // FORWARD DECLARATIONS
77 //=============================================================================================================
78 
79 class FiffStreamThread;
80 
81 //=============================================================================================================
87 class FiffStreamServer : public QTcpServer//, public ICommandParser //OLD remove this
88 {
89  Q_OBJECT
90 
91  friend class FiffStreamThread;
92 
93 public:
94 
95  FiffStreamServer(QObject *parent = 0);
96 
97  //=========================================================================================================
101  ~FiffStreamServer();
102 
103  //=========================================================================================================
107  inline FiffStreamThread* getClient(qint32 id);
108 
109  //=========================================================================================================
113  void connectCommands();
114 
115 // virtual bool parseCommand(QStringList& p_sListCommand, QByteArray& p_blockOutputInfo);
116 
117 
118 // //=========================================================================================================
119 // /**
120 // * ToDo...
121 // */
122 // void clearClients();
123 
124 //public slots: --> in Qt 5 not anymore declared as slot
125  void forwardMeasInfo(qint32 ID, FiffInfo p_fiffInfo);
126  void forwardRawBuffer(QSharedPointer<Eigen::MatrixXf> m_pMatRawData);
127 
128 signals:
129  void requestMeasInfo(qint32 ID);
130 
131  void startMeasFiffStreamClient(qint32 ID);
132  void stopMeasFiffStreamClient(qint32 ID);
133 
134  void remitMeasInfo(qint32 ID, FIFFLIB::FiffInfo p_fiffInfo);
135  void remitRawBuffer(QSharedPointer<Eigen::MatrixXf>);
136 
137  void closeFiffStreamServer();
138 
139 protected:
140  void incomingConnection(qintptr socketDescriptor);
141 
142 private:
143  //SLOTS
144  //=========================================================================================================
150  void comClist(Command p_command);
151 
152  //=========================================================================================================
158  void comMeasinfo(Command p_command);
159 
160  //=========================================================================================================
166  void comStart(Command p_command);//comMeas
167 
168  //=========================================================================================================
174  void comStop(Command p_command);
175 
176  //=========================================================================================================
182  void comStopAll(Command p_command);
183 
184  QByteArray parseToId(QString& p_sRawId, qint32& p_iParsedId);
185 
186  QMap<qint32, FiffStreamThread*> m_qClientList;
187  qint32 m_iNextClientId;
188 
189 };
190 
191 
192 //*************************************************************************************************************
193 //=============================================================================================================
194 // INLINE DEFINITIONS
195 //=============================================================================================================
196 
198 {
199  return m_qClientList[id];
200 }
201 
202 } // NAMESPACE
203 
204 #endif //FIFFSTREAMSERVER_H
FIFF measurement file information.
Definition: fiff_info.h:96
The FiffStreamServer class provides.
FiffStreamThread * getClient(qint32 id)
FiffInfo class declaration.
Definition: fiff.h:98