Commit 144fde2f2d1edf82db17842a90aac413e8968f1b

Authored by Jürgen Knödlseder
1 parent baa91e0d

Implement Hub start method.

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
... ... @@ -45,6 +45,7 @@ public:
45 45 void clear(void);
46 46 GVOHub* clone(void) const;
47 47 std::string classname(void) const;
  48 + void start(void);
48 49 };
49 50  
50 51  
... ...
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();
... ...
test/test_GVO.cpp
... ... @@ -44,6 +44,9 @@ void* vo_thread(void* ptr)
44 44 // Create VO Hub
45 45 GVOHub hub;
46 46  
  47 + // Start Hub
  48 + hub.start();
  49 +
47 50 // Return
48 51 return NULL;
49 52 }
... ...