3 #ifndef SZA_UTIL_RTDSERVERTASK_H
4 #define SZA_UTIL_RTDSERVERTASK_H
18 #include "carma/szautil/ServerTask.h"
20 #define REG_DATA_FN(fn) void (fn)(unsigned nByte, unsigned nEl, unsigned char* src, unsigned char* dest)
25 class NetMonitorFrame;
31 class RtdServerMsg :
public GenericTaskMsg {
48 class RtdServerTask :
public sza::util::ServerTask<RtdServerMsg> {
58 MonitoredReg(RegMapBlock* block,
unsigned char* srcPtr, BitMask* validityBitMask);
69 unsigned char* srcPtr_;
70 BitMask* validityBitMask_;
74 REG_DATA_FN(*convFn_);
78 unsigned pack(
unsigned char* destPtr);
82 static REG_DATA_FN(convertNone);
83 static REG_DATA_FN(convertHtons);
84 static REG_DATA_FN(convertHtonl);
85 static REG_DATA_FN(convertDouble);
86 static REG_DATA_FN(convertPairedFourByteType);
94 public ServerTask<RtdServerMsg>::ServerData
99 virtual ~ClientData();
101 RtdClientData clientData_;
103 void processMessage(RtdServerTask* server,
104 ServerConnection* client,
105 std::map<unsigned, RegMapBlock*>& regMap,
106 std::map<unsigned, unsigned char*>& srcPtrMap);
112 std::map<unsigned, MonitoredReg*> monitoredRegsMap_;
113 std::list<MonitoredReg*> monitoredRegsList_;
123 RtdServerTask(
bool spawnThread,
unsigned port, NetMonitorFrame* nmf);
124 RtdServerTask(
bool spawnThread,
unsigned port, NetMonitorFrame* nmf,
int fdRead);
129 virtual ~RtdServerTask();
135 std::map<unsigned, RegMapBlock*> registerBlockMap_;
136 std::map<unsigned, unsigned char*> srcPtrMap_;
138 unsigned char* vRegPtr_;
139 RegMapBlock* vRegBlk_;
140 BitMask validityBitMask_;
142 NetMonitorFrame* nmf_;
144 RtdClientData clientData_;
147 void constructMapOfRegisters();
149 void checkForServerData();
150 void processClientData(ServerConnection* client);
152 void sendRegisterMap(ServerConnection* client);
153 void sendRegisterMap();
155 void sendAddRegAck(ServerConnection* client);
156 void sendRemRegAck(ServerConnection* client);
158 void sendDataRegisters();
159 void sendDataRegisters(ServerConnection* client);
163 void readClientData(ServerConnection* client);
164 void acceptClientAction(ServerConnection* conn);
173 #endif // End #ifndef SZA_UTIL_RTDSERVERTASK_H
Tagged: Tue Mar 6 16:39:02 PST 2012.
Tagged: Thu Mar 7 15:26:50 PST 2013.
Tagged: Fri Nov 14 12:39:34 UTC 2003.