MGF Server  2.1
Multigaze framework server
 All Classes Functions
CGDVncClient.h
1 #pragma once
2 
3 #include "../winvnc/stdhdrs.h"
4 #include "../winvnc/VSocket.h"
5 #include "../winvnc/rfb.h"
6 #include <omnithread.h>
7 
8 #include <list>
9 
10 #include "gdtypes.h"
11 
12 #include "CGDTextParameter.h"
13 #include "CGDLogger.h"
14 #include "GDEntry.h"
15 #include "CGDEntriesQueue.h"
16 
17 class vncServer;
18 
19 typedef short vncClientId;
20 
22 {
23 public:
24  //CGDVncClient(): mLog("") { } //todo: finalize log folder specification
25  CGDVncClient(int maxBlinks, int maxSamples, int maxFixations, std::string logFolder);
26  virtual ~CGDVncClient();
27 
28 public:
29  void test();
30  void initLogFile();
31 protected:
32  std::string getLogFileMarker();
33 
34  BOOL sendHeaderMessage(CARD8 type, CARD8 subtype, int srcId, int cnt);
35  BOOL sendText(std::string text);
36  template<class T>
37  BOOL sendGazeEntry(std::list<T>, int);
38 
39 //Getters/setters
40 public:
41  void setNickname(std::string name);
42  void setDescription(std::string description);
43  void setRegistered(BOOL reg);
44 
45  std::string getNickname();
46  std::string getDescription();
47  BOOL isRegistered();
48 
49 //information handling
50 public:
51 #pragma region SENDING data to the client
52  BOOL sendGDSingleSample(vncClientId, std::list<gdSingleSample>);
53  BOOL sendGDBlink(vncClientId, std::list<gdBlink>);
54  BOOL sendGDFixation(vncClientId, std::list<gdFixation>);
55 
56  BOOL sendTextMessage(vncClientId, std::string);
57  BOOL sendNickname(vncClientId, std::string);
58  BOOL sendDescription(vncClientId, std::string);
59 
60  BOOL sendRegistration(vncClientId);
61  BOOL sendUnRegistration(vncClientId);
62  BOOL sendPoke(vncClientId);
63 #pragma endregion
64 
65 #pragma region RECEIVING data from the client
66  BOOL receiveGDSingleSample(std::list<gdSingleSample>);
67  BOOL receiveGDBlink(std::list<gdBlink>);
68  BOOL receiveGDFixation(std::list<gdFixation>);
69 
70  BOOL receiveNickname(std::string);
71  BOOL receiveDescription(std::string);
72  BOOL receiveTextMessage(std::string);
73 
74  BOOL receiveRegistration();
75  BOOL receiveUnRegistration();
76  BOOL receivePoke();
77 
78  BOOL receiveStartTracking();
79 #pragma endregion
80 
81 protected:
82  virtual BOOL SendRFBMsg(CARD8 type, BYTE *buffer, int buflen) = 0;
83  virtual void Kill() = 0;
84 
85 protected:
86  //base project compatability
87  vncServer *m_server;
88  vncClientId m_id;
89  omni_mutex m_sendUpdateLock;
90  VSocket *m_socket;
91 
92 private:
93  BOOL mRegistered;
96 
97  CGDBlinksQueuePtr mBlinks;
98  //CGDSSampleQueuePtr mLeftSamples;
99  //CGDSSampleQueuePtr mRightSamples;
100  CGDEntriesQueue<GDSingleSample>* mLeftSamples;
101  CGDEntriesQueue<GDSingleSample>* mRightSamples;
102  CGDFixationsQueuePtr mFixations;
103 
104  TimeStamp mRecStart;
105 
106  CGDLogger mLog;
107 };
108