Commit 5733c3a371eb02e9e60b85d9899c0033f7e008c9

Authored by Thierry Louge
1 parent a63fbcf7

Hub is fully finctionnal

SAMP-registered.txt
1 1 # SAMP registered applications and Methods
2   -# SAMP registered applications and Methods
3   -Registered client-key:0
4   -
5   -client-key:0 metadata : Name Aladin
6   -client-key:0 port : http://127.0.0.1:42195/
7   -samp.hub.event.register registered for client-key:0
8   -table.select.rowList registered for client-key:0
9   -table.highlight.row registered for client-key:0
10   -table.load.fits registered for client-key:0
11   -samp.app.ping registered for client-key:0
12   -coord.pointAt.sky registered for client-key:0
13   -samp.hub.event.shutdown registered for client-key:0
14   -image.load.fits registered for client-key:0
15   -samp.hub.disconnect registered for client-key:0
16   -table.load.votable registered for client-key:0
17   -samp.hub.event.unregister registered for client-key:0
18   -script.aladin.send registered for client-key:0
19   -# SAMP registered applications and Methods
20   -# SAMP registered applications and Methods
21   -Registered client-key:0
22   -
23   -client-key:0 metadata : Name Aladin
24   -client-key:0 port : http://127.0.0.1:42195/
25   -samp.hub.event.register registered for client-key:0
26   -table.select.rowList registered for client-key:0
27   -table.highlight.row registered for client-key:0
28   -table.load.fits registered for client-key:0
29   -samp.app.ping registered for client-key:0
30   -coord.pointAt.sky registered for client-key:0
31   -samp.hub.event.shutdown registered for client-key:0
32   -image.load.fits registered for client-key:0
33   -samp.hub.disconnect registered for client-key:0
34   -table.load.votable registered for client-key:0
35   -samp.hub.event.unregister registered for client-key:0
36   -script.aladin.send registered for client-key:0
37   -# SAMP registered applications and Methods
38   -Registered client-key:0
39   -# SAMP registered applications and Methods
40   -# SAMP registered applications and Methods
41   -Registered client-key:0
42   -
43   -client-key:0 metadata : Name Aladin
44   -client-key:0 port : http://127.0.0.1:42195/
45   -samp.hub.event.register registered for client-key:0
46   -table.select.rowList registered for client-key:0
47   -table.highlight.row registered for client-key:0
48   -table.load.fits registered for client-key:0
49   -samp.app.ping registered for client-key:0
50   -coord.pointAt.sky registered for client-key:0
51   -samp.hub.event.shutdown registered for client-key:0
52   -image.load.fits registered for client-key:0
53   -samp.hub.disconnect registered for client-key:0
54   -table.load.votable registered for client-key:0
55   -samp.hub.event.unregister registered for client-key:0
56   -script.aladin.send registered for client-key:0
57   -# SAMP registered applications and Methods
58   -Registered client-key:0
59   -
60   -client-key:0 metadata : Name Aladin
61   -client-key:0 port : http://127.0.0.1:42196/
62   -samp.hub.event.register registered for client-key:0
63   -table.select.rowList registered for client-key:0
64   -table.highlight.row registered for client-key:0
65   -table.load.fits registered for client-key:0
66   -coord.pointAt.sky registered for client-key:0
67   -samp.app.ping registered for client-key:0
68   -samp.hub.event.shutdown registered for client-key:0
69   -image.load.fits registered for client-key:0
70   -samp.hub.disconnect registered for client-key:0
71   -table.load.votable registered for client-key:0
72   -snapshot.get.jpg registered for client-key:0
73   -samp.hub.event.unregister registered for client-key:0
74   -script.aladin.send registered for client-key:0
75   -samp.hub.event.subscriptions registered for client-key:0
76   -# SAMP registered applications and Methods
77   -# SAMP registered applications and Methods
78   -Registered client-key:0
79   -
80   -client-key:0 metadata : Name Aladin
81   -client-key:0 port : http://127.0.0.1:42195/
82   -samp.hub.event.register registered for client-key:0
83   -table.select.rowList registered for client-key:0
84   -table.highlight.row registered for client-key:0
85   -table.load.fits registered for client-key:0
86   -samp.app.ping registered for client-key:0
87   -coord.pointAt.sky registered for client-key:0
88   -samp.hub.event.shutdown registered for client-key:0
89   -image.load.fits registered for client-key:0
90   -samp.hub.disconnect registered for client-key:0
91   -table.load.votable registered for client-key:0
92   -samp.hub.event.unregister registered for client-key:0
93   -script.aladin.send registered for client-key:0
94   -# SAMP registered applications and Methods
95   -Registered client-key:0
96   -Registered client-key:0
97   -Registered client-key:0
98   -Registered client-key:0
99   -Registered client-key:0
100   -Registered client-key:0
101   -Registered client-key:0
102   -Registered client-key:0
103   -Registered client-key:0
104   -Registered client-key:0
105   -# SAMP registered applications and Methods
106   -# SAMP registered applications and Methods
107   -# SAMP registered applications and Methods
108   -# SAMP registered applications and Methods
109   -# SAMP registered applications and Methods
110   -Registered client-key:0
111   -
112   -client-key:0 metadata : Name Aladin
113   -client-key:0 port : http://127.0.0.1:42195/
114   -samp.hub.event.register registered for client-key:0
115   -table.select.rowList registered for client-key:0
116   -table.highlight.row registered for client-key:0
117   -table.load.fits registered for client-key:0
118   -samp.app.ping registered for client-key:0
119   -coord.pointAt.sky registered for client-key:0
120   -samp.hub.event.shutdown registered for client-key:0
121   -image.load.fits registered for client-key:0
122   -samp.hub.disconnect registered for client-key:0
123   -table.load.votable registered for client-key:0
124   -samp.hub.event.unregister registered for client-key:0
125   -script.aladin.send registered for client-key:0
126   -# SAMP registered applications and Methods
127   -Registered client-key:0
128   -
129   -mysupersecret#0032557sentence metadata : Name Aladin
130   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
131   -samp.hub.event.register registered for mysupersecret#0032557sentence
132   -table.select.rowList registered for mysupersecret#0032557sentence
133   -table.highlight.row registered for mysupersecret#0032557sentence
134   -table.load.fits registered for mysupersecret#0032557sentence
135   -samp.app.ping registered for mysupersecret#0032557sentence
136   -coord.pointAt.sky registered for mysupersecret#0032557sentence
137   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
138   -image.load.fits registered for mysupersecret#0032557sentence
139   -samp.hub.disconnect registered for mysupersecret#0032557sentence
140   -table.load.votable registered for mysupersecret#0032557sentence
141   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
142   -script.aladin.send registered for mysupersecret#0032557sentence
143   -# SAMP registered applications and Methods
144   -Registered client-key:0
145   -
146   -mysupersecret#0032557sentence metadata : Name Aladin
147   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
148   -samp.hub.event.register registered for mysupersecret#0032557sentence
149   -table.select.rowList registered for mysupersecret#0032557sentence
150   -table.highlight.row registered for mysupersecret#0032557sentence
151   -table.load.fits registered for mysupersecret#0032557sentence
152   -samp.app.ping registered for mysupersecret#0032557sentence
153   -coord.pointAt.sky registered for mysupersecret#0032557sentence
154   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
155   -image.load.fits registered for mysupersecret#0032557sentence
156   -samp.hub.disconnect registered for mysupersecret#0032557sentence
157   -table.load.votable registered for mysupersecret#0032557sentence
158   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
159   -script.aladin.send registered for mysupersecret#0032557sentence
160   -# SAMP registered applications and Methods
161   -# SAMP registered applications and Methods
162   -# SAMP registered applications and Methods
163   -# SAMP registered applications and Methods
164   -Registered client-key:0
165   -
166   -mysupersecret#0032557sentence metadata : Name Aladin
167   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
168   -samp.hub.event.register registered for mysupersecret#0032557sentence
169   -table.select.rowList registered for mysupersecret#0032557sentence
170   -table.highlight.row registered for mysupersecret#0032557sentence
171   -table.load.fits registered for mysupersecret#0032557sentence
172   -samp.app.ping registered for mysupersecret#0032557sentence
173   -coord.pointAt.sky registered for mysupersecret#0032557sentence
174   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
175   -image.load.fits registered for mysupersecret#0032557sentence
176   -samp.hub.disconnect registered for mysupersecret#0032557sentence
177   -table.load.votable registered for mysupersecret#0032557sentence
178   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
179   -script.aladin.send registered for mysupersecret#0032557sentence
180   -# SAMP registered applications and Methods
181   -Registered client-key:0
182   -
183   -mysupersecret#0032557sentence metadata : Name Aladin
184   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
185   -samp.hub.event.register registered for mysupersecret#0032557sentence
186   -table.select.rowList registered for mysupersecret#0032557sentence
187   -table.highlight.row registered for mysupersecret#0032557sentence
188   -table.load.fits registered for mysupersecret#0032557sentence
189   -samp.app.ping registered for mysupersecret#0032557sentence
190   -coord.pointAt.sky registered for mysupersecret#0032557sentence
191   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
192   -image.load.fits registered for mysupersecret#0032557sentence
193   -samp.hub.disconnect registered for mysupersecret#0032557sentence
194   -table.load.votable registered for mysupersecret#0032557sentence
195   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
196   -script.aladin.send registered for mysupersecret#0032557sentence
197   -# SAMP registered applications and Methods
198   -Registered client-key:0
199   -
200   -mysupersecret#0032557sentence metadata : Name Aladin
201   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
202   -samp.hub.event.register registered for mysupersecret#0032557sentence
203   -table.select.rowList registered for mysupersecret#0032557sentence
204   -table.highlight.row registered for mysupersecret#0032557sentence
205   -table.load.fits registered for mysupersecret#0032557sentence
206   -samp.app.ping registered for mysupersecret#0032557sentence
207   -coord.pointAt.sky registered for mysupersecret#0032557sentence
208   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
209   -image.load.fits registered for mysupersecret#0032557sentence
210   -samp.hub.disconnect registered for mysupersecret#0032557sentence
211   -table.load.votable registered for mysupersecret#0032557sentence
212   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
213   -script.aladin.send registered for mysupersecret#0032557sentence
214   -Registered client-key:0
215   -
216   -mysupersecret#0032557sentence metadata : Name Aladin
217   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
218   -samp.hub.event.register registered for mysupersecret#0032557sentence
219   -table.select.rowList registered for mysupersecret#0032557sentence
220   -table.highlight.row registered for mysupersecret#0032557sentence
221   -table.load.fits registered for mysupersecret#0032557sentence
222   -samp.app.ping registered for mysupersecret#0032557sentence
223   -coord.pointAt.sky registered for mysupersecret#0032557sentence
224   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
225   -image.load.fits registered for mysupersecret#0032557sentence
226   -samp.hub.disconnect registered for mysupersecret#0032557sentence
227   -table.load.votable registered for mysupersecret#0032557sentence
228   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
229   -script.aladin.send registered for mysupersecret#0032557sentence
230   -# SAMP registered applications and Methods
231   -# SAMP registered applications and Methods
232   -Registered client-key:0
233   -
234   -mysupersecret#0032557sentence metadata : Name Aladin
235   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
236   -samp.hub.event.register registered for mysupersecret#0032557sentence
237   -table.select.rowList registered for mysupersecret#0032557sentence
238   -table.highlight.row registered for mysupersecret#0032557sentence
239   -table.load.fits registered for mysupersecret#0032557sentence
240   -samp.app.ping registered for mysupersecret#0032557sentence
241   -coord.pointAt.sky registered for mysupersecret#0032557sentence
242   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
243   -image.load.fits registered for mysupersecret#0032557sentence
244   -samp.hub.disconnect registered for mysupersecret#0032557sentence
245   -table.load.votable registered for mysupersecret#0032557sentence
246   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
247   -script.aladin.send registered for mysupersecret#0032557sentence
248   -# SAMP registered applications and Methods
249   -# SAMP registered applications and Methods
250   -Registered client-key:0
251   -
252   -mysupersecret#0032557sentence metadata : Name Aladin
253   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
254   -samp.hub.event.register registered for mysupersecret#0032557sentence
255   -table.select.rowList registered for mysupersecret#0032557sentence
256   -table.highlight.row registered for mysupersecret#0032557sentence
257   -table.load.fits registered for mysupersecret#0032557sentence
258   -samp.app.ping registered for mysupersecret#0032557sentence
259   -coord.pointAt.sky registered for mysupersecret#0032557sentence
260   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
261   -image.load.fits registered for mysupersecret#0032557sentence
262   -samp.hub.disconnect registered for mysupersecret#0032557sentence
263   -table.load.votable registered for mysupersecret#0032557sentence
264   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
265   -script.aladin.send registered for mysupersecret#0032557sentence
266   -# SAMP registered applications and Methods
267   -Registered client-key:0
268   -
269   -mysupersecret#0032557sentence metadata : Name Aladin
270   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
271   -samp.hub.event.register registered for mysupersecret#0032557sentence
272   -table.select.rowList registered for mysupersecret#0032557sentence
273   -table.highlight.row registered for mysupersecret#0032557sentence
274   -table.load.fits registered for mysupersecret#0032557sentence
275   -samp.app.ping registered for mysupersecret#0032557sentence
276   -coord.pointAt.sky registered for mysupersecret#0032557sentence
277   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
278   -image.load.fits registered for mysupersecret#0032557sentence
279   -samp.hub.disconnect registered for mysupersecret#0032557sentence
280   -table.load.votable registered for mysupersecret#0032557sentence
281   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
282   -script.aladin.send registered for mysupersecret#0032557sentence
283   -# SAMP registered applications and Methods
284   -Registered client-key:0
285   -
286   -mysupersecret#0032557sentence metadata : Name Aladin
287   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
288   -samp.hub.event.register registered for mysupersecret#0032557sentence
289   -table.select.rowList registered for mysupersecret#0032557sentence
290   -table.highlight.row registered for mysupersecret#0032557sentence
291   -table.load.fits registered for mysupersecret#0032557sentence
292   -samp.app.ping registered for mysupersecret#0032557sentence
293   -coord.pointAt.sky registered for mysupersecret#0032557sentence
294   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
295   -image.load.fits registered for mysupersecret#0032557sentence
296   -samp.hub.disconnect registered for mysupersecret#0032557sentence
297   -table.load.votable registered for mysupersecret#0032557sentence
298   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
299   -script.aladin.send registered for mysupersecret#0032557sentence
300   -# SAMP registered applications and Methods
301   -Registered client-key:0
302   -
303   -mysupersecret#0032557sentence metadata : Name Aladin
304   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
305   -samp.hub.event.register registered for mysupersecret#0032557sentence
306   -table.select.rowList registered for mysupersecret#0032557sentence
307   -table.highlight.row registered for mysupersecret#0032557sentence
308   -table.load.fits registered for mysupersecret#0032557sentence
309   -samp.app.ping registered for mysupersecret#0032557sentence
310   -coord.pointAt.sky registered for mysupersecret#0032557sentence
311   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
312   -image.load.fits registered for mysupersecret#0032557sentence
313   -samp.hub.disconnect registered for mysupersecret#0032557sentence
314   -table.load.votable registered for mysupersecret#0032557sentence
315   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
316   -script.aladin.send registered for mysupersecret#0032557sentence
317   -# SAMP registered applications and Methods
318   -# SAMP registered applications and Methods
319   -# SAMP registered applications and Methods
320   -# SAMP registered applications and Methods
321   -Registered client-key:0
322   -
323   -mysupersecret#0032557sentence metadata : Name Aladin
324   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
325   -samp.hub.event.register registered for mysupersecret#0032557sentence
326   -table.select.rowList registered for mysupersecret#0032557sentence
327   -table.highlight.row registered for mysupersecret#0032557sentence
328   -table.load.fits registered for mysupersecret#0032557sentence
329   -samp.app.ping registered for mysupersecret#0032557sentence
330   -coord.pointAt.sky registered for mysupersecret#0032557sentence
331   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
332   -image.load.fits registered for mysupersecret#0032557sentence
333   -samp.hub.disconnect registered for mysupersecret#0032557sentence
334   -table.load.votable registered for mysupersecret#0032557sentence
335   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
336   -script.aladin.send registered for mysupersecret#0032557sentence
337   -# SAMP registered applications and Methods
338   -# SAMP registered applications and Methods
339   -Registered client-key:0
340   -
341   -mysupersecret#0032557sentence metadata : Name Aladin
342   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
343   -samp.hub.event.register registered for mysupersecret#0032557sentence
344   -table.select.rowList registered for mysupersecret#0032557sentence
345   -table.highlight.row registered for mysupersecret#0032557sentence
346   -table.load.fits registered for mysupersecret#0032557sentence
347   -samp.app.ping registered for mysupersecret#0032557sentence
348   -coord.pointAt.sky registered for mysupersecret#0032557sentence
349   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
350   -image.load.fits registered for mysupersecret#0032557sentence
351   -samp.hub.disconnect registered for mysupersecret#0032557sentence
352   -table.load.votable registered for mysupersecret#0032557sentence
353   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
354   -script.aladin.send registered for mysupersecret#0032557sentence
355   -# SAMP registered applications and Methods
356   -Registered client-key:0
357   -
358   -mysupersecret#0032557sentence metadata : Name Aladin
359   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
360   -samp.hub.event.register registered for mysupersecret#0032557sentence
361   -table.select.rowList registered for mysupersecret#0032557sentence
362   -table.highlight.row registered for mysupersecret#0032557sentence
363   -table.load.fits registered for mysupersecret#0032557sentence
364   -samp.app.ping registered for mysupersecret#0032557sentence
365   -coord.pointAt.sky registered for mysupersecret#0032557sentence
366   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
367   -image.load.fits registered for mysupersecret#0032557sentence
368   -samp.hub.disconnect registered for mysupersecret#0032557sentence
369   -table.load.votable registered for mysupersecret#0032557sentence
370   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
371   -script.aladin.send registered for mysupersecret#0032557sentence
372   -# SAMP registered applications and Methods
373   -# SAMP registered applications and Methods
374   -Registered client-key:0
375   -
376   -mysupersecret#0032557sentence metadata : Name Aladin
377   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
378   -samp.hub.event.register registered for mysupersecret#0032557sentence
379   -table.select.rowList registered for mysupersecret#0032557sentence
380   -table.highlight.row registered for mysupersecret#0032557sentence
381   -table.load.fits registered for mysupersecret#0032557sentence
382   -samp.app.ping registered for mysupersecret#0032557sentence
383   -coord.pointAt.sky registered for mysupersecret#0032557sentence
384   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
385   -image.load.fits registered for mysupersecret#0032557sentence
386   -samp.hub.disconnect registered for mysupersecret#0032557sentence
387   -table.load.votable registered for mysupersecret#0032557sentence
388   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
389   -script.aladin.send registered for mysupersecret#0032557sentence
390   -# SAMP registered applications and Methods
391   -Registered client-key:0
392   -
393   -mysupersecret#0032557sentence metadata : Name Aladin
394   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
395   -samp.hub.event.register registered for mysupersecret#0032557sentence
396   -table.select.rowList registered for mysupersecret#0032557sentence
397   -table.highlight.row registered for mysupersecret#0032557sentence
398   -table.load.fits registered for mysupersecret#0032557sentence
399   -samp.app.ping registered for mysupersecret#0032557sentence
400   -coord.pointAt.sky registered for mysupersecret#0032557sentence
401   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
402   -image.load.fits registered for mysupersecret#0032557sentence
403   -samp.hub.disconnect registered for mysupersecret#0032557sentence
404   -table.load.votable registered for mysupersecret#0032557sentence
405   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
406   -script.aladin.send registered for mysupersecret#0032557sentence
407   -# SAMP registered applications and Methods
408   -# SAMP registered applications and Methods
409   -# SAMP registered applications and Methods
410   -Registered client-key:0
411   -# SAMP registered applications and Methods
412   -Registered client-key:0
413   -# SAMP registered applications and Methods
414   -Registered client-key:0
415   -# SAMP registered applications and Methods
416   -# SAMP registered applications and Methods
417   -Registered client-key:0
418   -# SAMP registered applications and Methods
419   -Registered client-key:0
420   -# SAMP registered applications and Methods
421   -# SAMP registered applications and Methods
422   -# SAMP registered applications and Methods
423   -Registered client-key:0
424   -
425   -mysupersecret#0032557sentence metadata : Name Aladin
426   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
427   -samp.hub.event.register registered for mysupersecret#0032557sentence
428   -table.select.rowList registered for mysupersecret#0032557sentence
429   -table.highlight.row registered for mysupersecret#0032557sentence
430   -table.load.fits registered for mysupersecret#0032557sentence
431   -samp.app.ping registered for mysupersecret#0032557sentence
432   -coord.pointAt.sky registered for mysupersecret#0032557sentence
433   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
434   -image.load.fits registered for mysupersecret#0032557sentence
435   -samp.hub.disconnect registered for mysupersecret#0032557sentence
436   -table.load.votable registered for mysupersecret#0032557sentence
437   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
438   -script.aladin.send registered for mysupersecret#0032557sentence
439   -# SAMP registered applications and Methods
440   -Registered client-key:0
441   -
442   -mysupersecret#0032557sentence metadata : Name Aladin
443   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
444   -samp.hub.event.register registered for mysupersecret#0032557sentence
445   -table.select.rowList registered for mysupersecret#0032557sentence
446   -table.highlight.row registered for mysupersecret#0032557sentence
447   -table.load.fits registered for mysupersecret#0032557sentence
448   -samp.app.ping registered for mysupersecret#0032557sentence
449   -coord.pointAt.sky registered for mysupersecret#0032557sentence
450   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
451   -image.load.fits registered for mysupersecret#0032557sentence
452   -samp.hub.disconnect registered for mysupersecret#0032557sentence
453   -table.load.votable registered for mysupersecret#0032557sentence
454   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
455   -script.aladin.send registered for mysupersecret#0032557sentence
456   -# SAMP registered applications and Methods
457   -# SAMP registered applications and Methods
458   -# SAMP registered applications and Methods
459   -# SAMP registered applications and Methods
460   -# SAMP registered applications and Methods
461   -# SAMP registered applications and Methods
462   -Registered client-key:0
463   -
464   -mysupersecret#0032557sentence metadata : Name Aladin
465   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
466   -samp.hub.event.register registered for mysupersecret#0032557sentence
467   -table.select.rowList registered for mysupersecret#0032557sentence
468   -table.highlight.row registered for mysupersecret#0032557sentence
469   -table.load.fits registered for mysupersecret#0032557sentence
470   -samp.app.ping registered for mysupersecret#0032557sentence
471   -coord.pointAt.sky registered for mysupersecret#0032557sentence
472   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
473   -image.load.fits registered for mysupersecret#0032557sentence
474   -samp.hub.disconnect registered for mysupersecret#0032557sentence
475   -table.load.votable registered for mysupersecret#0032557sentence
476   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
477   -script.aladin.send registered for mysupersecret#0032557sentence
478   -# SAMP registered applications and Methods
479   -Registered client-key:0
480   -
481   -mysupersecret#0032557sentence metadata : Name Aladin
482   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
483   -samp.hub.event.register registered for mysupersecret#0032557sentence
484   -table.select.rowList registered for mysupersecret#0032557sentence
485   -table.highlight.row registered for mysupersecret#0032557sentence
486   -table.load.fits registered for mysupersecret#0032557sentence
487   -samp.app.ping registered for mysupersecret#0032557sentence
488   -coord.pointAt.sky registered for mysupersecret#0032557sentence
489   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
490   -image.load.fits registered for mysupersecret#0032557sentence
491   -samp.hub.disconnect registered for mysupersecret#0032557sentence
492   -table.load.votable registered for mysupersecret#0032557sentence
493   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
494   -script.aladin.send registered for mysupersecret#0032557sentence
495   -# SAMP registered applications and Methods
496   -Registered client-key:0
497   -
498   -mysupersecret#0032557sentence metadata : Name Aladin
499   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
500   -samp.hub.event.register registered for mysupersecret#0032557sentence
501   -table.select.rowList registered for mysupersecret#0032557sentence
502   -table.highlight.row registered for mysupersecret#0032557sentence
503   -table.load.fits registered for mysupersecret#0032557sentence
504   -samp.app.ping registered for mysupersecret#0032557sentence
505   -coord.pointAt.sky registered for mysupersecret#0032557sentence
506   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
507   -image.load.fits registered for mysupersecret#0032557sentence
508   -samp.hub.disconnect registered for mysupersecret#0032557sentence
509   -table.load.votable registered for mysupersecret#0032557sentence
510   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
511   -script.aladin.send registered for mysupersecret#0032557sentence
512   -# SAMP registered applications and Methods
513   -Registered client-key:0
514   -
515   -mysupersecret#0032557sentence metadata : Name Aladin
516   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
517   -samp.hub.event.register registered for mysupersecret#0032557sentence
518   -table.select.rowList registered for mysupersecret#0032557sentence
519   -table.highlight.row registered for mysupersecret#0032557sentence
520   -table.load.fits registered for mysupersecret#0032557sentence
521   -samp.app.ping registered for mysupersecret#0032557sentence
522   -coord.pointAt.sky registered for mysupersecret#0032557sentence
523   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
524   -image.load.fits registered for mysupersecret#0032557sentence
525   -samp.hub.disconnect registered for mysupersecret#0032557sentence
526   -table.load.votable registered for mysupersecret#0032557sentence
527   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
528   -script.aladin.send registered for mysupersecret#0032557sentence
529   -Registered client-key:0
530   -
531   -mysupersecret#0032557sentence metadata : Name Aladin
532   -mysupersecret#0032557sentence port : http://127.0.0.1:42195/
533   -samp.hub.event.register registered for mysupersecret#0032557sentence
534   -table.select.rowList registered for mysupersecret#0032557sentence
535   -table.highlight.row registered for mysupersecret#0032557sentence
536   -table.load.fits registered for mysupersecret#0032557sentence
537   -coord.pointAt.sky registered for mysupersecret#0032557sentence
538   -samp.app.ping registered for mysupersecret#0032557sentence
539   -samp.hub.event.shutdown registered for mysupersecret#0032557sentence
540   -image.load.fits registered for mysupersecret#0032557sentence
541   -samp.hub.disconnect registered for mysupersecret#0032557sentence
542   -table.load.votable registered for mysupersecret#0032557sentence
543   -snapshot.get.jpg registered for mysupersecret#0032557sentence
544   -samp.hub.event.unregister registered for mysupersecret#0032557sentence
545   -script.aladin.send registered for mysupersecret#0032557sentence
546   -samp.hub.event.subscriptions registered for mysupersecret#0032557sentence
547   -# SAMP registered applications and Methods
548   -Registered client-key:0
549   -Registered client-key:0
550   -Registered client-key:0
551   -Registered client-key:0
552   -Registered client-key:0
553   -# SAMP registered applications and Methods
554   -Registered client-key:0
555   -# SAMP registered applications and Methods
556   -Registered client-key:0
557   -Registered client-key:0
558   -# SAMP registered applications and Methods
559   -Registered client-key:0
560   -# SAMP registered applications and Methods
561   -Registered client-key:0
562   -# SAMP registered applications and Methods
563   -Registered client-key:0
564   -# SAMP registered applications and Methods
565   -Registered client-key:0
566   -Registered client-key:0
567   -Registered client-key:0
568   -Registered client-key:0
569   -Registered client-key:0
570   -Registered client-key:0
571   -Registered client-key:0
572   -Registered client-key:0
573   -Registered client-key:0
574   -Registered client-key:0
575   -Registered client-key:0
576   -Registered client-key:0
577   -Registered client-key:0
578   -Registered client-key:0
579   -Registered client-key:0
580   -Registered client-key:0
581   -Registered client-key:0
582   -Registered client-key:0
583   -Registered client-key:0
584   -Registered client-key:0
585   -Registered client-key:0
586   -Registered client-key:0
587   -Registered client-key:0
588   -Registered client-key:0
589   -Registered client-key:0
590   -Registered client-key:0
591   -Registered client-key:0
592   -Registered client-key:0
593   -Registered client-key:0
594   -Registered client-key:0
595   -Registered client-key:0
596   -Registered client-key:0
597   -Registered client-key:0
598   -Registered client-key:0
599   -Registered client-key:0
600   -Registered client-key:0
601   -Registered client-key:0
602   -Registered client-key:0
603   -Registered client-key:0
604   -Registered client-key:0
605   -Registered client-key:0
606   -Registered client-key:0
607   -Registered client-key:0
608   -Registered client-key:0
609   -Registered client-key:0
610   -Registered client-key:0
611   -Registered client-key:0
612   -Registered client-key:0
613   -Registered client-key:0
614   -Registered client-key:0
615   -Registered client-key:0
616   -Registered client-key:0
617   -Registered client-key:0
618   -Registered client-key:0
619   -Registered client-key:0
620   -Registered client-key:0
621   -Registered client-key:0
622   -Registered client-key:0
623   -Registered client-key:0
624   -Registered client-key:0
625   -Registered client-key:0
626   -Registered client-key:0
627   -Registered client-key:0
628   -Registered client-key:0
629   -Registered client-key:0
630   -Registered client-key:0
631   -Registered client-key:0
632   -Registered client-key:0
633   -Registered client-key:0
634   -Registered client-key:0
635   -Registered client-key:0
636   -Registered client-key:0
637   -Registered client-key:0
638   -Registered client-key:0
639   -Registered client-key:0
640   -Registered client-key:0
641   -Registered client-key:0
642   -Registered client-key:0
643   -Registered client-key:0
644   -Registered client-key:0
645   -Registered client-key:0
646   -Registered client-key:0
647   -Registered client-key:0
648   -Registered client-key:0
649   -Registered client-key:0
650   -Registered client-key:0
651   -Registered client-key:0
652   -Registered client-key:0
653   -Registered client-key:0
654   -Registered client-key:0
655   -Registered client-key:0
656   -Registered client-key:0
657   -Registered client-key:0
658   -Registered client-key:0
659   -Registered client-key:0
660   -Registered client-key:0
661   -Registered client-key:0
662   -Registered client-key:0
663   -Registered client-key:0
664   -Registered client-key:0
665   -Registered client-key:0
666   -Registered client-key:0
667   -Registered client-key:0
668   -Registered client-key:0
669   -Registered client-key:0
670   -Registered client-key:0
671   -Registered client-key:0
672   -Registered client-key:0
673   -Registered client-key:0
674   -Registered client-key:0
675   -Registered client-key:0
676   -Registered client-key:0
677   -Registered client-key:0
678   -Registered client-key:0
679   -Registered client-key:0
680   -Registered client-key:0
681   -Registered client-key:0
682   -Registered client-key:0
683   -Registered client-key:0
684   -Registered client-key:0
685   -Registered client-key:0
686   -Registered client-key:0
687   -Registered client-key:0
688   -Registered client-key:0
689   -Registered client-key:0
690   -Registered client-key:0
691   -Registered client-key:0
692   -Registered client-key:0
693   -Registered client-key:0
694   -Registered client-key:0
695   -Registered client-key:0
696   -Registered client-key:0
697   -Registered client-key:0
698   -Registered client-key:0
699   -Registered client-key:0
700   -Registered client-key:0
701   -Registered client-key:0
702   -Registered client-key:0
703   -Registered client-key:0
704   -Registered client-key:0
705   -Registered client-key:0
706   -Registered client-key:0
707   -Registered client-key:0
708   -Registered client-key:0
709   -Registered client-key:0
710   -Registered client-key:0
711   -Registered client-key:0
712   -Registered client-key:0
713   -Registered client-key:0
714   -Registered client-key:0
715   -Registered client-key:0
716   -Registered client-key:0
717   -Registered client-key:0
718   -Registered client-key:0
719   -Registered client-key:0
720   -Registered client-key:0
721   -Registered client-key:0
722   -Registered client-key:0
723   -Registered client-key:0
724   -Registered client-key:0
725   -Registered client-key:0
726   -Registered client-key:0
727   -Registered client-key:0
728   -Registered client-key:0
729   -Registered client-key:0
730   -Registered client-key:0
731   -Registered client-key:0
732   -Registered client-key:0
733   -Registered client-key:0
734   -Registered client-key:0
735   -Registered client-key:0
736   -Registered client-key:0
737   -Registered client-key:0
738   -Registered client-key:0
739   -Registered client-key:0
740   -Registered client-key:0
741   -Registered client-key:0
742   -Registered client-key:0
743   -Registered client-key:0
744   -Registered client-key:0
745   -Registered client-key:0
746   -Registered client-key:0
747   -Registered client-key:0
748   -Registered client-key:0
749   -Registered client-key:0
750   -Registered client-key:0
751   -Registered client-key:0
752   -Registered client-key:0
753   -Registered client-key:0
754   -Registered client-key:0
755   -Registered client-key:0
756   -Registered client-key:0
757   -Registered client-key:0
758   -Registered client-key:0
759   -Registered client-key:0
760   -Registered client-key:0
761   -Registered client-key:0
762   -Registered client-key:0
763   -Registered client-key:0
764   -Registered client-key:0
765   -Registered client-key:0
766   -Registered client-key:0
767   -Registered client-key:0
768   -Registered client-key:0
769   -Registered client-key:0
770   -Registered client-key:0
771   -Registered client-key:0
772   -Registered client-key:0
773   -Registered client-key:0
774   -Registered client-key:0
775   -Registered client-key:0
776   -Registered client-key:0
777   -Registered client-key:0
778   -Registered client-key:0
779   -Registered client-key:0
780   -Registered client-key:0
781   -Registered client-key:0
782   -Registered client-key:0
783   -Registered client-key:0
784   -Registered client-key:0
785   -Registered client-key:0
786   -Registered client-key:0
787   -Registered client-key:0
788   -Registered client-key:0
789   -Registered client-key:0
790   -Registered client-key:0
791   -Registered client-key:0
792   -Registered client-key:0
793   -Registered client-key:0
794   -Registered client-key:0
795   -Registered client-key:0
796   -Registered client-key:0
797   -Registered client-key:0
798   -Registered client-key:0
799   -Registered client-key:0
800   -Registered client-key:0
801   -Registered client-key:0
802   -Registered client-key:0
803   -Registered client-key:0
804   -Registered client-key:0
805   -Registered client-key:0
806   -Registered client-key:0
807   -Registered client-key:0
808   -Registered client-key:0
809   -Registered client-key:0
810   -Registered client-key:0
811   -Registered client-key:0
812   -Registered client-key:0
813   -Registered client-key:0
814   -Registered client-key:0
815   -Registered client-key:0
816   -Registered client-key:0
817   -Registered client-key:0
818   -Registered client-key:0
819   -Registered client-key:0
820   -Registered client-key:0
821   -Registered client-key:0
822   -Registered client-key:0
823   -Registered client-key:0
824   -Registered client-key:0
825   -Registered client-key:0
826   -Registered client-key:0
827   -Registered client-key:0
828   -Registered client-key:0
829   -Registered client-key:0
830   -Registered client-key:0
831   -Registered client-key:0
832   -Registered client-key:0
833   -Registered client-key:0
834   -Registered client-key:0
835   -Registered client-key:0
836   -Registered client-key:0
837   -Registered client-key:0
838   -Registered client-key:0
839   -Registered client-key:0
840   -Registered client-key:0
841   -Registered client-key:0
842   -Registered client-key:0
843   -Registered client-key:0
844   -Registered client-key:0
845   -Registered client-key:0
846   -Registered client-key:0
847   -Registered client-key:0
848   -Registered client-key:0
849   -Registered client-key:0
850   -Registered client-key:0
851   -Registered client-key:0
852   -Registered client-key:0
853   -Registered client-key:0
854   -Registered client-key:0
855   -Registered client-key:0
856   -Registered client-key:0
857   -Registered client-key:0
858   -Registered client-key:0
859   -Registered client-key:0
860   -Registered client-key:0
861   -Registered client-key:0
862   -Registered client-key:0
863   -Registered client-key:0
864   -Registered client-key:0
865   -Registered client-key:0
866   -Registered client-key:0
867   -Registered client-key:0
868   -Registered client-key:0
869   -Registered client-key:0
870   -Registered client-key:0
871   -Registered client-key:0
872   -Registered client-key:0
873   -Registered client-key:0
874   -Registered client-key:0
875   -Registered client-key:0
876   -Registered client-key:0
877   -Registered client-key:0
878   -Registered client-key:0
879   -Registered client-key:0
880   -Registered client-key:0
881   -Registered client-key:0
882   -Registered client-key:0
883   -Registered client-key:0
884   -Registered client-key:0
885   -Registered client-key:0
886   -Registered client-key:0
887   -Registered client-key:0
888   -Registered client-key:0
889   -Registered client-key:0
890   -Registered client-key:0
891   -Registered client-key:0
892   -Registered client-key:0
893   -Registered client-key:0
894   -Registered client-key:0
895   -Registered client-key:0
896   -Registered client-key:0
897   -Registered client-key:0
898   -Registered client-key:0
899   -Registered client-key:0
900   -Registered client-key:0
901   -Registered client-key:0
902   -Registered client-key:0
903   -Registered client-key:0
904   -Registered client-key:0
905   -Registered client-key:0
906   -Registered client-key:0
907   -Registered client-key:0
908   -Registered client-key:0
909   -Registered client-key:0
910   -Registered client-key:0
911   -Registered client-key:0
912   -Registered client-key:0
913   -Registered client-key:0
914   -Registered client-key:0
915   -Registered client-key:0
916   -Registered client-key:0
917   -Registered client-key:0
918   -Registered client-key:0
919   -Registered client-key:0
920   -Registered client-key:0
921   -# SAMP registered applications and Methods
922   -Registered client-key:0
923   -Registered client-key:0
924   -Registered client-key:0
925   -# SAMP registered applications and Methods
926   -Registered client-key:0
927   -# SAMP registered applications and Methods
928   -# SAMP registered applications and Methods
929   -# SAMP registered applications and Methods
930   -# SAMP registered applications and Methods
931   -Registered client-key:0
932   -# SAMP registered applications and Methods
933   -# SAMP registered applications and Methods
934   -# SAMP registered applications and Methods
935   -# SAMP registered applications and Methods
936   -# SAMP registered applications and Methods
937   -# SAMP registered applications and Methods
938   -# SAMP registered applications and Methods
939   -# SAMP registered applications and Methods
940   -# SAMP registered applications and Methods
941   -# SAMP registered applications and Methods
942   -# SAMP registered applications and Methods
943   -# SAMP registered applications and Methods
944   -# SAMP registered applications and Methods
945   -Registered client-key:0
946   -Registered client-key:1
947   -# SAMP registered applications and Methods
948   -Registered client-key:0
949   -Registered client-key:1
950   -Registered client-key:2
951   -# SAMP registered applications and Methods
952   -Registered client-key:0
953   -Registered client-key:1
954   -# SAMP registered applications and Methods
955   -# SAMP registered applications and Methods
956   -Registered client-key:0
957   -# SAMP registered applications and Methods
958   -Registered client-key:0
959   -Registered client-key:1
960   -Registered client-key:2
961   -Registered client-key:3
962   -Registered client-key:4
963   -Registered client-key:5
964   -# SAMP registered applications and Methods
965   -Registered client-key:0
966   -Registered client-key:1
967   -Registered client-key:2
968   -Registered client-key:3
969   -Registered client-key:4
970   -Registered client-key:5
971   -Registered client-key:6
972   -Registered client-key:7
973   -Registered client-key:8
974   -Registered client-key:9
975   -Registered client-key:10
976   -Registered client-key:11
977   -Registered client-key:12
978   -Registered client-key:13
979   -Registered client-key:14
980   -Registered client-key:15
981   -Registered client-key:16
982   -Registered client-key:17
983   -Registered client-key:18
984   -Registered client-key:19
985   -Registered client-key:20
986   -Registered client-key:21
987   -Registered client-key:22
988   -# SAMP registered applications and Methods
989   -Registered client-key:0
990   -# SAMP registered applications and Methods
991   -Registered client-key:0
992   -Registered client-key:1
993   -Registered client-key:2
994   -Registered client-key:3
995   -Registered client-key:4
996   -Registered client-key:5
997   -# SAMP registered applications and Methods
998   -Registered client-key:0
999   -Registered client-key:1
1000   -# SAMP registered applications and Methods
1001   -Registered client-key:0
1002   -Registered client-key:0
1003   -Registered client-key:0
1004   -Registered client-key:0
1005   -Registered client-key:0
1006   -Registered client-key:0
1007   -Registered client-key:0
1008   -Registered client-key:0
1009   -Registered client-key:0
1010   -Registered client-key:0
1011   -Registered client-key:0
1012   -Registered client-key:0
1013   -Registered client-key:0
1014   -Registered client-key:0
1015   -# SAMP registered applications and Methods
1016   -Registered client-key:0
1017   -Registered client-key:0
1018   -Registered client-key:0
1019   -Registered client-key:0
1020   -# SAMP registered applications and Methods
1021   -Registered client-key:0
1022   -Registered client-key:0
1023   -Registered client-key:0
1024   -Registered client-key:0
1025   -Registered client-key:0
1026   -Registered client-key:0
1027   -Registered client-key:0
1028   -Registered client-key:0
1029   -Registered client-key:0
1030   -Registered client-key:0
1031   -# SAMP registered applications and Methods
1032   -# SAMP registered applications and Methods
1033   -Registered client-key:0
1034   -
1035   -mysupersecret0032557sentence metadata : Name Aladin
1036   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1037   -samp.hub.event.register registered for mysupersecret0032557sentence
1038   -table.select.rowList registered for mysupersecret0032557sentence
1039   -table.highlight.row registered for mysupersecret0032557sentence
1040   -table.load.fits registered for mysupersecret0032557sentence
1041   -coord.pointAt.sky registered for mysupersecret0032557sentence
1042   -samp.app.ping registered for mysupersecret0032557sentence
1043   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1044   -image.load.fits registered for mysupersecret0032557sentence
1045   -samp.hub.disconnect registered for mysupersecret0032557sentence
1046   -table.load.votable registered for mysupersecret0032557sentence
1047   -snapshot.get.jpg registered for mysupersecret0032557sentence
1048   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1049   -script.aladin.send registered for mysupersecret0032557sentence
1050   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1051   -# SAMP registered applications and Methods
1052   -Registered client-key:0
1053   -
1054   -mysupersecret0032557sentence metadata : Name Aladin
1055   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1056   -samp.hub.event.register registered for mysupersecret0032557sentence
1057   -table.select.rowList registered for mysupersecret0032557sentence
1058   -table.highlight.row registered for mysupersecret0032557sentence
1059   -table.load.fits registered for mysupersecret0032557sentence
1060   -coord.pointAt.sky registered for mysupersecret0032557sentence
1061   -samp.app.ping registered for mysupersecret0032557sentence
1062   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1063   -image.load.fits registered for mysupersecret0032557sentence
1064   -samp.hub.disconnect registered for mysupersecret0032557sentence
1065   -table.load.votable registered for mysupersecret0032557sentence
1066   -snapshot.get.jpg registered for mysupersecret0032557sentence
1067   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1068   -script.aladin.send registered for mysupersecret0032557sentence
1069   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1070   -# SAMP registered applications and Methods
1071   -Registered client-key:0
1072   -
1073   -mysupersecret0032557sentence metadata : Name topcat
1074   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc# SAMP registered applications and Methods
1075   -Registered client-key:0
1076   -Registered client-key:0
1077   -
1078   -mysupersecret0032557sentence metadata : Name Aladin
1079   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1080   -samp.hub.event.register registered for mysupersecret0032557sentence
1081   -table.select.rowList registered for mysupersecret0032557sentence
1082   -table.highlight.row registered for mysupersecret0032557sentence
1083   -table.load.fits registered for mysupersecret0032557sentence
1084   -samp.app.ping registered for mysupersecret0032557sentence
1085   -coord.pointAt.sky registered for mysupersecret0032557sentence
1086   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1087   -image.load.fits registered for mysupersecret0032557sentence
1088   -samp.hub.disconnect registered for mysupersecret0032557sentence
1089   -table.load.votable registered for mysupersecret0032557sentence
1090   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1091   -script.aladin.send registered for mysupersecret0032557sentence
1092   -# SAMP registered applications and Methods
1093   -Registered client-key:0
1094   -
1095   -mysupersecret0032557sentence metadata : Name topcat
1096   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpcRegistered client-key:0
1097   -
1098   -mysupersecret0032557sentence metadata : Name Aladin
1099   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1100   -samp.hub.event.register registered for mysupersecret0032557sentence
1101   -table.select.rowList registered for mysupersecret0032557sentence
1102   -table.highlight.row registered for mysupersecret0032557sentence
1103   -table.load.fits registered for mysupersecret0032557sentence
1104   -coord.pointAt.sky registered for mysupersecret0032557sentence
1105   -samp.app.ping registered for mysupersecret0032557sentence
1106   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1107   -image.load.fits registered for mysupersecret0032557sentence
1108   -samp.hub.disconnect registered for mysupersecret0032557sentence
1109   -table.load.votable registered for mysupersecret0032557sentence
1110   -snapshot.get.jpg registered for mysupersecret0032557sentence
1111   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1112   -script.aladin.send registered for mysupersecret0032557sentence
1113   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1114   -# SAMP registered applications and Methods
1115   -Registered client-key:0
1116   -
1117   -mysupersecret0032557sentence metadata : Name Aladin
1118   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1119   -samp.hub.event.register registered for mysupersecret0032557sentence
1120   -table.select.rowList registered for mysupersecret0032557sentence
1121   -table.highlight.row registered for mysupersecret0032557sentence
1122   -table.load.fits registered for mysupersecret0032557sentence
1123   -coord.pointAt.sky registered for mysupersecret0032557sentence
1124   -samp.app.ping registered for mysupersecret0032557sentence
1125   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1126   -image.load.fits registered for mysupersecret0032557sentence
1127   -samp.hub.disconnect registered for mysupersecret0032557sentence
1128   -table.load.votable registered for mysupersecret0032557sentence
1129   -snapshot.get.jpg registered for mysupersecret0032557sentence
1130   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1131   -script.aladin.send registered for mysupersecret0032557sentence
1132   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1133   -# SAMP registered applications and Methods
1134   -Registered client-key:0
1135   -
1136   -mysupersecret0032557sentence metadata : Name Aladin
1137   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1138   -samp.hub.event.register registered for mysupersecret0032557sentence
1139   -table.select.rowList registered for mysupersecret0032557sentence
1140   -table.highlight.row registered for mysupersecret0032557sentence
1141   -table.load.fits registered for mysupersecret0032557sentence
1142   -coord.pointAt.sky registered for mysupersecret0032557sentence
1143   -samp.app.ping registered for mysupersecret0032557sentence
1144   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1145   -image.load.fits registered for mysupersecret0032557sentence
1146   -samp.hub.disconnect registered for mysupersecret0032557sentence
1147   -table.load.votable registered for mysupersecret0032557sentence
1148   -snapshot.get.jpg registered for mysupersecret0032557sentence
1149   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1150   -script.aladin.send registered for mysupersecret0032557sentence
1151   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1152   -# SAMP registered applications and Methods
1153   -Registered client-key:0
1154   -
1155   -mysupersecret0032557sentence metadata : Name Aladin
1156   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1157   -samp.hub.event.register registered for mysupersecret0032557sentence
1158   -table.select.rowList registered for mysupersecret0032557sentence
1159   -table.highlight.row registered for mysupersecret0032557sentence
1160   -table.load.fits registered for mysupersecret0032557sentence
1161   -coord.pointAt.sky registered for mysupersecret0032557sentence
1162   -samp.app.ping registered for mysupersecret0032557sentence
1163   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1164   -image.load.fits registered for mysupersecret0032557sentence
1165   -samp.hub.disconnect registered for mysupersecret0032557sentence
1166   -table.load.votable registered for mysupersecret0032557sentence
1167   -snapshot.get.jpg registered for mysupersecret0032557sentence
1168   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1169   -script.aladin.send registered for mysupersecret0032557sentence
1170   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1171   -# SAMP registered applications and Methods
1172   -Registered client-key:0
1173   -
1174   -mysupersecret0032557sentence metadata : Name topcat
1175   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc# SAMP registered applications and Methods
1176   -Registered client-key:0
1177   -
1178   -mysupersecret0032557sentence metadata : Name topcat
1179   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc
1180   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1181   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1182   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1183   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1184   -voresource.loadlist registered for mysupersecret0032557sentence
1185   -table.select.rowList registered for mysupersecret0032557sentence
1186   -table.load.votable registered for mysupersecret0032557sentence
1187   -table.load.stil registered for mysupersecret0032557sentence
1188   -table.load.fits registered for mysupersecret0032557sentence
1189   -table.load.cdf registered for mysupersecret0032557sentence
1190   -table.highlight.row registered for mysupersecret0032557sentence
1191   -table.get.stil registered for mysupersecret0032557sentence
1192   -coord.pointAt.sky registered for mysupersecret0032557sentence
1193   -client.env.get registered for mysupersecret0032557sentence
1194   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1195   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1196   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1197   -samp.hub.event.register registered for mysupersecret0032557sentence
1198   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1199   -samp.hub.disconnect registered for mysupersecret0032557sentence
1200   -Registered client-key:0
1201   -
1202   -mysupersecret0032557sentence metadata : Name Aladin
1203   -mysupersecret0032557sentence port : http://127.0.0.1:42195/
1204   -samp.hub.event.register registered for mysupersecret0032557sentence
1205   -table.select.rowList registered for mysupersecret0032557sentence
1206   -table.highlight.row registered for mysupersecret0032557sentence
1207   -table.load.fits registered for mysupersecret0032557sentence
1208   -coord.pointAt.sky registered for mysupersecret0032557sentence
1209   -samp.app.ping registered for mysupersecret0032557sentence
1210   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1211   -image.load.fits registered for mysupersecret0032557sentence
1212   -samp.hub.disconnect registered for mysupersecret0032557sentence
1213   -table.load.votable registered for mysupersecret0032557sentence
1214   -snapshot.get.jpg registered for mysupersecret0032557sentence
1215   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1216   -script.aladin.send registered for mysupersecret0032557sentence
1217   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1218   -# SAMP registered applications and Methods
1219   -Registered client-key:0
1220   -
1221   -mysupersecret0032557sentence metadata : Name topcat
1222   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc
1223   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1224   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1225   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1226   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1227   -voresource.loadlist registered for mysupersecret0032557sentence
1228   -table.select.rowList registered for mysupersecret0032557sentence
1229   -table.load.votable registered for mysupersecret0032557sentence
1230   -table.load.stil registered for mysupersecret0032557sentence
1231   -table.load.fits registered for mysupersecret0032557sentence
1232   -table.load.cdf registered for mysupersecret0032557sentence
1233   -table.highlight.row registered for mysupersecret0032557sentence
1234   -table.get.stil registered for mysupersecret0032557sentence
1235   -coord.pointAt.sky registered for mysupersecret0032557sentence
1236   -client.env.get registered for mysupersecret0032557sentence
1237   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1238   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1239   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1240   -samp.hub.event.register registered for mysupersecret0032557sentence
1241   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1242   -samp.hub.disconnect registered for mysupersecret0032557sentence
1243   -# SAMP registered applications and Methods
1244   -Registered client-key:0
1245   -
1246   -mysupersecret0032557sentence metadata : Name topcat
1247   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc
1248   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1249   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1250   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1251   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1252   -voresource.loadlist registered for mysupersecret0032557sentence
1253   -table.select.rowList registered for mysupersecret0032557sentence
1254   -table.load.votable registered for mysupersecret0032557sentence
1255   -table.load.stil registered for mysupersecret0032557sentence
1256   -table.load.fits registered for mysupersecret0032557sentence
1257   -table.load.cdf registered for mysupersecret0032557sentence
1258   -table.highlight.row registered for mysupersecret0032557sentence
1259   -table.get.stil registered for mysupersecret0032557sentence
1260   -coord.pointAt.sky registered for mysupersecret0032557sentence
1261   -client.env.get registered for mysupersecret0032557sentence
1262   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1263   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1264   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1265   -samp.hub.event.register registered for mysupersecret0032557sentence
1266   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1267   -samp.hub.disconnect registered for mysupersecret0032557sentence
1268   -# SAMP registered applications and Methods
1269   -Registered client-key:0
1270   -
1271   -mysupersecret0032557sentence metadata : Name topcat
1272   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc
1273   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1274   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1275   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1276   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1277   -voresource.loadlist registered for mysupersecret0032557sentence
1278   -table.select.rowList registered for mysupersecret0032557sentence
1279   -table.load.votable registered for mysupersecret0032557sentence
1280   -table.load.stil registered for mysupersecret0032557sentence
1281   -table.load.fits registered for mysupersecret0032557sentence
1282   -table.load.cdf registered for mysupersecret0032557sentence
1283   -table.highlight.row registered for mysupersecret0032557sentence
1284   -table.get.stil registered for mysupersecret0032557sentence
1285   -coord.pointAt.sky registered for mysupersecret0032557sentence
1286   -client.env.get registered for mysupersecret0032557sentence
1287   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1288   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1289   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1290   -samp.hub.event.register registered for mysupersecret0032557sentence
1291   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1292   -samp.hub.disconnect registered for mysupersecret0032557sentence
1293   -# SAMP registered applications and Methods
1294   -Registered client-key:0
1295   -
1296   -mysupersecret0032557sentence metadata : Name topcat
1297   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc
1298   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1299   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1300   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1301   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1302   -voresource.loadlist registered for mysupersecret0032557sentence
1303   -table.select.rowList registered for mysupersecret0032557sentence
1304   -table.load.votable registered for mysupersecret0032557sentence
1305   -table.load.stil registered for mysupersecret0032557sentence
1306   -table.load.fits registered for mysupersecret0032557sentence
1307   -table.load.cdf registered for mysupersecret0032557sentence
1308   -table.highlight.row registered for mysupersecret0032557sentence
1309   -table.get.stil registered for mysupersecret0032557sentence
1310   -coord.pointAt.sky registered for mysupersecret0032557sentence
1311   -client.env.get registered for mysupersecret0032557sentence
1312   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1313   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1314   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1315   -samp.hub.event.register registered for mysupersecret0032557sentence
1316   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1317   -samp.hub.disconnect registered for mysupersecret0032557sentence
1318   -# SAMP registered applications and Methods
1319   -Registered client-key:0
1320   -
1321   -mysupersecret0032557sentence metadata : Name topcat
1322   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc
1323   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1324   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1325   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1326   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1327   -voresource.loadlist registered for mysupersecret0032557sentence
1328   -table.select.rowList registered for mysupersecret0032557sentence
1329   -table.load.votable registered for mysupersecret0032557sentence
1330   -table.load.stil registered for mysupersecret0032557sentence
1331   -table.load.fits registered for mysupersecret0032557sentence
1332   -table.load.cdf registered for mysupersecret0032557sentence
1333   -table.highlight.row registered for mysupersecret0032557sentence
1334   -table.get.stil registered for mysupersecret0032557sentence
1335   -coord.pointAt.sky registered for mysupersecret0032557sentence
1336   -client.env.get registered for mysupersecret0032557sentence
1337   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1338   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1339   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1340   -samp.hub.event.register registered for mysupersecret0032557sentence
1341   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1342   -samp.hub.disconnect registered for mysupersecret0032557sentence
1343   -Registered client-key:0
1344   -
1345   -mysupersecret0032557sentence metadata : Name topcat
1346   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc-1
1347   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1348   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1349   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1350   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1351   -voresource.loadlist registered for mysupersecret0032557sentence
1352   -table.select.rowList registered for mysupersecret0032557sentence
1353   -table.load.votable registered for mysupersecret0032557sentence
1354   -table.load.stil registered for mysupersecret0032557sentence
1355   -table.load.fits registered for mysupersecret0032557sentence
1356   -table.load.cdf registered for mysupersecret0032557sentence
1357   -table.highlight.row registered for mysupersecret0032557sentence
1358   -table.get.stil registered for mysupersecret0032557sentence
1359   -coord.pointAt.sky registered for mysupersecret0032557sentence
1360   -client.env.get registered for mysupersecret0032557sentence
1361   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1362   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1363   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1364   -samp.hub.event.register registered for mysupersecret0032557sentence
1365   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1366   -samp.hub.disconnect registered for mysupersecret0032557sentence
1367   -Registered client-key:0
1368   -
1369   -mysupersecret0032557sentence metadata : Name topcat
1370   -mysupersecret0032557sentence port : http://127.0.0.1:2525/xmlrpc-2
1371   -voresource.loadlist.tap registered for mysupersecret0032557sentence
1372   -voresource.loadlist.ssap registered for mysupersecret0032557sentence
1373   -voresource.loadlist.siap registered for mysupersecret0032557sentence
1374   -voresource.loadlist.cone registered for mysupersecret0032557sentence
1375   -voresource.loadlist registered for mysupersecret0032557sentence
1376   -table.select.rowList registered for mysupersecret0032557sentence
1377   -table.load.votable registered for mysupersecret0032557sentence
1378   -table.load.stil registered for mysupersecret0032557sentence
1379   -table.load.fits registered for mysupersecret0032557sentence
1380   -table.load.cdf registered for mysupersecret0032557sentence
1381   -table.highlight.row registered for mysupersecret0032557sentence
1382   -table.get.stil registered for mysupersecret0032557sentence
1383   -coord.pointAt.sky registered for mysupersecret0032557sentence
1384   -client.env.get registered for mysupersecret0032557sentence
1385   -samp.hub.event.unregister registered for mysupersecret0032557sentence
1386   -samp.hub.event.subscriptions registered for mysupersecret0032557sentence
1387   -samp.hub.event.shutdown registered for mysupersecret0032557sentence
1388   -samp.hub.event.register registered for mysupersecret0032557sentence
1389   -samp.hub.event.metadata registered for mysupersecret0032557sentence
1390   -samp.hub.disconnect registered for mysupersecret0032557sentence
... ...
include/GVOHub.hpp
... ... @@ -26,6 +26,8 @@
26 26  
27 27 #ifndef GVOHUB_HPP
28 28 #define GVOHUB_HPP
  29 +#define GVOHUB_NB_CLIENTS 5
  30 +#define GVOHUB_NB_METHODS 128
