diff --git a/trunk/src/app/srs_app_hybrid.cpp b/trunk/src/app/srs_app_hybrid.cpp index b8645bb4f..e7b1eb742 100644 --- a/trunk/src/app/srs_app_hybrid.cpp +++ b/trunk/src/app/srs_app_hybrid.cpp @@ -134,75 +134,6 @@ ISrsHybridServer::~ISrsHybridServer() { } -SrsServerAdapter::SrsServerAdapter() -{ - srs = new SrsServer(); -} - -SrsServerAdapter::~SrsServerAdapter() -{ - srs_freep(srs); -} - -srs_error_t SrsServerAdapter::initialize() -{ - srs_error_t err = srs_success; - return err; -} - -srs_error_t SrsServerAdapter::run() -{ - srs_error_t err = srs_success; - - // Initialize the whole system, set hooks to handle server level events. - if ((err = srs->initialize(NULL)) != srs_success) { - return srs_error_wrap(err, "server initialize"); - } - - if ((err = srs->initialize_st()) != srs_success) { - return srs_error_wrap(err, "initialize st"); - } - - if ((err = srs->acquire_pid_file()) != srs_success) { - return srs_error_wrap(err, "acquire pid file"); - } - - if ((err = srs->initialize_signal()) != srs_success) { - return srs_error_wrap(err, "initialize signal"); - } - - if ((err = srs->listen()) != srs_success) { - return srs_error_wrap(err, "listen"); - } - - if ((err = srs->register_signal()) != srs_success) { - return srs_error_wrap(err, "register signal"); - } - - if ((err = srs->http_handle()) != srs_success) { - return srs_error_wrap(err, "http handle"); - } - - if ((err = srs->ingest()) != srs_success) { - return srs_error_wrap(err, "ingest"); - } - - if ((err = srs->start()) != srs_success) { - return srs_error_wrap(err, "start"); - } - - return err; -} - -void SrsServerAdapter::stop() -{ -} - -SrsServer* SrsServerAdapter::instance() -{ - return srs; -} - SrsHybridServer::SrsHybridServer() { timer_ = NULL; diff --git a/trunk/src/app/srs_app_hybrid.hpp b/trunk/src/app/srs_app_hybrid.hpp index 7e988fe26..dde1d3bea 100644 --- a/trunk/src/app/srs_app_hybrid.hpp +++ b/trunk/src/app/srs_app_hybrid.hpp @@ -31,6 +31,7 @@ #include class SrsServer; +class SrsServerAdapter; // The hibrid server interfaces, we could register many servers. class ISrsHybridServer @@ -47,22 +48,6 @@ public: virtual void stop() = 0; }; -// The SRS server adapter, the master server. -class SrsServerAdapter : public ISrsHybridServer -{ -private: - SrsServer* srs; -public: - SrsServerAdapter(); - virtual ~SrsServerAdapter(); -public: - virtual srs_error_t initialize(); - virtual srs_error_t run(); - virtual void stop(); -public: - virtual SrsServer* instance(); -}; - // The hybrid server manager. class SrsHybridServer : public ISrsHourGlass { diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp index 39141bf55..563328555 100644 --- a/trunk/src/app/srs_app_server.cpp +++ b/trunk/src/app/srs_app_server.cpp @@ -1807,3 +1807,72 @@ void SrsServer::on_unpublish(SrsSource* s, SrsRequest* r) coworkers->on_unpublish(s, r); } +SrsServerAdapter::SrsServerAdapter() +{ + srs = new SrsServer(); +} + +SrsServerAdapter::~SrsServerAdapter() +{ + srs_freep(srs); +} + +srs_error_t SrsServerAdapter::initialize() +{ + srs_error_t err = srs_success; + return err; +} + +srs_error_t SrsServerAdapter::run() +{ + srs_error_t err = srs_success; + + // Initialize the whole system, set hooks to handle server level events. + if ((err = srs->initialize(NULL)) != srs_success) { + return srs_error_wrap(err, "server initialize"); + } + + if ((err = srs->initialize_st()) != srs_success) { + return srs_error_wrap(err, "initialize st"); + } + + if ((err = srs->acquire_pid_file()) != srs_success) { + return srs_error_wrap(err, "acquire pid file"); + } + + if ((err = srs->initialize_signal()) != srs_success) { + return srs_error_wrap(err, "initialize signal"); + } + + if ((err = srs->listen()) != srs_success) { + return srs_error_wrap(err, "listen"); + } + + if ((err = srs->register_signal()) != srs_success) { + return srs_error_wrap(err, "register signal"); + } + + if ((err = srs->http_handle()) != srs_success) { + return srs_error_wrap(err, "http handle"); + } + + if ((err = srs->ingest()) != srs_success) { + return srs_error_wrap(err, "ingest"); + } + + if ((err = srs->start()) != srs_success) { + return srs_error_wrap(err, "start"); + } + + return err; +} + +void SrsServerAdapter::stop() +{ +} + +SrsServer* SrsServerAdapter::instance() +{ + return srs; +} + diff --git a/trunk/src/app/srs_app_server.hpp b/trunk/src/app/srs_app_server.hpp index e7f562ee4..4f5c2421e 100644 --- a/trunk/src/app/srs_app_server.hpp +++ b/trunk/src/app/srs_app_server.hpp @@ -39,6 +39,7 @@ #include #include #include +#include class SrsServer; class SrsHttpServeMux; @@ -399,5 +400,21 @@ public: virtual void on_unpublish(SrsSource* s, SrsRequest* r); }; +// The SRS server adapter, the master server. +class SrsServerAdapter : public ISrsHybridServer +{ +private: + SrsServer* srs; +public: + SrsServerAdapter(); + virtual ~SrsServerAdapter(); +public: + virtual srs_error_t initialize(); + virtual srs_error_t run(); + virtual void stop(); +public: + virtual SrsServer* instance(); +}; + #endif