Commit 144fde2f2d1edf82db17842a90aac413e8968f1b
1 parent
baa91e0d
Implement Hub start method.
Showing
4 changed files
with
29 additions
and
20 deletions
include/GVOHub.hpp
| ... | ... | @@ -65,6 +65,7 @@ public: |
| 65 | 65 | void clear(void); |
| 66 | 66 | GVOHub* clone(void) const; |
| 67 | 67 | std::string classname(void) const; |
| 68 | + void start(void); | |
| 68 | 69 | std::string print(const GChatter& chatter = NORMAL) const; |
| 69 | 70 | |
| 70 | 71 | |
| ... | ... | @@ -107,7 +108,7 @@ protected: |
| 107 | 108 | void activate_callbacks(std::string method, char cl_id[31]); |
| 108 | 109 | |
| 109 | 110 | // Low-level methods |
| 110 | - void create_samp_file(void); | |
| 111 | + void create_samp_file(void) const; | |
| 111 | 112 | void post_string(const std::string& content, const socklen_t& sock) const; |
| 112 | 113 | void post_string_callback(const std::string& content) const; |
| 113 | 114 | std::string random_string(const size_t& length) const; | ... | ... |
pyext/GVOHub.i
src/vo/GVOHub.cpp
| ... | ... | @@ -75,9 +75,6 @@ GVOHub::GVOHub(void) |
| 75 | 75 | // Initialise members |
| 76 | 76 | init_members(); |
| 77 | 77 | |
| 78 | - // Start Hub | |
| 79 | - start_hub(); | |
| 80 | - | |
| 81 | 78 | // Return |
| 82 | 79 | return; |
| 83 | 80 | } |
| ... | ... | @@ -96,9 +93,6 @@ GVOHub::GVOHub(const GVOHub& hub) |
| 96 | 93 | // Copy members |
| 97 | 94 | copy_members(hub); |
| 98 | 95 | |
| 99 | - // Start Hub | |
| 100 | - start_hub(); | |
| 101 | - | |
| 102 | 96 | // Return |
| 103 | 97 | return; |
| 104 | 98 | } |
| ... | ... | @@ -109,7 +103,9 @@ GVOHub::GVOHub(const GVOHub& hub) |
| 109 | 103 | ***************************************************************************/ |
| 110 | 104 | GVOHub::~GVOHub(void) |
| 111 | 105 | { |
| 106 | + // Free members | |
| 112 | 107 | free_members(); |
| 108 | + | |
| 113 | 109 | // Return |
| 114 | 110 | return; |
| 115 | 111 | } |
| ... | ... | @@ -141,9 +137,6 @@ GVOHub& GVOHub::operator=(const GVOHub& hub) |
| 141 | 137 | // Copy members |
| 142 | 138 | copy_members(hub); |
| 143 | 139 | |
| 144 | - // Start Hub | |
| 145 | - start_hub(); | |
| 146 | - | |
| 147 | 140 | } // endif: object was not identical |
| 148 | 141 | |
| 149 | 142 | // Return |
| ... | ... | @@ -164,12 +157,11 @@ GVOHub& GVOHub::operator=(const GVOHub& hub) |
| 164 | 157 | ***************************************************************************/ |
| 165 | 158 | void GVOHub::clear(void) |
| 166 | 159 | { |
| 167 | - // Free memory and initialise members | |
| 160 | + // Free members | |
| 168 | 161 | free_members(); |
| 169 | - init_members(); | |
| 170 | 162 | |
| 171 | - // Start Hub | |
| 172 | - start_hub(); | |
| 163 | + // Initialise members | |
| 164 | + init_members(); | |
| 173 | 165 | |
| 174 | 166 | // Return |
| 175 | 167 | return; |
| ... | ... | @@ -187,6 +179,22 @@ GVOHub* GVOHub::clone(void) const |
| 187 | 179 | |
| 188 | 180 | |
| 189 | 181 | /***********************************************************************//** |
| 182 | + * @brief Start Hub | |
| 183 | + ***************************************************************************/ | |
| 184 | +void GVOHub::start(void) | |
| 185 | +{ | |
| 186 | + // Create SAMP file | |
| 187 | + create_samp_file(); | |
| 188 | + | |
| 189 | + // Start Hub | |
| 190 | + start_hub(); | |
| 191 | + | |
| 192 | + // Return | |
| 193 | + return; | |
| 194 | +} | |
| 195 | + | |
| 196 | + | |
| 197 | +/***********************************************************************//** | |
| 190 | 198 | * @brief Print VO hub information |
| 191 | 199 | * |
| 192 | 200 | * @param[in] chatter Chattiness (defaults to NORMAL). |
| ... | ... | @@ -276,9 +284,6 @@ void GVOHub::init_members(void) |
| 276 | 284 | strcpy(m_clients->metadata[i].description, "Unknown"); |
| 277 | 285 | } |
| 278 | 286 | |
| 279 | - // Create SAMP file | |
| 280 | - create_samp_file(); | |
| 281 | - | |
| 282 | 287 | // Return |
| 283 | 288 | return; |
| 284 | 289 | } |
| ... | ... | @@ -347,7 +352,6 @@ void GVOHub::start_hub(void) |
| 347 | 352 | struct sockaddr_in serv_addr; |
| 348 | 353 | std::memset(&serv_addr, 0, sizeof(serv_addr)); |
| 349 | 354 | serv_addr.sin_family = AF_INET; |
| 350 | - //serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); | |
| 351 | 355 | serv_addr.sin_addr.s_addr = inet_addr(m_hub_host.c_str()); |
| 352 | 356 | serv_addr.sin_port = htons(gammalib::toint(m_hub_port)); |
| 353 | 357 | |
| ... | ... | @@ -390,7 +394,7 @@ void GVOHub::start_hub(void) |
| 390 | 394 | } |
| 391 | 395 | |
| 392 | 396 | // Now start listening for the clients: 5 requests simultaneously pending |
| 393 | - // maximum | |
| 397 | + // at maximum | |
| 394 | 398 | if (listen(hub_socket, 5) < 0) { |
| 395 | 399 | std::string msg = "Unable to start listening on Hub socket. Errno="+ |
| 396 | 400 | gammalib::str(errno); |
| ... | ... | @@ -1612,7 +1616,7 @@ void GVOHub::activate_callbacks(std::string method,char cl_id[31]) |
| 1612 | 1616 | * |
| 1613 | 1617 | * Implements IVOA standard REC-SAMP-1.3-20120411. |
| 1614 | 1618 | ***************************************************************************/ |
| 1615 | -void GVOHub::create_samp_file(void) | |
| 1619 | +void GVOHub::create_samp_file(void) const | |
| 1616 | 1620 | { |
| 1617 | 1621 | // Get lockfile URL |
| 1618 | 1622 | std::string lockurl = get_hub_lockfile(); | ... | ... |