29 31  
30 32 /* __ Includes ___________________________________________________________ */
31 33 #include <string>
... ... @@ -72,7 +74,7 @@ protected:
72 74 void start_hub(void);
73 75 void register_service(const GXml& xml,const socklen_t& sock);
74 76 void ping_service(const socklen_t& sock);
75   - void unregister(const socklen_t& sock);
  77 + void unregister(const GXml& xml,const socklen_t& sock);
76 78 void handle_request(const socklen_t& sock);
77 79 void register_metadata(const GXml& xml,const socklen_t& sock);
78 80 void set_xml_rpc_callback(const GXml& xml,const socklen_t& sock);
... ... @@ -99,6 +101,8 @@ protected:
99 101 std::string& name,
100 102 std::string& value) const;
101 103 std::string get_hub_lockfile(void) const;
  104 + std::string random_string( size_t length );
  105 + void intHandler(int sig);
102 106  
103 107 // Protected members
104 108 std::string m_name; //!< Client name
... ... @@ -111,6 +115,28 @@ protected:
111 115 std::string m_hub_id; //!< Hub identifier used by the hub when it sends message itself rather than forwarding from others
112 116 int m_socket; //!< Hub socket
113 117 int m_nb_clients; //!< Number of already registered clients
  118 + typedef struct {
  119 + char private_key[16];
  120 + char name[32];
  121 + char reference[32];
  122 + char description[32];
  123 + char icon[32];
  124 + char documentation[32];
  125 + char affiliation[32];
  126 + char author_name[32];
  127 + char email[32];
  128 + char homepage[32];
  129 + char port[16];
  130 + char registered_methods[GVOHUB_NB_METHODS][128]; //128 methods of 128 cars max.
  131 + } connected_shm;
  132 + typedef struct {
  133 + int registered;
  134 + connected_shm metadatas[GVOHUB_NB_CLIENTS];
  135 + } clients_descriptor;
  136 + clients_descriptor *reg_clients;
  137 + connected_shm *clients;
  138 + void* ptr_mem_partagee; //pointer to shm address
  139 + int shm_handler; //handler to shm
