Commit 6f0f0ebcea210ceef01918b2bfc10aa345f5e192
1 parent
b3add657
Use of GVOApp to track registered applications is OK
Showing
5 changed files
with
624 additions
and
28 deletions
include/GVOApp.hpp
| ... | ... | @@ -76,9 +76,9 @@ protected: |
| 76 | 76 | |
| 77 | 77 | // Protected data area |
| 78 | 78 | std::string m_name; //!< Client name |
| 79 | - std::string m_id; //!< Id assigned to client by the hub | |
| 79 | + char m_id[32]; //!< Id assigned to client by the hub | |
| 80 | 80 | std::list <std::string> registered_calls; //!< Calls for which is registered the application. |
| 81 | - | |
| 81 | + std::list<std::string>::iterator iterator_calls; | |
| 82 | 82 | |
| 83 | 83 | }; |
| 84 | 84 | ... | ... |
include/GVOHub.hpp
| ... | ... | @@ -61,11 +61,7 @@ public: |
| 61 | 61 | GVOHub* clone(void) const; |
| 62 | 62 | void start(void); |
| 63 | 63 | std::string print(const GChatter& chatter = NORMAL) const; |
| 64 | - //void connect(void); | |
| 65 | - //void disconnect(void); | |
| 66 | - //bool has_hub(void) const; | |
| 67 | - //bool is_connected(void) const; | |
| 68 | - //GXml response(void) const; | |
| 64 | + | |
| 69 | 65 | |
| 70 | 66 | protected: |
| 71 | 67 | // Protected methods |
| ... | ... | @@ -74,8 +70,6 @@ protected: |
| 74 | 70 | void free_members(void); |
| 75 | 71 | void init_hub(void); |
| 76 | 72 | void start_hub(void); |
| 77 | - //bool find_hub(void); | |
| 78 | - //void connect_to_hub(void); | |
| 79 | 73 | void register_service(const GXml& xml,const socklen_t& sock); |
| 80 | 74 | void ping_service(const socklen_t& sock); |
| 81 | 75 | void unregister(const socklen_t& sock); |
| ... | ... | @@ -86,6 +80,7 @@ protected: |
| 86 | 80 | void post_string(const std::string& string) const; |
| 87 | 81 | std::string receive_string(void) const; |
| 88 | 82 | std::string get_response_value(const GXml& xml, const std::string& name) const; |
| 83 | + std::list<std::string> get_registrations(const GXml& xml, const std::string& name) const; | |
| 89 | 84 | void get_name_value_pair(const GXmlNode* node, std::string& name, std::string& value) const; |
| 90 | 85 | std::string get_hub_lockfile(void) const; |
| 91 | 86 | |
| ... | ... | @@ -98,11 +93,8 @@ protected: |
| 98 | 93 | std::string m_version; //!< The version of the SAMP Standard Profile implemented by the hub |
| 99 | 94 | std::string m_client_key; //!< Private client key |
| 100 | 95 | std::string m_hub_id; //!< Hub identifier used by the hub when it sends message itself rather than forwarding from others |
| 101 | - //std::string m_client_id; //!< Client identifier | |
| 102 | 96 | int m_socket; //!< Hub socket |
| 103 | 97 | int m_nb_clients; //!< Number of already registered clients |
| 104 | - //std::vector<int> m_client_id; //!< Id assigned to client by the hub. | |
| 105 | - //std::vector<std::string> m_client_name; | |
| 106 | 98 | std::list<GVOApp*> m_connected_apps; //!< list of apps connected to the hub |
| 107 | 99 | }; |
| 108 | 100 | ... | ... |
registrations.txt
0 → 100644
| 1 | +GXmlElement::name | |
| 2 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 3 | + GXmlText::table.select.rowListGXmlElement::name | |
| 4 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 5 | + GXmlText::table.load.fitsGXmlElement::name | |
| 6 | + GXmlText::samp.app.pingGXmlElement::name | |
| 7 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 8 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 9 | + GXmlText::image.load.fitsGXmlElement::name | |
| 10 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 11 | + GXmlText::table.load.votableGXmlElement::name | |
| 12 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 13 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 14 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 15 | + GXmlText::table.select.rowListGXmlElement::name | |
| 16 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 17 | + GXmlText::table.load.fitsGXmlElement::name | |
| 18 | + GXmlText::samp.app.pingGXmlElement::name | |
| 19 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 20 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 21 | + GXmlText::image.load.fitsGXmlElement::name | |
| 22 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 23 | + GXmlText::table.load.votableGXmlElement::name | |
| 24 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 25 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 26 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 27 | + GXmlText::table.select.rowListGXmlElement::name | |
| 28 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 29 | + GXmlText::table.load.fitsGXmlElement::name | |
| 30 | + GXmlText::samp.app.pingGXmlElement::name | |
| 31 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 32 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 33 | + GXmlText::image.load.fitsGXmlElement::name | |
| 34 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 35 | + GXmlText::table.load.votableGXmlElement::name | |
| 36 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 37 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 38 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 39 | + GXmlText::table.select.rowListGXmlElement::name | |
| 40 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 41 | + GXmlText::table.load.fitsGXmlElement::name | |
| 42 | + GXmlText::samp.app.pingGXmlElement::name | |
| 43 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 44 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 45 | + GXmlText::image.load.fitsGXmlElement::name | |
| 46 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 47 | + GXmlText::table.load.votableGXmlElement::name | |
| 48 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 49 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 50 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 51 | + GXmlText::table.select.rowListGXmlElement::name | |
| 52 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 53 | + GXmlText::table.load.fitsGXmlElement::name | |
| 54 | + GXmlText::samp.app.pingGXmlElement::name | |
| 55 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 56 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 57 | + GXmlText::image.load.fitsGXmlElement::name | |
| 58 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 59 | + GXmlText::table.load.votableGXmlElement::name | |
| 60 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 61 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 62 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 63 | + GXmlText::table.select.rowListGXmlElement::name | |
| 64 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 65 | + GXmlText::table.load.fitsGXmlElement::name | |
| 66 | + GXmlText::samp.app.pingGXmlElement::name | |
| 67 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 68 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 69 | + GXmlText::image.load.fitsGXmlElement::name | |
| 70 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 71 | + GXmlText::table.load.votableGXmlElement::name | |
| 72 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 73 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 74 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 75 | + GXmlText::table.select.rowListGXmlElement::name | |
| 76 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 77 | + GXmlText::table.load.fitsGXmlElement::name | |
| 78 | + GXmlText::samp.app.pingGXmlElement::name | |
| 79 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 80 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 81 | + GXmlText::image.load.fitsGXmlElement::name | |
| 82 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 83 | + GXmlText::table.load.votableGXmlElement::name | |
| 84 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 85 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 86 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 87 | + GXmlText::table.select.rowListGXmlElement::name | |
| 88 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 89 | + GXmlText::table.load.fitsGXmlElement::name | |
| 90 | + GXmlText::samp.app.pingGXmlElement::name | |
| 91 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 92 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 93 | + GXmlText::image.load.fitsGXmlElement::name | |
| 94 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 95 | + GXmlText::table.load.votableGXmlElement::name | |
| 96 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 97 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 98 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 99 | + GXmlText::table.select.rowListGXmlElement::name | |
| 100 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 101 | + GXmlText::table.load.fitsGXmlElement::name | |
| 102 | + GXmlText::samp.app.pingGXmlElement::name | |
| 103 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 104 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 105 | + GXmlText::image.load.fitsGXmlElement::name | |
| 106 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 107 | + GXmlText::table.load.votableGXmlElement::name | |
| 108 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 109 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 110 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 111 | + GXmlText::table.select.rowListGXmlElement::name | |
| 112 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 113 | + GXmlText::table.load.fitsGXmlElement::name | |
| 114 | + GXmlText::samp.app.pingGXmlElement::name | |
| 115 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 116 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 117 | + GXmlText::image.load.fitsGXmlElement::name | |
| 118 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 119 | + GXmlText::table.load.votableGXmlElement::name | |
| 120 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 121 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 122 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 123 | + GXmlText::table.select.rowListGXmlElement::name | |
| 124 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 125 | + GXmlText::table.load.fitsGXmlElement::name | |
| 126 | + GXmlText::samp.app.pingGXmlElement::name | |
| 127 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 128 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 129 | + GXmlText::image.load.fitsGXmlElement::name | |
| 130 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 131 | + GXmlText::table.load.votableGXmlElement::name | |
| 132 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 133 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 134 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 135 | + GXmlText::table.select.rowListGXmlElement::name | |
| 136 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 137 | + GXmlText::table.load.fitsGXmlElement::name | |
| 138 | + GXmlText::samp.app.pingGXmlElement::name | |
| 139 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 140 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 141 | + GXmlText::image.load.fitsGXmlElement::name | |
| 142 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 143 | + GXmlText::table.load.votableGXmlElement::name | |
| 144 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 145 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 146 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 147 | + GXmlText::table.select.rowListGXmlElement::name | |
| 148 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 149 | + GXmlText::table.load.fitsGXmlElement::name | |
| 150 | + GXmlText::samp.app.pingGXmlElement::name | |
| 151 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 152 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 153 | + GXmlText::image.load.fitsGXmlElement::name | |
| 154 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 155 | + GXmlText::table.load.votableGXmlElement::name | |
| 156 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 157 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 158 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 159 | + GXmlText::table.select.rowListGXmlElement::name | |
| 160 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 161 | + GXmlText::table.load.fitsGXmlElement::name | |
| 162 | + GXmlText::samp.app.pingGXmlElement::name | |
| 163 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 164 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 165 | + GXmlText::image.load.fitsGXmlElement::name | |
| 166 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 167 | + GXmlText::table.load.votableGXmlElement::name | |
| 168 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 169 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 170 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 171 | + GXmlText::table.select.rowListGXmlElement::name | |
| 172 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 173 | + GXmlText::table.load.fitsGXmlElement::name | |
| 174 | + GXmlText::samp.app.pingGXmlElement::name | |
| 175 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 176 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 177 | + GXmlText::image.load.fitsGXmlElement::name | |
| 178 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 179 | + GXmlText::table.load.votableGXmlElement::name | |
| 180 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 181 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 182 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 183 | + GXmlText::table.select.rowListGXmlElement::name | |
| 184 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 185 | + GXmlText::table.load.fitsGXmlElement::name | |
| 186 | + GXmlText::samp.app.pingGXmlElement::name | |
| 187 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 188 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 189 | + GXmlText::image.load.fitsGXmlElement::name | |
| 190 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 191 | + GXmlText::table.load.votableGXmlElement::name | |
| 192 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 193 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 194 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 195 | + GXmlText::table.select.rowListGXmlElement::name | |
| 196 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 197 | + GXmlText::table.load.fitsGXmlElement::name | |
| 198 | + GXmlText::samp.app.pingGXmlElement::name | |
| 199 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 200 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 201 | + GXmlText::image.load.fitsGXmlElement::name | |
| 202 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 203 | + GXmlText::table.load.votableGXmlElement::name | |
| 204 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 205 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 206 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 207 | + GXmlText::table.select.rowListGXmlElement::name | |
| 208 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 209 | + GXmlText::table.load.fitsGXmlElement::name | |
| 210 | + GXmlText::samp.app.pingGXmlElement::name | |
| 211 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 212 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 213 | + GXmlText::image.load.fitsGXmlElement::name | |
| 214 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 215 | + GXmlText::table.load.votableGXmlElement::name | |
| 216 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 217 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 218 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 219 | + GXmlText::table.select.rowListGXmlElement::name | |
| 220 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 221 | + GXmlText::table.load.fitsGXmlElement::name | |
| 222 | + GXmlText::samp.app.pingGXmlElement::name | |
| 223 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 224 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 225 | + GXmlText::image.load.fitsGXmlElement::name | |
| 226 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 227 | + GXmlText::table.load.votableGXmlElement::name | |
| 228 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 229 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 230 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 231 | + GXmlText::table.select.rowListGXmlElement::name | |
| 232 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 233 | + GXmlText::table.load.fitsGXmlElement::name | |
| 234 | + GXmlText::samp.app.pingGXmlElement::name | |
| 235 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 236 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 237 | + GXmlText::image.load.fitsGXmlElement::name | |
| 238 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 239 | + GXmlText::table.load.votableGXmlElement::name | |
| 240 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 241 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 242 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 243 | + GXmlText::table.select.rowListGXmlElement::name | |
| 244 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 245 | + GXmlText::table.load.fitsGXmlElement::name | |
| 246 | + GXmlText::samp.app.pingGXmlElement::name | |
| 247 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 248 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 249 | + GXmlText::image.load.fitsGXmlElement::name | |
| 250 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 251 | + GXmlText::table.load.votableGXmlElement::name | |
| 252 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 253 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 254 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 255 | + GXmlText::table.select.rowListGXmlElement::name | |
| 256 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 257 | + GXmlText::table.load.fitsGXmlElement::name | |
| 258 | + GXmlText::samp.app.pingGXmlElement::name | |
| 259 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 260 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 261 | + GXmlText::image.load.fitsGXmlElement::name | |
| 262 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 263 | + GXmlText::table.load.votableGXmlElement::name | |
| 264 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 265 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 266 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 267 | + GXmlText::table.select.rowListGXmlElement::name | |
| 268 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 269 | + GXmlText::table.load.fitsGXmlElement::name | |
| 270 | + GXmlText::samp.app.pingGXmlElement::name | |
| 271 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 272 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 273 | + GXmlText::image.load.fitsGXmlElement::name | |
| 274 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 275 | + GXmlText::table.load.votableGXmlElement::name | |
| 276 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 277 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 278 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 279 | + GXmlText::table.select.rowListGXmlElement::name | |
| 280 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 281 | + GXmlText::table.load.fitsGXmlElement::name | |
| 282 | + GXmlText::samp.app.pingGXmlElement::name | |
| 283 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 284 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 285 | + GXmlText::image.load.fitsGXmlElement::name | |
| 286 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 287 | + GXmlText::table.load.votableGXmlElement::name | |
| 288 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 289 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 290 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 291 | + GXmlText::table.select.rowListGXmlElement::name | |
| 292 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 293 | + GXmlText::table.load.fitsGXmlElement::name | |
| 294 | + GXmlText::samp.app.pingGXmlElement::name | |
| 295 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 296 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 297 | + GXmlText::image.load.fitsGXmlElement::name | |
| 298 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 299 | + GXmlText::table.load.votableGXmlElement::name | |
| 300 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 301 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 302 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 303 | + GXmlText::table.select.rowListGXmlElement::name | |
| 304 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 305 | + GXmlText::table.load.fitsGXmlElement::name | |
| 306 | + GXmlText::samp.app.pingGXmlElement::name | |
| 307 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 308 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 309 | + GXmlText::image.load.fitsGXmlElement::name | |
| 310 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 311 | + GXmlText::table.load.votableGXmlElement::name | |
| 312 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 313 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 314 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 315 | + GXmlText::table.select.rowListGXmlElement::name | |
| 316 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 317 | + GXmlText::table.load.fitsGXmlElement::name | |
| 318 | + GXmlText::samp.app.pingGXmlElement::name | |
| 319 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 320 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 321 | + GXmlText::image.load.fitsGXmlElement::name | |
| 322 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 323 | + GXmlText::table.load.votableGXmlElement::name | |
| 324 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 325 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 326 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 327 | + GXmlText::table.select.rowListGXmlElement::name | |
| 328 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 329 | + GXmlText::table.load.fitsGXmlElement::name | |
| 330 | + GXmlText::samp.app.pingGXmlElement::name | |
| 331 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 332 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 333 | + GXmlText::image.load.fitsGXmlElement::name | |
| 334 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 335 | + GXmlText::table.load.votableGXmlElement::name | |
| 336 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 337 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 338 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 339 | + GXmlText::table.select.rowListGXmlElement::name | |
| 340 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 341 | + GXmlText::table.load.fitsGXmlElement::name | |
| 342 | + GXmlText::samp.app.pingGXmlElement::name | |
| 343 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 344 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 345 | + GXmlText::image.load.fitsGXmlElement::name | |
| 346 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 347 | + GXmlText::table.load.votableGXmlElement::name | |
| 348 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 349 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 350 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 351 | + GXmlText::table.select.rowListGXmlElement::name | |
| 352 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 353 | + GXmlText::table.load.fitsGXmlElement::name | |
| 354 | + GXmlText::samp.app.pingGXmlElement::name | |
| 355 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 356 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 357 | + GXmlText::image.load.fitsGXmlElement::name | |
| 358 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 359 | + GXmlText::table.load.votableGXmlElement::name | |
| 360 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 361 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 362 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 363 | + GXmlText::table.select.rowListGXmlElement::name | |
| 364 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 365 | + GXmlText::table.load.fitsGXmlElement::name | |
| 366 | + GXmlText::samp.app.pingGXmlElement::name | |
| 367 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 368 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 369 | + GXmlText::image.load.fitsGXmlElement::name | |
| 370 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 371 | + GXmlText::table.load.votableGXmlElement::name | |
| 372 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 373 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 374 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 375 | + GXmlText::table.select.rowListGXmlElement::name | |
| 376 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 377 | + GXmlText::table.load.fitsGXmlElement::name | |
| 378 | + GXmlText::samp.app.pingGXmlElement::name | |
| 379 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 380 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 381 | + GXmlText::image.load.fitsGXmlElement::name | |
| 382 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 383 | + GXmlText::table.load.votableGXmlElement::name | |
| 384 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 385 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 386 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 387 | + GXmlText::table.select.rowListGXmlElement::name | |
| 388 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 389 | + GXmlText::table.load.fitsGXmlElement::name | |
| 390 | + GXmlText::samp.app.pingGXmlElement::name | |
| 391 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 392 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 393 | + GXmlText::image.load.fitsGXmlElement::name | |
| 394 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 395 | + GXmlText::table.load.votableGXmlElement::name | |
| 396 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 397 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 398 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 399 | + GXmlText::table.select.rowListGXmlElement::name | |
| 400 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 401 | + GXmlText::table.load.fitsGXmlElement::name | |
| 402 | + GXmlText::samp.app.pingGXmlElement::name | |
| 403 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 404 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 405 | + GXmlText::image.load.fitsGXmlElement::name | |
| 406 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 407 | + GXmlText::table.load.votableGXmlElement::name | |
| 408 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 409 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 410 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 411 | + GXmlText::table.select.rowListGXmlElement::name | |
| 412 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 413 | + GXmlText::table.load.fitsGXmlElement::name | |
| 414 | + GXmlText::samp.app.pingGXmlElement::name | |
| 415 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 416 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 417 | + GXmlText::image.load.fitsGXmlElement::name | |
| 418 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 419 | + GXmlText::table.load.votableGXmlElement::name | |
| 420 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 421 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 422 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 423 | + GXmlText::table.select.rowListGXmlElement::name | |
| 424 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 425 | + GXmlText::table.load.fitsGXmlElement::name | |
| 426 | + GXmlText::samp.app.pingGXmlElement::name | |
| 427 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 428 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 429 | + GXmlText::image.load.fitsGXmlElement::name | |
| 430 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 431 | + GXmlText::table.load.votableGXmlElement::name | |
| 432 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 433 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 434 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 435 | + GXmlText::table.select.rowListGXmlElement::name | |
| 436 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 437 | + GXmlText::table.load.fitsGXmlElement::name | |
| 438 | + GXmlText::samp.app.pingGXmlElement::name | |
| 439 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 440 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 441 | + GXmlText::image.load.fitsGXmlElement::name | |
| 442 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 443 | + GXmlText::table.load.votableGXmlElement::name | |
| 444 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 445 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 446 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 447 | + GXmlText::table.select.rowListGXmlElement::name | |
| 448 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 449 | + GXmlText::table.load.fitsGXmlElement::name | |
| 450 | + GXmlText::samp.app.pingGXmlElement::name | |
| 451 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 452 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 453 | + GXmlText::image.load.fitsGXmlElement::name | |
| 454 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 455 | + GXmlText::table.load.votableGXmlElement::name | |
| 456 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 457 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 458 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 459 | + GXmlText::table.select.rowListGXmlElement::name | |
| 460 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 461 | + GXmlText::table.load.fitsGXmlElement::name | |
| 462 | + GXmlText::samp.app.pingGXmlElement::name | |
| 463 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 464 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 465 | + GXmlText::image.load.fitsGXmlElement::name | |
| 466 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 467 | + GXmlText::table.load.votableGXmlElement::name | |
| 468 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 469 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 470 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 471 | + GXmlText::table.select.rowListGXmlElement::name | |
| 472 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 473 | + GXmlText::table.load.fitsGXmlElement::name | |
| 474 | + GXmlText::samp.app.pingGXmlElement::name | |
| 475 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 476 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 477 | + GXmlText::image.load.fitsGXmlElement::name | |
| 478 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 479 | + GXmlText::table.load.votableGXmlElement::name | |
| 480 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 481 | + GXmlText::script.aladin.sendGXmlElement::name | |
| 482 | + GXmlText::samp.hub.event.registerGXmlElement::name | |
| 483 | + GXmlText::table.select.rowListGXmlElement::name | |
| 484 | + GXmlText::table.highlight.rowGXmlElement::name | |
| 485 | + GXmlText::table.load.fitsGXmlElement::name | |
| 486 | + GXmlText::samp.app.pingGXmlElement::name | |
| 487 | + GXmlText::coord.pointAt.skyGXmlElement::name | |
| 488 | + GXmlText::samp.hub.event.shutdownGXmlElement::name | |
| 489 | + GXmlText::image.load.fitsGXmlElement::name | |
| 490 | + GXmlText::samp.hub.disconnectGXmlElement::name | |
| 491 | + GXmlText::table.load.votableGXmlElement::name | |
| 492 | + GXmlText::samp.hub.event.unregisterGXmlElement::name | |
| 493 | + GXmlText::script.aladin.send | |
| 0 | 494 | \ No newline at end of file | ... | ... |
src/vo/GVOApp.cpp
| ... | ... | @@ -182,12 +182,22 @@ std::string GVOApp::print(const GChatter& chatter) const |
| 182 | 182 | { |
| 183 | 183 | // Initialise result string |
| 184 | 184 | std::string result; |
| 185 | - | |
| 185 | + std::list<std::string> temp; | |
| 186 | + temp = registered_calls; | |
| 187 | + | |
| 186 | 188 | // Continue only if chatter is not silent |
| 187 | 189 | if (chatter != SILENT) { |
| 188 | 190 | |
| 189 | 191 | // Append header |
| 190 | 192 | result.append("=== GVOApp ==="); |
| 193 | + result.append(m_id); | |
| 194 | + result.append("%d",temp.size()); | |
| 195 | + for (std::list<std::string>::iterator i = temp.begin(); i != temp.end(); ++i) { | |
| 196 | + result.append("Method:\n"); | |
| 197 | + result.append(*i); | |
| 198 | + } | |
| 199 | + | |
| 200 | + | |
| 191 | 201 | |
| 192 | 202 | } // endif: chatter was not silent |
| 193 | 203 | |
| ... | ... | @@ -208,7 +218,7 @@ std::string GVOApp::print(const GChatter& chatter) const |
| 208 | 218 | void GVOApp::init_members(void) |
| 209 | 219 | { |
| 210 | 220 | // Initialise members |
| 211 | - | |
| 221 | + std::list<std::string> registeredMethods; | |
| 212 | 222 | // Return |
| 213 | 223 | return; |
| 214 | 224 | } | ... | ... |
src/vo/GVOHub.cpp
| ... | ... | @@ -35,6 +35,7 @@ |
| 35 | 35 | #include <unistd.h> // close() function |
| 36 | 36 | #include <netdb.h> // getaddrinfo() function |
| 37 | 37 | #include <sys/socket.h> // socket(), connect() functions |
| 38 | +#include <fstream> | |
| 38 | 39 | #include "GVOHub.hpp" |
| 39 | 40 | #include "GVOClient.hpp" |
| 40 | 41 | #include "GException.hpp" |
| ... | ... | @@ -225,16 +226,30 @@ void GVOHub::register_service(const GXml& xml, const socklen_t& sock) |
| 225 | 226 | // Declare message |
| 226 | 227 | std::string msg = ""; |
| 227 | 228 | char buffer[124]; |
| 229 | + char privatekey[124]; | |
| 230 | + int i; | |
| 231 | + std::list<GVOApp*>::iterator q; | |
| 232 | + std::string content; | |
| 228 | 233 | std::string translator = "http://localhost:8001/"; |
| 229 | 234 | printf("Message composition\n"); |
| 230 | 235 | |
| 231 | 236 | GVOApp* new_app = new GVOApp(); |
| 232 | - new_app -> m_id = m_nb_clients; | |
| 237 | + sprintf(new_app -> m_id,"client-key:%d",m_nb_clients); | |
| 238 | + std::cout<< "Nb. of current applications registered:" << std::endl; | |
| 239 | + std::cout<< m_connected_apps.size()<< std::endl; | |
| 233 | 240 | m_connected_apps.push_front(new_app); |
| 234 | - //m_client_id.push_back(m_nb_clients); | |
| 241 | + std::cout<< new_app->m_id << std::endl; | |
| 242 | + std::cout<< "Nb. of current applications registered:" << std::endl; | |
| 243 | + std::cout<< m_connected_apps.size()<< std::endl; | |
| 244 | + for( i=0,q=m_connected_apps.begin(); i<m_connected_apps.size(); i++,q++ ) { | |
| 245 | + std::cout << "Displaying element of applications list:" << std::endl; | |
| 246 | + content = (*q)->print(); | |
| 247 | + std::cout << content << std::endl; | |
| 248 | + } | |
| 235 | 249 | |
| 236 | 250 | printf("Message composition 2 \n"); |
| 237 | 251 | sprintf(buffer,"<member><name>samp.self-id</name><value><string>client-id:%d</string></value></member>\n",m_nb_clients); |
| 252 | + sprintf(privatekey,"<member><name>samp.private-key</name><value><string>client-key:%d</string></value></member>\n",m_nb_clients); | |
| 238 | 253 | printf(buffer); |
| 239 | 254 | m_nb_clients ++; |
| 240 | 255 | |
| ... | ... | @@ -243,7 +258,8 @@ void GVOHub::register_service(const GXml& xml, const socklen_t& sock) |
| 243 | 258 | msg.append("<methodResponse>\n"); |
| 244 | 259 | msg.append("\t<params>\n"); |
| 245 | 260 | msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<struct>\n"); |
| 246 | - msg.append("<member><name>samp.private-key</name><value><string>client-key:" + m_hub_id + "</string></value></member>\n"); | |
| 261 | + //msg.append("<member><name>samp.private-key</name><value><string>client-key:" + m_hub_id + "</string></value></member>\n"); | |
| 262 | + msg.append(privatekey); | |
| 247 | 263 | msg.append("<member><name>samp.hub-id</name><value><string>client-id:" + m_hub_id + "</string></value></member>\n"); |
| 248 | 264 | msg.append(buffer); |
| 249 | 265 | msg.append("<member><name>samp.url-translator</name><value><string>" + translator + "</string></value></member>\n"); |
| ... | ... | @@ -290,12 +306,10 @@ void GVOHub::register_metadata(const GXml& xml,const socklen_t& sock) |
| 290 | 306 | printf("Client Metadata received\n"); |
| 291 | 307 | // Search for metadata values to store |
| 292 | 308 | std::string client_name = get_response_value(xml, "samp.name"); |
| 293 | - //std::cout("Client Metadata : \n" + client_name.c_str()); | |
| 294 | 309 | printf("\nClient Metadata : Name %s\n", client_name.c_str()); |
| 295 | 310 | sprintf(buffer,"Client number: %d\n",m_nb_clients); |
| 296 | 311 | printf(buffer); |
| 297 | 312 | fflush(stdout); |
| 298 | - //m_client_name.push_back(client_name.c_str()); | |
| 299 | 313 | // Declare message |
| 300 | 314 | std::string msg = ""; |
| 301 | 315 | |
| ... | ... | @@ -325,12 +339,44 @@ void GVOHub::register_metadata(const GXml& xml,const socklen_t& sock) |
| 325 | 339 | ***************************************************************************/ |
| 326 | 340 | void GVOHub::declare_subscriptions(const GXml& xml,const socklen_t& sock) |
| 327 | 341 | { |
| 342 | + std::list<std::string>::iterator p; | |
| 343 | + std::list<GVOApp*>::iterator q; | |
| 344 | + int i; | |
| 345 | + std::ofstream myfile; | |
| 346 | + std::string content; | |
| 328 | 347 | printf("Declare Subscriptions\n"); |
| 329 | - std::string client_subscriptions = get_response_value(xml, "samp.hub.event.subscriptions"); | |
| 330 | - printf("\nClient subscriptions: %s\n", client_subscriptions.c_str()); | |
| 331 | - // Declare message | |
| 348 | + std::list<std::string> client_subscriptions = get_registrations(xml, "samp.hub.declareSubscriptions"); | |
| 349 | + | |
| 350 | + for( i=0,p=client_subscriptions.begin(); i<client_subscriptions.size()-1; i++,p++ ) { | |
| 351 | + myfile.open ("registrations.txt", std::ios::out | std::ios::app); | |
| 352 | + myfile << *p; | |
| 353 | + myfile.close(); | |
| 354 | + std::cout << "Client registered to following methods calls:" << std::endl; | |
| 355 | + std::cout << *p << std::endl; | |
| 356 | + | |
| 357 | + } | |
| 358 | + std::string method_called = ""; | |
| 359 | + //const GXmlNode* node = xml.element("methodCall", 0); | |
| 360 | + const GXmlNode* ptr = xml.element("methodCall", 0)->element("params", 0)->element("param", 0)->element("value", 0); | |
| 361 | + if (ptr != NULL) { | |
| 362 | + const GXmlText* text = static_cast<const GXmlText*>((*ptr)[0]); | |
| 363 | + if (text != NULL) { | |
| 364 | + method_called = text->text(); | |
| 365 | + std::cout << "current app calling is:" << std::endl; | |
| 366 | + std::cout << method_called << std::endl; | |
| 367 | + } | |
| 368 | + } | |
| 369 | + | |
| 370 | + std::cout<< "Nb. of current applications registered:" << std::endl; | |
| 371 | + std::cout<< m_connected_apps.size()<< std::endl; | |
| 372 | + for( i=0,q=m_connected_apps.begin(); i<m_connected_apps.size(); i++,q++ ) { | |
| 373 | + std::cout << "Displaying element of applications list:" << std::endl; | |
| 374 | + content = (*q)->print(); | |
| 375 | + std::cout << content << std::endl; | |
| 376 | + } | |
| 377 | + | |
| 332 | 378 | std::string msg = ""; |
| 333 | - | |
| 379 | + | |
| 334 | 380 | // Set methodResponse elts |
| 335 | 381 | msg.append("<?xml version=\"1.0\"?>\n"); |
| 336 | 382 | msg.append("<methodResponse>\n"); |
| ... | ... | @@ -617,15 +663,15 @@ void GVOHub::handle_request(const socklen_t& sock) |
| 617 | 663 | if (method_called.compare("samp.hub.ping") == 0) { |
| 618 | 664 | ping_service(sock); |
| 619 | 665 | } |
| 620 | - if (method_called.compare("samp.hub.getMetadata") == 0) { | |
| 621 | - ping_service(sock); | |
| 622 | - } | |
| 623 | 666 | if (method_called.compare("samp.hub.declareSubscriptions") == 0) { |
| 624 | 667 | declare_subscriptions(xml,sock); |
| 625 | 668 | } |
| 626 | 669 | if (method_called.compare("samp.hub.getSubscriptions") == 0) { |
| 627 | 670 | ping_service(sock); |
| 628 | 671 | } |
| 672 | + if (method_called.compare("samp.hub.setXmlrpcCallback") == 0) { | |
| 673 | + ping_service(sock); | |
| 674 | + } | |
| 629 | 675 | if (method_called.compare("samp.hub.getRegisteredClients") == 0) { |
| 630 | 676 | ping_service(sock); |
| 631 | 677 | } |
| ... | ... | @@ -650,6 +696,9 @@ void GVOHub::handle_request(const socklen_t& sock) |
| 650 | 696 | if (method_called.compare("samp.hub.reply") == 0) { |
| 651 | 697 | ping_service(sock); |
| 652 | 698 | } |
| 699 | + if (method_called.compare("samp.hub.getMetadata") == 0) { | |
| 700 | + ping_service(sock); | |
| 701 | + } | |
| 653 | 702 | // Return |
| 654 | 703 | return; |
| 655 | 704 | } |
| ... | ... | @@ -777,8 +826,8 @@ std::string GVOHub::get_response_value(const GXml& xml, |
| 777 | 826 | if (node != NULL) { |
| 778 | 827 | int num = node->elements("member"); |
| 779 | 828 | for (int i = 0; i < num; ++i) { |
| 780 | - std::cout << i << std::endl; | |
| 781 | - std::cout << *(node->element("member", i)) << std::cout; | |
| 829 | + /*std::cout << i << std::endl; | |
| 830 | + std::cout << *(node->element("member", i)) << std::cout;*/ | |
| 782 | 831 | const GXmlNode* member = node->element("member", i); |
| 783 | 832 | //const GXmlNode* member_name = member->element("name", 0); |
| 784 | 833 | std::string one_name; |
| ... | ... | @@ -798,7 +847,59 @@ std::string GVOHub::get_response_value(const GXml& xml, |
| 798 | 847 | // Return value |
| 799 | 848 | return value; |
| 800 | 849 | } |
| 850 | +/***********************************************************************//** | |
| 851 | + * @brief Returns value for a SAMP client query parameter | |
| 852 | + * | |
| 853 | + * @param[in] xml client query XML document. | |
| 854 | + * @param[in] name Parameter name. | |
| 855 | + * @return Parameter value. | |
| 856 | + * | |
| 857 | + * Returns value for a SAMP client query parameter. If the specified | |
| 858 | + * parameter was not found or if the response structure is not compliant, | |
| 859 | + * an empty string is returned. | |
| 860 | + ***************************************************************************/ | |
| 861 | +std::list<std::string> GVOHub::get_registrations(const GXml& xml, | |
| 862 | + const std::string& name) const | |
| 863 | +{ | |
| 864 | + // Declare value | |
| 865 | + std::list<std::string> value; | |
| 866 | + | |
| 867 | + // Search for value of specified member | |
| 868 | + const GXmlNode* node = xml.element("methodCall", 0); | |
| 869 | + const GXmlNode* subnode; | |
| 870 | + const GXmlText* subtext; | |
| 871 | + if (node != NULL) { | |
| 872 | + node = node->element("params", 0); | |
| 873 | + if (node != NULL) { | |
| 874 | + node = node->element("param", 1); | |
| 875 | + if (node != NULL) { | |
| 876 | + node = node->element("value", 0); | |
| 877 | + if (node != NULL) { | |
| 878 | + node = node->element("struct", 0); | |
| 879 | + if (node != NULL) { | |
| 880 | + int num = node->elements("member"); | |
| 881 | + for (int i = 0; i < num; ++i) { | |
| 882 | + std::cout << i << std::endl; | |
| 883 | + std::cout << "Affichage du membre\n"; | |
| 884 | + std::cout << *(node->element("member", i)) << std::cout; | |
| 885 | + subnode = node->element("member", i); | |
| 886 | + subnode = subnode->element("name", 0); | |
| 887 | + std::cout << "\nsubnode" << std::endl; | |
| 888 | + std::cout << node->element("member",i)->element("name", 0)->print(NORMAL,0) << std::cout; | |
| 889 | + value.push_front(node->element("member",i)->element("name", 0)->print(NORMAL,0)); | |
| 890 | + std::cout << "\nFin Affichage du membre\n"; | |
| 891 | + } | |
| 892 | + } | |
| 893 | + } | |
| 894 | + | |
| 895 | + } | |
| 896 | + | |
| 897 | + } | |
| 898 | + } | |
| 801 | 899 | |
| 900 | + // Return value | |
| 901 | + return value; | |
| 902 | +} | |
| 802 | 903 | /***********************************************************************//** |
| 803 | 904 | * @brief Extract name / value pair from XML node |
| 804 | 905 | * | ... | ... |