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,9 +76,9 @@ protected: | ||
| 76 | 76 | ||
| 77 | // Protected data area | 77 | // Protected data area |
| 78 | std::string m_name; //!< Client name | 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 | std::list <std::string> registered_calls; //!< Calls for which is registered the application. | 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,11 +61,7 @@ public: | ||
| 61 | GVOHub* clone(void) const; | 61 | GVOHub* clone(void) const; |
| 62 | void start(void); | 62 | void start(void); |
| 63 | std::string print(const GChatter& chatter = NORMAL) const; | 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 | protected: | 66 | protected: |
| 71 | // Protected methods | 67 | // Protected methods |
| @@ -74,8 +70,6 @@ protected: | @@ -74,8 +70,6 @@ protected: | ||
| 74 | void free_members(void); | 70 | void free_members(void); |
| 75 | void init_hub(void); | 71 | void init_hub(void); |
| 76 | void start_hub(void); | 72 | void start_hub(void); |
| 77 | - //bool find_hub(void); | ||
| 78 | - //void connect_to_hub(void); | ||
| 79 | void register_service(const GXml& xml,const socklen_t& sock); | 73 | void register_service(const GXml& xml,const socklen_t& sock); |
| 80 | void ping_service(const socklen_t& sock); | 74 | void ping_service(const socklen_t& sock); |
| 81 | void unregister(const socklen_t& sock); | 75 | void unregister(const socklen_t& sock); |
| @@ -86,6 +80,7 @@ protected: | @@ -86,6 +80,7 @@ protected: | ||
| 86 | void post_string(const std::string& string) const; | 80 | void post_string(const std::string& string) const; |
| 87 | std::string receive_string(void) const; | 81 | std::string receive_string(void) const; |
| 88 | std::string get_response_value(const GXml& xml, const std::string& name) const; | 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 | void get_name_value_pair(const GXmlNode* node, std::string& name, std::string& value) const; | 84 | void get_name_value_pair(const GXmlNode* node, std::string& name, std::string& value) const; |
| 90 | std::string get_hub_lockfile(void) const; | 85 | std::string get_hub_lockfile(void) const; |
| 91 | 86 | ||
| @@ -98,11 +93,8 @@ protected: | @@ -98,11 +93,8 @@ protected: | ||
| 98 | std::string m_version; //!< The version of the SAMP Standard Profile implemented by the hub | 93 | std::string m_version; //!< The version of the SAMP Standard Profile implemented by the hub |
| 99 | std::string m_client_key; //!< Private client key | 94 | std::string m_client_key; //!< Private client key |
| 100 | std::string m_hub_id; //!< Hub identifier used by the hub when it sends message itself rather than forwarding from others | 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 | int m_socket; //!< Hub socket | 96 | int m_socket; //!< Hub socket |
| 103 | int m_nb_clients; //!< Number of already registered clients | 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 | std::list<GVOApp*> m_connected_apps; //!< list of apps connected to the hub | 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 | \ No newline at end of file | 494 | \ No newline at end of file |
src/vo/GVOApp.cpp
| @@ -182,12 +182,22 @@ std::string GVOApp::print(const GChatter& chatter) const | @@ -182,12 +182,22 @@ std::string GVOApp::print(const GChatter& chatter) const | ||
| 182 | { | 182 | { |
| 183 | // Initialise result string | 183 | // Initialise result string |
| 184 | std::string result; | 184 | std::string result; |
| 185 | - | 185 | + std::list<std::string> temp; |
| 186 | + temp = registered_calls; | ||
| 187 | + | ||
| 186 | // Continue only if chatter is not silent | 188 | // Continue only if chatter is not silent |
| 187 | if (chatter != SILENT) { | 189 | if (chatter != SILENT) { |
| 188 | 190 | ||
| 189 | // Append header | 191 | // Append header |
| 190 | result.append("=== GVOApp ==="); | 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 | } // endif: chatter was not silent | 202 | } // endif: chatter was not silent |
| 193 | 203 | ||
| @@ -208,7 +218,7 @@ std::string GVOApp::print(const GChatter& chatter) const | @@ -208,7 +218,7 @@ std::string GVOApp::print(const GChatter& chatter) const | ||
| 208 | void GVOApp::init_members(void) | 218 | void GVOApp::init_members(void) |
| 209 | { | 219 | { |
| 210 | // Initialise members | 220 | // Initialise members |
| 211 | - | 221 | + std::list<std::string> registeredMethods; |
| 212 | // Return | 222 | // Return |
| 213 | return; | 223 | return; |
| 214 | } | 224 | } |
src/vo/GVOHub.cpp
| @@ -35,6 +35,7 @@ | @@ -35,6 +35,7 @@ | ||
| 35 | #include <unistd.h> // close() function | 35 | #include <unistd.h> // close() function |
| 36 | #include <netdb.h> // getaddrinfo() function | 36 | #include <netdb.h> // getaddrinfo() function |
| 37 | #include <sys/socket.h> // socket(), connect() functions | 37 | #include <sys/socket.h> // socket(), connect() functions |
| 38 | +#include <fstream> | ||
| 38 | #include "GVOHub.hpp" | 39 | #include "GVOHub.hpp" |
| 39 | #include "GVOClient.hpp" | 40 | #include "GVOClient.hpp" |
| 40 | #include "GException.hpp" | 41 | #include "GException.hpp" |
| @@ -225,16 +226,30 @@ void GVOHub::register_service(const GXml& xml, const socklen_t& sock) | @@ -225,16 +226,30 @@ void GVOHub::register_service(const GXml& xml, const socklen_t& sock) | ||
| 225 | // Declare message | 226 | // Declare message |
| 226 | std::string msg = ""; | 227 | std::string msg = ""; |
| 227 | char buffer[124]; | 228 | char buffer[124]; |
| 229 | + char privatekey[124]; | ||
| 230 | + int i; | ||
| 231 | + std::list<GVOApp*>::iterator q; | ||
| 232 | + std::string content; | ||
| 228 | std::string translator = "http://localhost:8001/"; | 233 | std::string translator = "http://localhost:8001/"; |
| 229 | printf("Message composition\n"); | 234 | printf("Message composition\n"); |
| 230 | 235 | ||
| 231 | GVOApp* new_app = new GVOApp(); | 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 | m_connected_apps.push_front(new_app); | 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 | printf("Message composition 2 \n"); | 250 | printf("Message composition 2 \n"); |
| 237 | sprintf(buffer,"<member><name>samp.self-id</name><value><string>client-id:%d</string></value></member>\n",m_nb_clients); | 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 | printf(buffer); | 253 | printf(buffer); |
| 239 | m_nb_clients ++; | 254 | m_nb_clients ++; |
| 240 | 255 | ||
| @@ -243,7 +258,8 @@ void GVOHub::register_service(const GXml& xml, const socklen_t& sock) | @@ -243,7 +258,8 @@ void GVOHub::register_service(const GXml& xml, const socklen_t& sock) | ||
| 243 | msg.append("<methodResponse>\n"); | 258 | msg.append("<methodResponse>\n"); |
| 244 | msg.append("\t<params>\n"); | 259 | msg.append("\t<params>\n"); |
| 245 | msg.append("\t\t<param>\n\t\t\t<value>\n\t\t\t\t<struct>\n"); | 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 | msg.append("<member><name>samp.hub-id</name><value><string>client-id:" + m_hub_id + "</string></value></member>\n"); | 263 | msg.append("<member><name>samp.hub-id</name><value><string>client-id:" + m_hub_id + "</string></value></member>\n"); |
| 248 | msg.append(buffer); | 264 | msg.append(buffer); |
| 249 | msg.append("<member><name>samp.url-translator</name><value><string>" + translator + "</string></value></member>\n"); | 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,12 +306,10 @@ void GVOHub::register_metadata(const GXml& xml,const socklen_t& sock) | ||
| 290 | printf("Client Metadata received\n"); | 306 | printf("Client Metadata received\n"); |
| 291 | // Search for metadata values to store | 307 | // Search for metadata values to store |
| 292 | std::string client_name = get_response_value(xml, "samp.name"); | 308 | std::string client_name = get_response_value(xml, "samp.name"); |
| 293 | - //std::cout("Client Metadata : \n" + client_name.c_str()); | ||
| 294 | printf("\nClient Metadata : Name %s\n", client_name.c_str()); | 309 | printf("\nClient Metadata : Name %s\n", client_name.c_str()); |
| 295 | sprintf(buffer,"Client number: %d\n",m_nb_clients); | 310 | sprintf(buffer,"Client number: %d\n",m_nb_clients); |
| 296 | printf(buffer); | 311 | printf(buffer); |
| 297 | fflush(stdout); | 312 | fflush(stdout); |
| 298 | - //m_client_name.push_back(client_name.c_str()); | ||
| 299 | // Declare message | 313 | // Declare message |
| 300 | std::string msg = ""; | 314 | std::string msg = ""; |
| 301 | 315 | ||
| @@ -325,12 +339,44 @@ void GVOHub::register_metadata(const GXml& xml,const socklen_t& sock) | @@ -325,12 +339,44 @@ void GVOHub::register_metadata(const GXml& xml,const socklen_t& sock) | ||
| 325 | ***************************************************************************/ | 339 | ***************************************************************************/ |
| 326 | void GVOHub::declare_subscriptions(const GXml& xml,const socklen_t& sock) | 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 | printf("Declare Subscriptions\n"); | 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 | std::string msg = ""; | 378 | std::string msg = ""; |
| 333 | - | 379 | + |
| 334 | // Set methodResponse elts | 380 | // Set methodResponse elts |
| 335 | msg.append("<?xml version=\"1.0\"?>\n"); | 381 | msg.append("<?xml version=\"1.0\"?>\n"); |
| 336 | msg.append("<methodResponse>\n"); | 382 | msg.append("<methodResponse>\n"); |
| @@ -617,15 +663,15 @@ void GVOHub::handle_request(const socklen_t& sock) | @@ -617,15 +663,15 @@ void GVOHub::handle_request(const socklen_t& sock) | ||
| 617 | if (method_called.compare("samp.hub.ping") == 0) { | 663 | if (method_called.compare("samp.hub.ping") == 0) { |
| 618 | ping_service(sock); | 664 | ping_service(sock); |
| 619 | } | 665 | } |
| 620 | - if (method_called.compare("samp.hub.getMetadata") == 0) { | ||
| 621 | - ping_service(sock); | ||
| 622 | - } | ||
| 623 | if (method_called.compare("samp.hub.declareSubscriptions") == 0) { | 666 | if (method_called.compare("samp.hub.declareSubscriptions") == 0) { |
| 624 | declare_subscriptions(xml,sock); | 667 | declare_subscriptions(xml,sock); |
| 625 | } | 668 | } |
| 626 | if (method_called.compare("samp.hub.getSubscriptions") == 0) { | 669 | if (method_called.compare("samp.hub.getSubscriptions") == 0) { |
| 627 | ping_service(sock); | 670 | ping_service(sock); |
| 628 | } | 671 | } |
| 672 | + if (method_called.compare("samp.hub.setXmlrpcCallback") == 0) { | ||
| 673 | + ping_service(sock); | ||
| 674 | + } | ||
| 629 | if (method_called.compare("samp.hub.getRegisteredClients") == 0) { | 675 | if (method_called.compare("samp.hub.getRegisteredClients") == 0) { |
| 630 | ping_service(sock); | 676 | ping_service(sock); |
| 631 | } | 677 | } |
| @@ -650,6 +696,9 @@ void GVOHub::handle_request(const socklen_t& sock) | @@ -650,6 +696,9 @@ void GVOHub::handle_request(const socklen_t& sock) | ||
| 650 | if (method_called.compare("samp.hub.reply") == 0) { | 696 | if (method_called.compare("samp.hub.reply") == 0) { |
| 651 | ping_service(sock); | 697 | ping_service(sock); |
| 652 | } | 698 | } |
| 699 | + if (method_called.compare("samp.hub.getMetadata") == 0) { | ||
| 700 | + ping_service(sock); | ||
| 701 | + } | ||
| 653 | // Return | 702 | // Return |
| 654 | return; | 703 | return; |
| 655 | } | 704 | } |
| @@ -777,8 +826,8 @@ std::string GVOHub::get_response_value(const GXml& xml, | @@ -777,8 +826,8 @@ std::string GVOHub::get_response_value(const GXml& xml, | ||
| 777 | if (node != NULL) { | 826 | if (node != NULL) { |
| 778 | int num = node->elements("member"); | 827 | int num = node->elements("member"); |
| 779 | for (int i = 0; i < num; ++i) { | 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 | const GXmlNode* member = node->element("member", i); | 831 | const GXmlNode* member = node->element("member", i); |
| 783 | //const GXmlNode* member_name = member->element("name", 0); | 832 | //const GXmlNode* member_name = member->element("name", 0); |
| 784 | std::string one_name; | 833 | std::string one_name; |
| @@ -798,7 +847,59 @@ std::string GVOHub::get_response_value(const GXml& xml, | @@ -798,7 +847,59 @@ std::string GVOHub::get_response_value(const GXml& xml, | ||
| 798 | // Return value | 847 | // Return value |
| 799 | return value; | 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 | * @brief Extract name / value pair from XML node | 904 | * @brief Extract name / value pair from XML node |
| 804 | * | 905 | * |