114 140 static std::vector<GVOApp>& connected() {
115 141 static std::vector<GVOApp> m_connected_apps; //!< list of apps connected to the hub
116 142 return m_connected_apps;
... ...
src/vo/GVOHub.cpp
... ... @@ -41,6 +41,11 @@
41 41 #include "GException.hpp"
42 42 #include "GTools.hpp"
43 43 #include "GVOApp.hpp"
  44 +#include <signal.h>
  45 +#include <sys/types.h>
  46 +#include <sys/wait.h>
  47 +#include <sys/ipc.h>
  48 +#include <sys/shm.h>
44 49  
45 50 /* __ Method name definitions ____________________________________________ */
46 51 #define G_HANDLE_REQUEST "GVOHub::handle_request(socklen_t)"
... ... @@ -49,6 +54,7 @@
49 54 /* __ Macros _____________________________________________________________ */
50 55  
51 56 /* __ Coding definitions _________________________________________________ */
  57 +#define CLEF 12345
52 58  
53 59 /* __ Debug definitions __________________________________________________ */
54 60  
... ... @@ -204,39 +210,7 @@ void GVOHub::ping_service(const socklen_t&amp; sock)
204 210 msg.append("</methodResponse>\n");
205 211  
206 212  
207   - //Following Aladin return, ping should answer a map and not a list... here is the map in return.
208   - /*msg.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
209   - msg.append("<methodResponse>\n");
210   - msg.append("\t<params>\n");
211   - msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<struct>\n");
212   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name></name>\n\t\t\t\t\t\t<value></value>\n\t\t\t\t\t</member>\n");
213   - msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.status</name>\n\t\t\t\t\t\t<value>samp.ok</value>\n\t\t\t\t\t</member>\n");
214   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>faultCode</name>\n\t\t\t\t\t\t<value><int>0</int></value>\n\t\t\t\t\t</member>\n");
215   - msg.append("\t\t\t\t</struct>\n\t\t\t</value>\n\t\t</param>\n");
216   - msg.append("\t</params>\n");
217   - msg.append("</methodResponse>\n");*/
218   -
219   - //Formatting message in array way
220   - /*msg.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
221   - msg.append("<methodResponse>\n");
222   - msg.append("\t<params>\n");
223   - msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<array>\n");
224   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name></name>\n\t\t\t\t\t\t<value></value>\n\t\t\t\t\t</member>\n");
225   - msg.append("\t\t\t\t\t<data>\n\t\t\t\t\t\t<value>samp.ok</value>\n\t\t\t\t\t</data>\n");
226   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>faultCode</name>\n\t\t\t\t\t\t<value><int>0</int></value>\n\t\t\t\t\t</member>\n");
227   - msg.append("\t\t\t\t</array>\n\t\t\t</value>\n\t\t</param>\n");
228   - msg.append("\t</params>\n");
229   - msg.append("</methodResponse>\n");*/
230   -
231   - /*int length = msg.length();
232 213  
233   - int n = send(sock,msg.c_str(),length+1,0);
234   - if (n < 0) {
235   - printf("Could not write socket buffer.\n");
236   - std::string msg = "Could not write socket buffer.";
237   - throw GException::invalid_value(G_HANDLE_REQUEST, msg);
238   - }
239   - */
240 214 post_string(msg,sock);
241 215 //printf("Response message sent\n");
242 216 //Return
... ... @@ -257,27 +231,29 @@ void GVOHub::register_service(const GXml&amp; xml, const socklen_t&amp; sock)
257 231 std::string msg = "";
258 232 char selfid[124];
259 233 char privatekey[124];
260   - char cl_id[256];
261   - int i;
262   - std::string content;
  234 + char cl_id[31];
  235 + std::string secret = random_string(15);
263 236 std::string translator = "http://localhost:8001/xmlrpc";
264   - printf("Message composition\n");
265   -
266   - FILE* fptr = fopen("SAMP-registered.txt", "a");
267   - if (fptr != NULL) {
268   - // If successfull writes application definition
269   - sprintf(cl_id,"Registered client-key:%d\n", m_nb_clients);
270   - fputs (cl_id,fptr);
  237 +
  238 + for (int i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  239 + printf("Reference of client %d on registration call: %s\n",i,reg_clients->metadatas[i].reference);
  240 + if (strcmp(reg_clients->metadatas[i].reference,"NoRef") == 0) {
  241 + printf("Client %d ready to be filled with new application\n",i);
  242 + sprintf(cl_id,"c%d",i);
  243 + strcpy(reg_clients->metadatas[i].reference,cl_id);
  244 + sprintf(reg_clients->metadatas[i].private_key,secret.c_str());
  245 + break;
  246 + } else {
  247 + printf("Reference of client %d : %s\n",i,reg_clients->metadatas[i].reference);
  248 + }
271 249 }
272   -
273   - // Closes file
274   - fclose(fptr);
275 250  
276 251 printf("Message composition 2 \n");
277   - sprintf(selfid,"\t\t\t\t\t<member><name>samp.self-id</name><value>c%d</value></member>\n",m_nb_clients);
278   - sprintf(privatekey,"\t\t\t\t\t<member><name>samp.private-key</name><value>%s</value></member>\n",m_secret.c_str());
279   - m_nb_clients ++;
280   -
  252 + sprintf(selfid,"\t\t\t\t\t<member><name>samp.self-id</name><value>%s</value></member>\n",cl_id);
  253 + sprintf(privatekey,"\t\t\t\t\t<member><name>samp.private-key</name><value>%s</value></member>\n",secret.c_str());
  254 + reg_clients->registered ++;
  255 + printf(" clients registered %d \n", reg_clients->registered);
  256 +
281 257 // Set methodResponse elts
282 258 msg.append("<?xml version=\"1.0\" ?>\n");
283 259 msg.append("<methodResponse>\n");
... ... @@ -286,25 +262,13 @@ void GVOHub::register_service(const GXml&amp; xml, const socklen_t&amp; sock)
286 262 msg.append("\t\t\t\t\t<member><name>samp.hub-id</name><value>" + m_hub_id + "</value></member>\n");
287 263 msg.append(selfid);
288 264 msg.append(privatekey);
289   - msg.append("\t\t\t\t\t<member><name>samp.status</name><value>samp.ok</value>\</member>\n");
  265 + msg.append("\t\t\t\t\t<member><name>samp.status</name><value>samp.ok</value></member>\n");
290 266 msg.append("\t\t\t\t\t<member><name>samp.url-translator</name><value>" + translator + "</value></member>\n");
291 267 msg.append("\t\t\t\t</struct>\n\t\t\t</value>\n\t\t</param>\n");
292 268 msg.append("\t</params>\n");
293 269 msg.append("</methodResponse>\n");
294 270 post_string(msg,sock);
295   - /*
296   - int length = msg.length();
297   - printf("Sending message %s\n",msg.c_str());
298   - fflush(stdout);
299   - int n = write(sock,msg.c_str(),length);
300   - if (n < 0) {
301   - printf("Could not write socket buffer.\n");
302   - std::string msg = "Could not write socket buffer.";
303   - throw GException::invalid_value(G_HANDLE_REQUEST, msg);
304   - }
305   -
306   - printf("Response message sent\n");
307   - */
  271 +
308 272 //Return
309 273 return;
310 274 }
... ... @@ -315,31 +279,37 @@ void GVOHub::register_service(const GXml&amp; xml, const socklen_t&amp; sock)
315 279 *
316 280 *
317 281 ***************************************************************************/
318   -void GVOHub::unregister(const socklen_t& sock)
  282 +void GVOHub::unregister(const GXml& xml,const socklen_t& sock)
319 283 {
320   - /* Code to create new file with replacement to erase registered app. File output should be renamed to the original file name
321   - string strReplace = "HELLO";
322   - string strNew = "GOODBYE";
323   - ifstream filein("filein.txt"); //File to read from
324   - ofstream fileout("fileout.txt"); //Temporary file
325   - if(!filein || !fileout)
326   - {
327   - cout << "Error opening files!" << endl;
328   - return 1;
329   - }
330 284  
331   - string strTemp;
332   - //bool found = false;
333   - while(filein >> strTemp)
334   - {
335   - if(strTemp == strReplace){
336   - strTemp = strNew;
337   - //found = true;
  285 + std::string client_calling = "";
  286 + const GXmlNode* node = xml.element("methodCall", 0);
  287 + node = node->element("params", 0);
  288 + node = node->element("param", 0);
  289 + node = node->element("value", 0);
  290 + if (node != NULL) {
  291 + const GXmlText* text = static_cast<const GXmlText*>((*node)[0]);
  292 + if (text != NULL) {
  293 + client_calling = text->text();
338 294 }
339   - strTemp += "\n";
340   - fileout << strTemp;
341   - //if(found) break;
342   - }*/
  295 + }
  296 + for (int i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  297 + printf("Client %s matching candidate:\n",reg_clients->metadatas[i].private_key);
  298 + if (strcmp(reg_clients->metadatas[i].private_key,client_calling.c_str()) == 0) {
  299 + printf("Client %s unregistration:\n",reg_clients->metadatas[i].reference);
  300 + strcpy(reg_clients->metadatas[i].reference,"NoRef");
  301 + sprintf(reg_clients->metadatas[i].name,"NoName");
  302 + sprintf(reg_clients->metadatas[i].description,"NoDescription");
  303 + sprintf(reg_clients->metadatas[i].icon,"NoIcon");
  304 + sprintf(reg_clients->metadatas[i].documentation,"NoDoc");
  305 + sprintf(reg_clients->metadatas[i].affiliation,"NoAffiliation");
  306 + sprintf(reg_clients->metadatas[i].email,"NoMail");
  307 + sprintf(reg_clients->metadatas[i].author_name,"NoAuthor");
  308 + sprintf(reg_clients->metadatas[i].homepage,"NoPage");
  309 +
  310 +
  311 + }
  312 + }
343 313 // Declare message
344 314 std::string msg = "";
345 315  
... ... @@ -363,7 +333,7 @@ void GVOHub::unregister(const socklen_t&amp; sock)
363 333 ***************************************************************************/
364 334 void GVOHub::register_metadata(const GXml& xml,const socklen_t& sock)
365 335 {
366   - char buffer[124];
  336 + char buffer[4096];
367 337 printf("Client Metadata received\n");
368 338 // Search for metadata values to store
369 339 std::string client_calling = "";
... ... @@ -378,19 +348,36 @@ void GVOHub::register_metadata(const GXml&amp; xml,const socklen_t&amp; sock)
378 348 client_calling = text->text();
379 349 }
380 350 }
381   - std::cout << client_calling << std::endl;
382   - std::string client_name = get_response_value(xml, "samp.name");
383   - sprintf(buffer,"\n%s metadata : Name %s\n",client_calling.c_str(),client_name.c_str());
384   -
385   - printf(buffer);
386   - fflush(stdout);
387   - FILE* fptr = fopen("SAMP-registered.txt", "a");
388   - if (fptr != NULL) {
389   - fputs (buffer,fptr);
  351 +
  352 + for (int i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  353 + printf("comparing Reference of client %s with seeked %s\n",reg_clients->metadatas[i].private_key,client_calling.c_str());
  354 + if (strcmp(reg_clients->metadatas[i].private_key,client_calling.c_str()) == 0) {
  355 + printf("Client %s ready to be filled with metadata\n",reg_clients->metadatas[i].reference);
  356 + std::string client_name = get_response_value(xml, "samp.name");
  357 + sprintf(reg_clients->metadatas[i].name,client_name.c_str());
  358 + std::string client_description = get_response_value(xml, "samp.description.text");
  359 + sprintf(reg_clients->metadatas[i].description,client_description.c_str());
  360 + std::string client_icon = get_response_value(xml, "samp.icon.url");
  361 + sprintf(reg_clients->metadatas[i].icon,client_icon.c_str());
  362 + std::string client_doc = get_response_value(xml, "samp.documentation.url");
  363 + sprintf(reg_clients->metadatas[i].documentation,client_doc.c_str());
  364 + std::string client_affi = get_response_value(xml, "author.affiliation");
  365 + sprintf(reg_clients->metadatas[i].affiliation,client_affi.c_str());
  366 + std::string client_mail = get_response_value(xml, "author.email");
  367 + sprintf(reg_clients->metadatas[i].email,client_mail.c_str());
  368 + std::string client_authname = get_response_value(xml, "author.name");
  369 + sprintf(reg_clients->metadatas[i].author_name,client_authname.c_str());
  370 + std::string client_page = get_response_value(xml, "home.page");
  371 + sprintf(reg_clients->metadatas[i].homepage,client_page.c_str());
  372 + break;
  373 + } else {
  374 + if (i == GVOHUB_NB_CLIENTS - 1) {
  375 + printf("OOPS... unable to find client: %s\n",client_calling.c_str());
  376 + }
  377 + }
390 378 }
391 379  
392   - // Closes file
393   - fclose(fptr);
  380 +
394 381 // Declare message
395 382 std::string msg = "";
396 383  
... ... @@ -400,18 +387,6 @@ void GVOHub::register_metadata(const GXml&amp; xml,const socklen_t&amp; sock)
400 387 msg.append("<methodResponse><params><param><value/></param></params>\n");
401 388 msg.append("</methodResponse>\n");
402 389 post_string(msg,sock);
403   - /*
404   - int length = msg.length();
405   -
406   - int n = write(sock,msg.c_str(),length);
407   - if (n < 0) {
408   - printf("Could not write socket buffer.\n");
409   - std::string msg = "Could not write socket buffer.";
410   - throw GException::invalid_value(G_HANDLE_REQUEST, msg);
411   - }
412   -
413   - printf("Response message sent\n");
414   - */
415 390 //Return
416 391 return;
417 392 }
... ... @@ -424,18 +399,34 @@ void GVOHub::register_metadata(const GXml&amp; xml,const socklen_t&amp; sock)
424 399 void GVOHub::set_xml_rpc_callback(const GXml& xml,const socklen_t& sock)
425 400 {
426 401 char buffer[124];
  402 + int i;
427 403 printf("Client callback registration\n");
  404 +
  405 + std::string client_calling = "";
  406 + // Search for value of methodName
  407 + const GXmlNode* node = xml.element("methodCall", 0);
  408 + node = node->element("params", 0);
  409 + node = node->element("param", 0);
  410 + node = node->element("value", 0);
  411 + if (node != NULL) {
  412 + const GXmlText* text = static_cast<const GXmlText*>((*node)[0]);
  413 + if (text != NULL) {
  414 + client_calling = text->text();
  415 + }
  416 + }
428 417 // Search for metadata values to store
429   - std::string client_subscriptions = get_callback_port(xml, "samp.hub.setXmlrpcCallback");
430   - std::cout << client_subscriptions << std::endl;
  418 + std::string client_port = get_callback_port(xml, "samp.hub.setXmlrpcCallback");
  419 + std::cout << client_port << std::endl;
431 420  
432   - FILE* fptr = fopen("SAMP-registered.txt", "a");
433   - if (fptr != NULL) {
434   - fputs (client_subscriptions.c_str(),fptr);
  421 + for (i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  422 + printf("comparing Reference of client %s with seeked %s\n",reg_clients->metadatas[i].private_key,client_calling.c_str());
  423 + if (strcmp(reg_clients->metadatas[i].private_key,client_calling.c_str()) == 0) {
  424 + printf("Client %s ready to be filled with port information\n",reg_clients->metadatas[i].reference);
  425 + sprintf(reg_clients->metadatas[i].port,client_port.c_str());
  426 + break;
  427 + }
435 428 }
436   -
437   - // Closes file
438   - fclose(fptr);
  429 + printf("%s\n",reg_clients->metadatas[i].port);
439 430 // Declare message
440 431 std::string msg = "";
441 432  
... ... @@ -445,25 +436,11 @@ void GVOHub::set_xml_rpc_callback(const GXml&amp; xml,const socklen_t&amp; sock)
445 436 msg.append("<methodResponse>\n");
446 437 msg.append("\t<params>\n");
447 438 msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<struct>\n");
448   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name></name>\n\t\t\t\t\t\t<value></value>\n\t\t\t\t\t</member>\n");
449 439 msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.status</name>\n\t\t\t\t\t\t<value>samp.ok</value>\n\t\t\t\t\t</member>\n");
450   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>faultCode</name>\n\t\t\t\t\t\t<value><int>0</int></value>\n\t\t\t\t\t</member>\n");
451 440 msg.append("\t\t\t\t</struct>\n\t\t\t</value>\n\t\t</param>\n");
452 441 msg.append("\t</params>\n");
453 442 msg.append("</methodResponse>\n");
454 443 post_string(msg,sock);
455   - /*
456   - int length = msg.length();
457   -
458   - int n = write(sock,msg.c_str(),length);
459   - if (n < 0) {
460   - printf("Could not write socket buffer.\n");
461   - std::string msg = "Could not write socket buffer.";
462   - throw GException::invalid_value(G_HANDLE_REQUEST, msg);
463   - }
464   -
465   - printf("Response message sent\n");
466   - */
467 444 //Return
468 445 return;
469 446 }
... ... @@ -477,54 +454,58 @@ void GVOHub::get_registered_clients(const GXml&amp; xml,const socklen_t&amp; sock)
477 454 std::string buffer;
478 455 const int n = 1000;
479 456 char line[n];
480   - FILE* fptr = fopen("SAMP-registered.txt", "r");
481   - if (fptr != NULL) {
482   - while (fgets(line, n, fptr) != NULL) {
483   -
484   - // Convert line to C++ string
485   - std::string cline = std::string(line);
486   -
487   - // Check for secret key
488   - if (cline.compare(0, 10, "Registered") == 0) {
489   - buffer = gammalib::strip_chars(cline.substr(10, std::string::npos), "\r\n");
490   - }
491   - }
492   -
493   - // Closes file
494   - fclose(fptr);
  457 + char reference[64];
  458 + std::string tofind;
  459 + std::size_t found;
  460 + std::string str2;
495 461 // Declare message
496 462 std::string msg = "";
497 463  
498   - //The hub response to rpc callback declaration has no usefull content and can be discarded by the client.
  464 + std::string client_calling = "";
  465 + // Search for value of methodName
  466 + const GXmlNode* node = xml.element("methodCall", 0);
  467 + node = node->element("params", 0);
  468 + node = node->element("param", 0);
  469 + node = node->element("value", 0);
  470 + if (node != NULL) {
  471 + const GXmlText* text = static_cast<const GXmlText*>((*node)[0]);
  472 + if (text != NULL) {
  473 + client_calling = text->text();
  474 + }
  475 + }
  476 +
499 477 // Set methodResponse elts
500 478 msg.append("<?xml version=\'1.0\' encoding=\"UTF-8\"?>\n");
501 479 msg.append("<methodResponse>\n");
502 480 msg.append("\t<params>\n");
503 481 msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<array>\n\t\t\t\t\t<data>\n");
504   - //msg.append("\t\t\t\t\t\t<value>%s</value>\n",m_hub_id.c_str());
505   - msg.append("\t\t\t\t\t\t<value>c0</value>\n");
506 482 msg.append("\t\t\t\t\t\t<value>gammalib_hub</value>\n");
507   - //For each registered client insert <value>id of client (type cn n being client number)</value>
  483 +
  484 +
  485 + for (int i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  486 + if (strcmp(reg_clients->metadatas[i].reference,"NoRef") == 0) {
  487 + printf("Client %d not registered\n",i);
  488 + } else {
  489 + //Do not send back current client's registration
  490 + if (strcmp(reg_clients->metadatas[i].private_key,client_calling.c_str()) != 0) {
  491 + msg.append("\t\t\t\t\t\t<value>");
  492 + msg.append(reg_clients->metadatas[i].reference);
  493 + msg.append("</value>\n");
  494 + printf("Reference of client %d : %s\n",i,reg_clients->metadatas[i].reference);
  495 + }
  496 + }
  497 + }
  498 +
508 499 msg.append("\t\t\t\t\t</data>\n\t\t\t\t</array>\n\t\t\t</value>\n");
509 500 msg.append("\t\t</param>\n");
510 501 msg.append("\t</params>\n");
511 502 msg.append("</methodResponse>\n");
512   -
513   -
514   - //int length = msg.length();
  503 + printf("Message ready to be sent \n");
515 504 post_string(msg,sock);
516   - /*int n = write(sock,msg.c_str(),msg.length());
517   - if (n < 0) {
518   - printf("Could not write socket buffer.\n");
519   - std::string msg = "Could not write socket buffer.";
520   - throw GException::invalid_value(G_HANDLE_REQUEST, msg);
521   - }
522   - printf(msg.c_str());
523   - printf("Response message sent\n");
524   - */
  505 +
525 506 //Return
526 507 return;
527   - }
  508 +
528 509 }
529 510 /***********************************************************************//**
530 511 * @brief
... ... @@ -570,15 +551,7 @@ void GVOHub::get_subscribed_clients(const GXml&amp; xml,const socklen_t&amp; sock)
570 551  
571 552 //int length = msg.length();
572 553 post_string(msg,sock);
573   - /*int n = write(sock,msg.c_str(),msg.length());
574   - if (n < 0) {
575   - printf("Could not write socket buffer.\n");
576   - std::string msg = "Could not write socket buffer.";
577   - throw GException::invalid_value(G_HANDLE_REQUEST, msg);
578   - }
579   - printf(msg.c_str());
580   - printf("Response message sent\n");
581   - */
  554 +
