winlin

refine config, return the vhosts vector.

@@ -1412,10 +1412,12 @@ SrsConfDirective* SrsConfig::get_vhost(string vhost) @@ -1412,10 +1412,12 @@ SrsConfDirective* SrsConfig::get_vhost(string vhost)
1412 return NULL; 1412 return NULL;
1413 } 1413 }
1414 1414
1415 -void SrsConfig::get_vhosts(std::vector<SrsConfDirective*>& vhosts) 1415 +vector<SrsConfDirective*> SrsConfig::get_vhosts()
1416 { 1416 {
1417 srs_assert(root); 1417 srs_assert(root);
1418 1418
  1419 + std::vector<SrsConfDirective*> vhosts;
  1420 +
1419 for (int i = 0; i < (int)root->directives.size(); i++) { 1421 for (int i = 0; i < (int)root->directives.size(); i++) {
1420 SrsConfDirective* conf = root->at(i); 1422 SrsConfDirective* conf = root->at(i);
1421 1423
@@ -1425,6 +1427,8 @@ void SrsConfig::get_vhosts(std::vector<SrsConfDirective*>& vhosts) @@ -1425,6 +1427,8 @@ void SrsConfig::get_vhosts(std::vector<SrsConfDirective*>& vhosts)
1425 1427
1426 vhosts.push_back(conf); 1428 vhosts.push_back(conf);
1427 } 1429 }
  1430 +
  1431 + return vhosts;
1428 } 1432 }
1429 1433
1430 SrsConfDirective* SrsConfig::get_vhost_on_connect(string vhost) 1434 SrsConfDirective* SrsConfig::get_vhost_on_connect(string vhost)
@@ -366,44 +366,61 @@ public: @@ -366,44 +366,61 @@ public:
366 */ 366 */
367 virtual std::vector<std::string> get_listen(); 367 virtual std::vector<std::string> get_listen();
368 /** 368 /**
369 - * 369 + * get the pid file path.
  370 + * the pid file is used to save the pid of SRS,
  371 + * use file lock to prevent multiple SRS starting.
  372 + * @remark, if user need to run multiple SRS instance,
  373 + * for example, to start multiple SRS for multiple CPUs,
  374 + * user can use different pid file for each process.
370 */ 375 */
371 virtual std::string get_pid_file(); 376 virtual std::string get_pid_file();
372 /** 377 /**
373 - * 378 + * get the pithy print interval for publish, in ms,
  379 + * the publish(flash/FMLE) message print.
374 */ 380 */
375 virtual int get_pithy_print_publish(); 381 virtual int get_pithy_print_publish();
376 /** 382 /**
377 - * 383 + * get the pithy print interval for forwarder, in ms,
  384 + * the forwarder message print, for SRS forward stream to other servers.
378 */ 385 */
379 virtual int get_pithy_print_forwarder(); 386 virtual int get_pithy_print_forwarder();
380 /** 387 /**
381 - * 388 + * get the pithy print interval for encoder, in ms,
  389 + * the encoder message print, for FFMPEG transcoder.
382 */ 390 */
383 virtual int get_pithy_print_encoder(); 391 virtual int get_pithy_print_encoder();
384 /** 392 /**
385 - * 393 + * get the pithy print interval for ingester, in ms,
  394 + * the ingest used FFMPEG, or your tools, to read and transcode other stream
  395 + * to RTMP to SRS.
386 */ 396 */
387 virtual int get_pithy_print_ingester(); 397 virtual int get_pithy_print_ingester();
388 /** 398 /**
389 - * 399 + * get the pithy print interval for HLS, in ms,
  400 + * the HLS used for IOS/android/PC, SRS will mux RTMP to HLS.
390 */ 401 */
391 virtual int get_pithy_print_hls(); 402 virtual int get_pithy_print_hls();
392 /** 403 /**
393 - * 404 + * get the pithy print interval for Play, in ms,
  405 + * the play is client or edge playing RTMP stream
394 */ 406 */
395 virtual int get_pithy_print_play(); 407 virtual int get_pithy_print_play();
396 /** 408 /**
397 - * 409 + * get the pithy print interval for edge, in ms,
  410 + * the edge will get stream from upnode.
398 */ 411 */
399 virtual int get_pithy_print_edge(); 412 virtual int get_pithy_print_edge();
400 // vhost specified section 413 // vhost specified section
401 public: 414 public:
  415 + /**
  416 + * get the vhost directive by vhost name.
  417 + * @param vhost, the name of vhost to get.
  418 + */
402 virtual SrsConfDirective* get_vhost(std::string vhost); 419 virtual SrsConfDirective* get_vhost(std::string vhost);
403 /** 420 /**
404 - * 421 + * get all vhosts in config file.
405 */ 422 */
406 - virtual void get_vhosts(std::vector<SrsConfDirective*>& vhosts); 423 + virtual std::vector<SrsConfDirective*> get_vhosts();
407 /** 424 /**
408 * 425 *
409 */ 426 */
@@ -215,8 +215,7 @@ int SrsIngester::parse() @@ -215,8 +215,7 @@ int SrsIngester::parse()
215 int ret = ERROR_SUCCESS; 215 int ret = ERROR_SUCCESS;
216 216
217 // parse ingesters 217 // parse ingesters
218 - std::vector<SrsConfDirective*> vhosts;  
219 - _srs_config->get_vhosts(vhosts); 218 + std::vector<SrsConfDirective*> vhosts = _srs_config->get_vhosts();
220 219
221 for (int i = 0; i < (int)vhosts.size(); i++) { 220 for (int i = 0; i < (int)vhosts.size(); i++) {
222 SrsConfDirective* vhost = vhosts[i]; 221 SrsConfDirective* vhost = vhosts[i];