582 555 //Return
583 556 return;
584 557 }
... ... @@ -591,12 +564,13 @@ void GVOHub::get_subscribed_clients(const GXml&amp; xml,const socklen_t&amp; sock)
591 564 void GVOHub::declare_subscriptions(const GXml& xml,const socklen_t& sock)
592 565 {
593 566 std::list<std::string>::iterator p;
594   - int i;
  567 + int i,j;
595 568 std::ofstream myfile;
596   - std::string content;
  569 + //char content[GVOHUB_NB_METHODS];
597 570 printf("Declare Subscriptions\n");
598 571  
599 572 std::string client_calling = "";
  573 + std::string tempo;
600 574 // Search for value of methodName
601 575 const GXmlNode* node = xml.element("methodCall", 0);
602 576 node = node->element("params", 0);
... ... @@ -608,23 +582,25 @@ void GVOHub::declare_subscriptions(const GXml&amp; xml,const socklen_t&amp; sock)
608 582 client_calling = text->text();
609 583 }
610 584 }
611   - std::cout << client_calling << std::endl;
612 585  
613 586 std::list<std::string> client_subscriptions = get_registrations(xml, "samp.hub.declareSubscriptions");
614   - std::string temp;
615   - temp.append("\n");
616   - FILE* fptr = fopen("SAMP-registered.txt", "a");
617   - if (fptr != NULL) {
618   - for( i=0,p=client_subscriptions.begin(); i<client_subscriptions.size()-1; i++,p++ ) {
619   - std::cout << "Client registered to following methods calls:" << std::endl;
620   - std::cout << *p << std::endl;
621   - temp.append(*p);
622   - temp.append(" registered for ");
623   - temp.append(client_calling);
624   - temp.append("\n");
625   - }
626   - fputs (temp.c_str(),fptr);
  587 + std::cout << "Client registered to following methods calls:" << std::endl;
  588 +
  589 + for (int i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  590 + printf("comparing Reference of client %s with seeked %s\n",reg_clients->metadatas[i].private_key,client_calling.c_str());
  591 + if (strcmp(reg_clients->metadatas[i].private_key,client_calling.c_str()) == 0) {
  592 + for( j=0,p=client_subscriptions.begin(); j<client_subscriptions.size()-1; j++,p++ ) {
  593 + std::cout << *p << std::endl;
  594 + tempo = *p;
  595 + //content = *p;
  596 + sprintf(reg_clients->metadatas[i].registered_methods[j],tempo.c_str());
  597 + /*printf("Registered: %s\n",reg_clients->metadatas[i].registered_methods[j]);
  598 + printf("Registration done\n");*/
  599 + }
  600 + }
627 601 }
  602 +
  603 +
628 604  
629 605 // Declare message
630 606 std::string msg = "";
... ... @@ -633,26 +609,12 @@ void GVOHub::declare_subscriptions(const GXml&amp; xml,const socklen_t&amp; sock)
633 609 msg.append("<methodResponse>\n");
634 610 msg.append("\t<params>\n");
635 611 msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<struct>\n");
636   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name></name>\n\t\t\t\t\t\t<value></value>\n\t\t\t\t\t</member>\n");
637 612 msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.status</name>\n\t\t\t\t\t\t<value>samp.ok</value>\n\t\t\t\t\t</member>\n");
638   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>faultCode</name>\n\t\t\t\t\t\t<value><int>0</int></value>\n\t\t\t\t\t</member>\n");
639 613 msg.append("\t\t\t\t</struct>\n\t\t\t</value>\n\t\t</param>\n");
640 614 msg.append("\t</params>\n");
641 615 msg.append("</methodResponse>\n");
642 616  
643 617 post_string(msg,sock);
644   - /*
645   - int length = msg.length();
646   -
647   - int n = write(sock,msg.c_str(),length);
648   - if (n < 0) {
649   - printf("Could not write socket buffer.\n");
650   - std::string msg = "Could not write socket buffer.";
651   - throw GException::invalid_value(G_HANDLE_REQUEST, msg);
652   - }
653   -
654   - printf("Response message sent\n");
655   - */
656 618 //Return
657 619 return;
658 620 }
... ... @@ -674,7 +636,7 @@ void GVOHub::get_metadata(const GXml&amp; xml,const socklen_t&amp; sock)
674 636 // Search for value of methodName
675 637 const GXmlNode* node = xml.element("methodCall", 0);
676 638 node = node->element("params", 0);
677   - node = node->element("param", 0);
  639 + node = node->element("param", 1);
678 640 node = node->element("value", 0);
679 641 if (node != NULL) {
680 642 const GXmlText* text = static_cast<const GXmlText*>((*node)[0]);
... ... @@ -682,18 +644,6 @@ void GVOHub::get_metadata(const GXml&amp; xml,const socklen_t&amp; sock)
682 644 client_calling = text->text();
683 645 }
684 646 }
685   - std::cout << client_calling << std::endl;
686   - std::list<std::string> client_subscriptions = get_clientid(xml, "samp.hub.getMetadata");
687   - std::string temp;
688   - temp.append("\n");
689   - FILE* fptr = fopen("SAMP-registered.txt", "r");
690   - if (fptr != NULL) {
691   - for( i=0,p=client_subscriptions.begin(); i<client_subscriptions.size()-1; i++,p++ ) {
692   - std::cout << "Seeking Client registration:" << std::endl;
693   - std::cout << *p << std::endl;
694   - }
695   - }
696   -
697 647 // Declare message
698 648 std::string msg = "";
699 649 // Set methodResponse elts
... ... @@ -701,9 +651,43 @@ void GVOHub::get_metadata(const GXml&amp; xml,const socklen_t&amp; sock)
701 651 msg.append("<methodResponse>\n");
702 652 msg.append("\t<params>\n");
703 653 msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<struct>\n");
704   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name></name>\n\t\t\t\t\t\t<value></value>\n\t\t\t\t\t</member>\n");
705 654 msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.status</name>\n\t\t\t\t\t\t<value>samp.ok</value>\n\t\t\t\t\t</member>\n");
706   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>faultCode</name>\n\t\t\t\t\t\t<value><int>0</int></value>\n\t\t\t\t\t</member>\n");
  655 +
  656 + for (int i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  657 + if (strcmp(reg_clients->metadatas[i].reference,client_calling.c_str()) == 0) {
  658 + printf("Client %s metadata retrieval:\n",reg_clients->metadatas[i].reference);
  659 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.name</name>\n\t\t\t\t\t\t<value>");
  660 + msg.append(reg_clients->metadatas[i].name);
  661 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  662 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.description.text</name>\n\t\t\t\t\t\t<value>");
  663 + msg.append(reg_clients->metadatas[i].description);
  664 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  665 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.icon.url</name>\n\t\t\t\t\t\t<value>");
  666 + msg.append(reg_clients->metadatas[i].icon);
  667 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  668 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.documentation.url</name>\n\t\t\t\t\t\t<value>");
  669 + msg.append(reg_clients->metadatas[i].documentation);
  670 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  671 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>author.affiliation</name>\n\t\t\t\t\t\t<value>");
  672 + msg.append(reg_clients->metadatas[i].affiliation);
  673 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  674 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>author.email</name>\n\t\t\t\t\t\t<value>");
  675 + msg.append(reg_clients->metadatas[i].email);
  676 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  677 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>author.name</name>\n\t\t\t\t\t\t<value>");
  678 + msg.append(reg_clients->metadatas[i].author_name);
  679 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  680 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>home.page</name>\n\t\t\t\t\t\t<value>");
  681 + msg.append(reg_clients->metadatas[i].homepage);
  682 + msg.append("</value>\n\t\t\t\t\t</member>\n");
  683 + break;
  684 + } else {
  685 + if (i == GVOHUB_NB_CLIENTS - 1) {
  686 + printf("OOPS... unable to find metadata for client: %s\n",client_calling.c_str());
  687 + }
  688 + }
  689 + }
  690 +
707 691 msg.append("\t\t\t\t</struct>\n\t\t\t</value>\n\t\t</param>\n");
708 692 msg.append("\t</params>\n");
709 693 msg.append("</methodResponse>\n");
... ... @@ -721,16 +705,15 @@ void GVOHub::get_metadata(const GXml&amp; xml,const socklen_t&amp; sock)
721 705 void GVOHub::get_subscriptions(const GXml& xml,const socklen_t& sock)
722 706 {
723 707 std::list<std::string>::iterator p;
724   - int i;
  708 + int i,j;
725 709 std::ofstream myfile;
726 710 std::string content;
727 711 printf("Retrieving subscriptions\n");
728   -
729 712 std::string client_calling = "";
730 713 // Search for value of methodName
731 714 const GXmlNode* node = xml.element("methodCall", 0);
732 715 node = node->element("params", 0);
733   - node = node->element("param", 0);
  716 + node = node->element("param", 1);
734 717 node = node->element("value", 0);
735 718 if (node != NULL) {
736 719 const GXmlText* text = static_cast<const GXmlText*>((*node)[0]);
... ... @@ -738,18 +721,6 @@ void GVOHub::get_subscriptions(const GXml&amp; xml,const socklen_t&amp; sock)
738 721 client_calling = text->text();
739 722 }
740 723 }
741   - std::cout << client_calling << std::endl;
742   - std::list<std::string> client_subscriptions = get_clientid(xml, "samp.hub.getSubscriptions");
743   - std::string temp;
744   - temp.append("\n");
745   - FILE* fptr = fopen("SAMP-registered.txt", "r");
746   - if (fptr != NULL) {
747   - for( i=0,p=client_subscriptions.begin(); i<client_subscriptions.size()-1; i++,p++ ) {
748   - std::cout << "Seeking Client registration:" << std::endl;
749   - std::cout << *p << std::endl;
750   - }
751   - }
752   -
753 724 // Declare message
754 725 std::string msg = "";
755 726 // Set methodResponse elts
... ... @@ -757,13 +728,22 @@ void GVOHub::get_subscriptions(const GXml&amp; xml,const socklen_t&amp; sock)
757 728 msg.append("<methodResponse>\n");
758 729 msg.append("\t<params>\n");
759 730 msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<struct>\n");
760   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name></name>\n\t\t\t\t\t\t<value></value>\n\t\t\t\t\t</member>\n");
761   - msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.status</name>\n\t\t\t\t\t\t<value>samp.ok</value>\n\t\t\t\t\t</member>\n");
762   - //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>faultCode</name>\n\t\t\t\t\t\t<value><int>0</int></value>\n\t\t\t\t\t</member>\n");
  731 + //msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>samp.status</name>\n\t\t\t\t\t\t<value>samp.ok</value>\n\t\t\t\t\t</member>\n");
  732 + char tempo[128];
  733 + for (i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  734 + if (strcmp(reg_clients->metadatas[i].reference,client_calling.c_str()) == 0) {
  735 + for (j = 0; j < GVOHUB_NB_METHODS; j++) {
  736 + msg.append("\t\t\t\t\t<member>\n\t\t\t\t\t\t<name>");
  737 + strcpy(tempo,reg_clients->metadatas[i].registered_methods[j]);
  738 + msg.append(tempo);
  739 + msg.append("</name>\n\t\t\t\t\t\t<value></value>\n\t\t\t\t\t</member>\n");
  740 + }
  741 + }
  742 + }
  743 +
763 744 msg.append("\t\t\t\t</struct>\n\t\t\t</value>\n\t\t</param>\n");
764 745 msg.append("\t</params>\n");
765 746 msg.append("</methodResponse>\n");
766   -
767 747 post_string(msg,sock);
768 748  
769 749 //Return
... ... @@ -832,7 +812,8 @@ void GVOHub::init_members(void)
832 812 {
833 813 // Initialise members
834 814 m_name = "GammaLib";
835   - m_secret = "mysupersecret0032557sentence";
  815 + //m_secret is a private string to identify clients. Every client has his own m_secret
  816 + m_secret = "";
836 817 m_hub_url = "http://localhost:8001/xmlrpc";
837 818 m_hub_host = "127.0.0.1";
838 819 m_hub_port = "8001";
... ... @@ -858,14 +839,12 @@ void GVOHub::copy_members(const GVOHub&amp; hub)
858 839 {
859 840 // Copy members
860 841 m_name = hub.m_name;
861   - m_secret = hub.m_secret;
862 842 m_hub_url = hub.m_hub_url;
863 843 m_hub_host = hub.m_hub_host;
864 844 m_hub_port = hub.m_hub_port;
865 845 m_version = hub.m_version;
866 846 m_client_key = hub.m_client_key;
867 847 m_hub_id = hub.m_hub_id;
868   - //m_client_id = hub.m_client_id;
869 848 m_socket = hub.m_socket;
870 849 connected() = hub.connected();
871 850  
... ... @@ -922,8 +901,25 @@ void GVOHub::init_hub(void)
922 901  
923 902 // Close SAMP lockfile
924 903 fclose(fptr);
925   -
926   - fptr = fopen("SAMP-registered.txt", "a");
  904 +
  905 + //puts the structure array of clients in shared memory
  906 + if ((shm_handler = shmget(CLEF, sizeof(clients_descriptor), 0666 | IPC_CREAT)) < 0)
  907 + {
  908 + exit(1);
  909 + }
  910 + if ((ptr_mem_partagee = shmat(shm_handler, NULL, 0)) == (void*) -1)
  911 + {
  912 + exit(1);
  913 + }
  914 + reg_clients = (clients_descriptor *)ptr_mem_partagee;
  915 + reg_clients->registered = 0;
  916 + for (int i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  917 + strcpy(reg_clients->metadatas[i].reference,"NoRef");
  918 + }
  919 + for (int j = 0; j < GVOHUB_NB_CLIENTS; j++) {
  920 + printf("%s\n",reg_clients->metadatas[j].reference);
  921 + }
  922 + fptr = fopen("SAMP-registered.txt", "w");
927 923 if (fptr != NULL) {
928 924  
929 925 // If successfull writes application definition
... ... @@ -1000,13 +996,10 @@ void GVOHub::handle_request(const socklen_t&amp; sock)
1000 996 // Initialize buffer
1001 997 char buffer[8192];
1002 998 bzero(buffer,8192);
1003   -
  999 + int i,j;
1004 1000 // Declare empty XML document
1005 1001 GXml xml;
1006 1002  
1007   -
1008   - //std::string response = receive_string(sock);
1009   - //printf("Here is the message: %s\n",response.c_str());
1010 1003 // Read buffer
1011 1004 int n = read(sock,buffer,8192);
1012 1005 if (n < 0) {
... ... @@ -1048,27 +1041,27 @@ void GVOHub::handle_request(const socklen_t&amp; sock)
1048 1041 }
1049 1042 // endif: connection has been established
1050 1043 //std::string method_called = get_response_value(xml, "methodName");
  1044 + if (method_called.compare("samp.hub.ping") == 0) {
  1045 + ping_service(sock);
  1046 + }
1051 1047 if (method_called.compare("samp.hub.register") == 0) {
1052 1048 register_service(xml, sock);
1053 1049 }
1054 1050 if (method_called.compare("samp.hub.unregister") == 0) {
1055   - unregister(sock);
  1051 + unregister(xml,sock);
1056 1052 }
1057 1053 if (method_called.compare("samp.hub.declareMetadata") == 0) {
1058 1054 register_metadata(xml,sock);
1059 1055 }
1060   - if (method_called.compare("samp.hub.ping") == 0) {
1061   - ping_service(sock);
1062   - }
1063 1056 if (method_called.compare("samp.hub.declareSubscriptions") == 0) {
1064 1057 declare_subscriptions(xml,sock);
1065 1058 }
1066   - if (method_called.compare("samp.hub.getSubscriptions") == 0) {
1067   - get_subscriptions(xml, sock);
1068   - }
1069 1059 if (method_called.compare("samp.hub.setXmlrpcCallback") == 0) {
1070 1060 set_xml_rpc_callback(xml,sock);
1071 1061 }
  1062 + if (method_called.compare("samp.hub.getSubscriptions") == 0) {
  1063 + get_subscriptions(xml, sock);
  1064 + }
1072 1065 if (method_called.compare("samp.hub.getRegisteredClients") == 0) {
1073 1066 get_registered_clients(xml, sock);
1074 1067 }
... ... @@ -1096,12 +1089,28 @@ void GVOHub::handle_request(const socklen_t&amp; sock)
1096 1089 if (method_called.compare("samp.hub.reply") == 0) {
1097 1090 ping_service(sock);
1098 1091 }
1099   -
  1092 + //Test if any registered client needs to know that the method has been called
  1093 + for (i = 0; i < GVOHUB_NB_CLIENTS; i++) {
  1094 + for (j = 0; j < GVOHUB_NB_METHODS; j++) {
  1095 + if (strcmp(method_called.c_str(),reg_clients->metadatas[i].registered_methods[j]) == 0) {
  1096 + printf("Callback needed\n");
  1097 + }
  1098 + }
  1099 +
  1100 + }
  1101 +
1100 1102 // Return
1101 1103 return;
1102 1104 }
1103   -
1104   -
  1105 +/***********************************************************************//**
  1106 + * @brief Closes SAMP hub shm
  1107 + *
  1108 + * @return
  1109 + *
  1110 + ***************************************************************************/
  1111 +/*void intHandler(int sig) {
  1112 + shmdt(ptr_mem_partagee);
  1113 +}*/
1105 1114 /***********************************************************************//**
1106 1115 * @brief Starts the SAMP hub socket and listens on it
1107 1116 *
... ... @@ -1159,6 +1168,9 @@ void GVOHub::start_hub(void)
1159 1168 // ...
1160 1169 socklen_t clilen = sizeof(cli_addr);
1161 1170  
  1171 + //Catching ctrl+C to close SHM
  1172 + //signal(SIGINT, intHandler);
  1173 +
1162 1174 // Main event handling loop
1163 1175  
1164 1176 while (1) {
... ... @@ -1186,8 +1198,13 @@ void GVOHub::start_hub(void)
1186 1198 close(newsocket);
1187 1199 exit(0);
1188 1200 }
1189   -
1190   -
  1201 + else {
  1202 + //Father process code zone: set SIG_IGN to child
  1203 + // so that kernel can close it without senndit it to zombie state <defunct>
  1204 + int status = 0;
  1205 + waitpid( pid, &status, 0 );
  1206 + signal(pid, SIG_IGN);
  1207 + }
1191 1208  
1192 1209 } // endwhile
1193 1210  
... ... @@ -1331,10 +1348,10 @@ std::string GVOHub::get_callback_port(const GXml&amp; xml,
1331 1348 subnode = subnode->element("value", 0);
1332 1349 if (subnode != NULL) {
1333 1350 const GXmlText* text = static_cast<const GXmlText*>((*subnode)[0]);
1334   - if (text != NULL) {
  1351 + /*if (text != NULL) {
1335 1352 value = text->text();
1336 1353 value.append(" port : ");
1337   - }
  1354 + }*/
1338 1355 }
1339 1356 }
1340 1357 subnode = node->element("param", 1);
... ... @@ -1532,3 +1549,17 @@ std::list&lt;std::string&gt; GVOHub::get_clientid(const GXml&amp; xml,
1532 1549 // Return value
1533 1550 return value;
1534 1551 }
  1552 +/*
  1553 +*/
  1554 +std::string GVOHub::random_string( size_t length )
  1555 +{
  1556 + srand(time(0));
  1557 + std::string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  1558 + int pos;
  1559 + while(str.size() != length) {
  1560 + pos = ((rand() % (str.size() - 1)));
  1561 + str.erase (pos, 1);
  1562 + }
  1563 + return str;
  1564 +}
  1565 +
... ...